webhooks

A call finished

POSTed as JSON to the webhook_url configured on the assistant. Delivery is best effort and fire-and-forget: a non-2xx response or a timeout is logged and NOT retried, so treat it as a notification rather than a queue. Respond 2xx quickly and do the work asynchronously. Calls shorter than FREE_CALL_SECONDS (20s by default) still fire this event even though they are not billed.

postWebhookcallCompleted

Payload

datetimestring required

Server local time, 'YYYY-MM-DD HH:MM:SS'.

phonestring required

The caller's number as presented to the agent.

durationinteger required

Call duration in seconds.

summarystring required

Model-written summary of the conversation.

variablesobject

Every variable captured during the call, whether set by a flow marker or extracted from the transcript afterwards.

Example payload

{
  "datetime": "2026-09-27 19:24:11",
  "phone": "+493012345678",
  "duration": 96,
  "summary": "Caller asked to reschedule Thursday's appointment to Friday afternoon.",
  "variables": {
    "customer_name": "Anna Weber",
    "appointment": "Friday 15:00"
  }
}

Response

Acknowledged. Any 2xx is treated as success.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.