Voice Webhook Payload

Voice webhooks are sent when calls are initiated, completed, or fail.

Example payload

1{
2 "event": {
3 "id": "evt_voice_abc123",
4 "channel": "voice",
5 "timestamp": 1706640000.0,
6 "data": {
7 "timestamp": 1706640000.0,
8 "direction": "inbound",
9 "platform": "voice",
10 "call_id": "call_xyz789",
11 "vapi_status": "completed",
12 "duration": 245,
13 "cost": 0.15,
14 "recording_url": "https://storage.example.com/recordings/call_xyz789.mp3",
15 "transcription": "Agent: Hello, thanks for calling...\nLead: Hi, I'm interested in...",
16 "summary": "Lead inquired about pricing for premium plan. Scheduled demo for Friday.",
17 "tools_called": ["book_appointment", "check_availability"],
18 "analysis_result": {
19 "sentiment": "positive",
20 "intent": "purchase"
21 },
22 "appointments": [
23 {
24 "datetime": "2024-02-01T10:00:00Z",
25 "type": "demo",
26 "confirmed": true
27 }
28 ]
29 }
30 },
31 "lead_id": "lead_123",
32 "lead_contact": {
33 "number": "+15551234567",
34 "email": "john@example.com",
35 "name": "John Doe"
36 },
37 "business_id": "biz_456",
38 "lead_created": false
39}

Field reference

Core fields

FieldTypeRequiredDescription
timestampfloatYesUnix epoch timestamp
directionstringYesinbound or outbound
platformstringYesAlways voice
call_idstringYesUnique call identifier
vapi_statusstringYesCall status (see values below)

vapi_status values

ValueDescription
initiatedCall started, ringing
completedCall ended successfully
failedCall failed to connect
busyRecipient line busy
no-answerNo answer after ringing

Optional fields

FieldTypeDescription
durationintegerCall duration in seconds
costfloatCall cost in USD
recording_urlstringURL to audio recording
transcriptionstringFull call transcript
summarystringAI-generated call summary
tools_calledarrayList of tool names executed during call
tool_callsarrayRaw tool call data with arguments and results
analysis_resultobjectAI analysis output (sentiment, intent, etc.)
appointmentsarrayExtracted appointment data

appointments array

FieldTypeDescription
datetimestringISO 8601 datetime
typestringAppointment type
confirmedbooleanWhether confirmed

tool_calls array

FieldTypeDescription
namestringTool name
argumentsobjectInput arguments
resultobjectTool execution result

Direction values

ValueDescription
inboundLead called in
outboundAgent called lead