Skip to content

Guide

Webhooks

When an assistant has a webhook_url, Revox sends an HTTP POST with a JSON body to that URL after its calls. Set it with Create an assistant or Update an assistant.

Inbound calls send it too, to the webhook_url of the assistant that answers. When a prospect calls back after an outbound call (within 2 days on a shared Revox number, 30 days on a number dedicated to your organization), the inbound call has callback_from set to that outbound call and carries its metadata, so you can tie it back to your own records.

When

Revox POSTs the call to the assistant's webhook_url once, when the call reaches its final status (completed or errored), after the post-call analysis. Not after each attempt, and not when the call is cancelled.

Request

POST, Content-Type: application/json, body { call, assistant }.

Multi-step assistants

One request per step the call went through whose assistant has a webhook_url, each with its own assistant.

Test calls

Calls tested from the dashboard send it too: their call.channel is web.

Retries

None when your endpoint answers with an error status. A network error, or no answer within the 3 minutes that also cover Revox's own processing, is retried, so the same call can arrive twice: answer within seconds, and deduplicate on call.id and assistant.id.

Signature

Requests are not signed: put a secret token in the URL (?token=…) and check it, or fetch the call again with GET /call/{id} before acting on it.

Payload

  • callCall

    The call, as GET /call/{id} returns it. Its latest attempt, with the transcript, recording and extracted data, is call.last_call_attempt.

  • assistantAssistantnullable

    The assistant whose webhook_url receives the request, as GET /assistants/{id} returns it: the call's assistant, or the step of a multi-step flow. Null for a call placed with an inline assistant.