Webhook Events Reference
Connect my tools3 min readUpdated 2026-03-12
Webhook Events Reference
This page documents every webhook event type available in JustCall V2, along with a sample payload for each. Use these as a reference when building your webhook handler.
call.completed
Fired when a call ends normally.
{
"event": "call.completed",
"timestamp": "2026-03-12T14:30:00Z",
"data": {
"call_id": "call_8f3a2b1c",
"direction": "inbound",
"from": "+14155559876",
"to": "+14155551234",
"agent_id": 42,
"agent_name": "Jordan Lee",
"duration": 185,
"status": "completed",
"recording_url": "https://recordings.justcall.io/rec_abc123.mp3",
"notes": "Customer confirmed renewal.",
"disposition": "Closed Won"
}
}
call.missed
Fired when an inbound call goes unanswered.
{
"event": "call.missed",
"timestamp": "2026-03-12T14:32:00Z",
"data": {
"call_id": "call_1d4e5f6a",
"direction": "inbound",
"from": "+14155558765",
"to": "+14155551234",
"agent_id": null,
"ring_duration": 30,
"status": "missed"
}
}
call.answered
Fired when an agent picks up an inbound call.
{
"event": "call.answered",
"timestamp": "2026-03-12T14:33:10Z",
"data": {
"call_id": "call_7b8c9d0e",
"direction": "inbound",
"from": "+14155553456",
"to": "+14155551234",
"agent_id": 15,
"agent_name": "Sam Chen",
"status": "in-progress"
}
}
sms.received
Fired when an inbound SMS arrives.
{
"event": "sms.received",
"timestamp": "2026-03-12T14:35:00Z",
"data": {
"message_id": "msg_a1b2c3d4",
"direction": "inbound",
"from": "+14155559876",
"to": "+14155551234",
"body": "Can I reschedule my appointment to Friday?",
"media_url": null
}
}
sms.sent
Fired when an outbound SMS is sent.
{
"event": "sms.sent",
"timestamp": "2026-03-12T14:36:00Z",
"data": {
"message_id": "msg_e5f6g7h8",
"direction": "outbound",
"from": "+14155551234",
"to": "+14155559876",
"body": "Sure! You are confirmed for Friday at 10 AM.",
"media_url": null,
"agent_id": 42
}
}
sms.delivered
Fired when the carrier confirms delivery of an outbound SMS.
{
"event": "sms.delivered",
"timestamp": "2026-03-12T14:36:05Z",
"data": {
"message_id": "msg_e5f6g7h8",
"direction": "outbound",
"from": "+14155551234",
"to": "+14155559876",
"status": "delivered",
"delivered_at": "2026-03-12T14:36:04Z"
}
}
voicemail.received
Fired when a caller leaves a voicemail.
{
"event": "voicemail.received",
"timestamp": "2026-03-12T14:40:00Z",
"data": {
"call_id": "call_1d4e5f6a",
"from": "+14155558765",
"to": "+14155551234",
"agent_id": 42,
"duration": 22,
"recording_url": "https://recordings.justcall.io/vm_xyz789.mp3",
"transcription": "Hi, this is Pat from Globex. Please call me back about the contract."
}
}
contact.created
Fired when a new contact is added (via UI, API, or integration sync).
{
"event": "contact.created",
"timestamp": "2026-03-12T14:45:00Z",
"data": {
"contact_id": 98765,
"first_name": "Jordan",
"last_name": "Lee",
"phone": "+14155559876",
"email": "jordan@example.com",
"company": "Acme Corp",
"source": "api"
}
}
contact.updated
Fired when an existing contact record is modified.
{
"event": "contact.updated",
"timestamp": "2026-03-12T14:50:00Z",
"data": {
"contact_id": 98765,
"changed_fields": ["company", "email"],
"first_name": "Jordan",
"last_name": "Lee",
"phone": "+14155559876",
"email": "jordan@acmecorp.com",
"company": "Acme Corp International",
"source": "ui"
}
}
Common Payload Fields
Every event shares these top-level fields:
| Field | Type | Description |
|---|---|---|
event | string | Event type identifier |
timestamp | string | ISO 8601 UTC timestamp of the event |
data | object | Event-specific details (see above) |
Related Articles
Was this helpful?