Inbound Communications
Voice AI Webhook
Process incoming voice calls with AI assistant
POST
/
responder
/
webhook
curl -X POST https://api.avoca.ai/v1/responder/webhook \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Workspace-ID: YOUR_WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"message": {
"type": "end-of-call-report",
"call": {
"id": "call_abc123",
"customer": {
"number": "+13105551234",
"name": "John Smith"
},
"duration": 245,
"type": "inboundPhoneCall"
},
"transcript": "Agent: Thank you for calling ABC Plumbing, how can I help you? Customer: Hi, my water heater is not working...",
"summary": "Customer needs water heater repair. No hot water since yesterday.",
"recordingUrl": "https://recordings.avoca.ai/call_abc123.mp3",
"analysis": {
"callReason": "water_heater_repair",
"sentiment": "neutral",
"bookingIntent": true,
"urgency": "standard"
}
}
}'
{
"success": true,
"message": "Call data processed successfully",
"data": {
"callId": "avoca_call_xyz789",
"appointmentId": "appt_def456",
"ticketId": "12345678"
}
}
This webhook endpoint receives call data from your voice provider (e.g., Vapi) and processes it with Avoca’s AI responder system.
Webhook Payload
The webhook receives end-of-call reports with complete call information.The message object containing call details
Show properties
Show properties
Message type - typically
end-of-call-reportFull call transcript
AI-generated call summary
URL to access the call recording
Response
Whether the webhook was processed successfully
Status message
curl -X POST https://api.avoca.ai/v1/responder/webhook \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Workspace-ID: YOUR_WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"message": {
"type": "end-of-call-report",
"call": {
"id": "call_abc123",
"customer": {
"number": "+13105551234",
"name": "John Smith"
},
"duration": 245,
"type": "inboundPhoneCall"
},
"transcript": "Agent: Thank you for calling ABC Plumbing, how can I help you? Customer: Hi, my water heater is not working...",
"summary": "Customer needs water heater repair. No hot water since yesterday.",
"recordingUrl": "https://recordings.avoca.ai/call_abc123.mp3",
"analysis": {
"callReason": "water_heater_repair",
"sentiment": "neutral",
"bookingIntent": true,
"urgency": "standard"
}
}
}'
{
"success": true,
"message": "Call data processed successfully",
"data": {
"callId": "avoca_call_xyz789",
"appointmentId": "appt_def456",
"ticketId": "12345678"
}
}
⌘I
curl -X POST https://api.avoca.ai/v1/responder/webhook \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Workspace-ID: YOUR_WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"message": {
"type": "end-of-call-report",
"call": {
"id": "call_abc123",
"customer": {
"number": "+13105551234",
"name": "John Smith"
},
"duration": 245,
"type": "inboundPhoneCall"
},
"transcript": "Agent: Thank you for calling ABC Plumbing, how can I help you? Customer: Hi, my water heater is not working...",
"summary": "Customer needs water heater repair. No hot water since yesterday.",
"recordingUrl": "https://recordings.avoca.ai/call_abc123.mp3",
"analysis": {
"callReason": "water_heater_repair",
"sentiment": "neutral",
"bookingIntent": true,
"urgency": "standard"
}
}
}'
{
"success": true,
"message": "Call data processed successfully",
"data": {
"callId": "avoca_call_xyz789",
"appointmentId": "appt_def456",
"ticketId": "12345678"
}
}