Event Types
conversation.started
Triggered when a new conversation begins (inbound or outbound).
When it fires:
- An inbound call is answered by an agent
- An outbound campaign call connects
- A web or test conversation starts
conversation.ended
Triggered when a conversation concludes.
When it fires:
- Call ends normally (caller or agent hangs up)
- Call fails (connection error, timeout)
- Call is transferred to another destination
completedfailedtransferred
conversation.analysis.completed
Triggered when a conversation’s gathered insights finish processing.
When it fires:
- After
conversation.ended, once goal scoring and insight processing are complete
- Goal analysis results
- Post-call analysis results
- Serialized conversation messages and events used for analysis context
This event fires separately from
conversation.ended because analysis runs asynchronously after the call concludes. If you need both the call outcome and analysis data, listen for this event.Payload Format
All webhook payloads use a common envelope.data contains the event-specific fields.
Example: conversation.started
Example: conversation.ended
Example: conversation.analysis.completed
Signature Verification
If you configured a signing secret, verify webhook authenticity by computing an HMAC-SHA256 signature over<rawBody>.<timestamp>.
Event Data Fields
conversation.started data
Common fields:
conversation_uuidagent_uuid,agent_namechannelstarted_atfrom_number,to_numberip_addresscampaign_uuid,campaign_contact_uuiddirectionroom_sidmetadata
conversation.ended data
Includes everything needed for outcome processing:
conversation_uuidagent_uuid,agent_namechannelstatusstarted_at,ended_at,duration_secondsfrom_number,to_number,ip_addresscampaign_uuid,campaign_contact_uuiddirection,room_sidmetadataanswer_statusmessages(serialized transcript messages)events(serialized timeline events)
conversation.analysis.completed data
Includes analysis output plus conversation context:
conversation_uuidagent_uuid,agent_nameanalysis_job_uuidanalyzed_atmodel_usedresults.goalsresults.post_callmessagesevents
Delivery Headers
Signature Verification
Each delivery includes base headers:Content-Type: application/jsonUser-Agent: itellicoAI-Webhook/1.0X-Webhook-Event-TypeX-Webhook-Version: 1.0X-Webhook-Event-Id
X-Webhook-TimestampX-Webhook-Signature-256
<json_payload> is the exact JSON string sent in the body.
Verification Pseudocode
- signature does not match
- timestamp is outside your replay window
- required headers are missing
Retry Logic
If your endpoint returns non-2xx or times out, deliveries retry automatically. Current behavior:- max retries:
5 - base retry delay:
30s - backoff: exponential (capped)
- request timeout:
10s
Custom Headers
You can configure custom headers per subscription for auth/routing (for example, your own bearer token header).Next Steps
Webhooks Setup
Configure webhook subscriptions in the account UI
Webhook Implementation Guide
Build the receiving endpoint and process events safely
Gather Insights
Configure the insights that trigger conversation.analysis.completed
API Reference
View full API documentation
Conversation Goals
Configure goals included in analysis events