Skip to main content
Alpha This payload is delivered to your webhook callback URL when an ai_agent.call_completed event occurs. It fires once when an AI agent call reaches a terminal state. This webhook is in alpha: the payload shape may still change without a deprecation cycle.

Event Info

string
required
Always "ai_agent.call_completed".
string
required
Unique identifier for this call. Use this as the dedup key for idempotent processing — in rare cases the same call may be delivered more than once.

Agent

string
required
UUID of the AI agent that handled the call.
string | null
Display name of the AI agent.

Call

string
required
"inbound" (caller reached the agent) or "outbound" (agent dialled out).
string
required
Terminal outcome of the call attempt: "answered", "voicemail", "not_answered", "busy", or "unknown".
boolean
required
true when the interaction was a real phone call; false for non-call interactions such as chat.
string | null
ISO 8601 UTC timestamp when the call started.
string | null
ISO 8601 UTC timestamp when the call ended.
integer | null
Total call duration in seconds.
string | null
The external party’s (contact/lead) phone number in E.164 format, regardless of call direction. null for test/widget calls or blocked caller ID.
string | null
Your agent’s own provisioned phone number (DID) in E.164 format. null when the agent has no provisioned number.

Transcript

array
required
Ordered conversation turns. Tool-only turns with no spoken message are omitted — the actions the agent took are in actions.

Conversation Analysis

object
AI-generated analysis of the conversation.

Actions

array
required
Ordered list of actions the agent executed during the call.

Booking

object | null
The scheduled event created during the call, in the same shape as the GET /v2/scheduled-events/{uuid} resource; null if no booking was made. Correlate booking.uuid with invitee.scheduled webhook events for the same booking.

CRM

string | null
UUID of the CRM person record linked to this call, if matched.

Full Payload Example

Last modified on June 2, 2026