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.