Webhook Events
Supported events
Section titled “Supported events”| Event | Trigger |
|---|---|
conversation.created | New conversation started (any channel) |
conversation.resolved | Conversation marked as resolved |
conversation.closed | Conversation closed |
message.created | New message in any conversation |
call.started | Inbound or outbound call initiated |
call.ended | Call completed, failed, or abandoned |
call.outcome_tagged | Agent tagged a call outcome (booked, spam, etc.) |
contact.created | New contact created |
contact.updated | Contact information updated |
Event payloads
Section titled “Event payloads”conversation.created
Section titled “conversation.created”{ "event": "conversation.created", "timestamp": "2026-03-25T18:30:00Z", "data": { "id": 123, "status": "open", "priority": "high", "channel_id": 5, "channel_type": "phone", "contact": { "id": 456, "name": "Jane Doe", "email": "jane@example.com", "phone": "+18005551234" }, "attribution": { "source": "google_ads", "medium": "cpc", "campaign": "spring-sale", "landing_page": "https://example.com/services", "type": "session" }, "created_at": "2026-03-25T18:30:00Z", "updated_at": "2026-03-25T18:30:00Z" }}message.created
Section titled “message.created”{ "event": "message.created", "timestamp": "2026-03-25T18:31:00Z", "data": { "id": 789, "conversation_id": 123, "direction": "inbound", "sender_type": "contact", "sender_name": "Jane Doe", "content": "Hi, I'd like to schedule a service appointment.", "message_type": "text", "channel_type": "webchat", "contact": { "id": 456, "name": "Jane Doe", "email": "jane@example.com", "phone": "+18005551234" }, "attribution": { "source": "google_ads", "medium": "cpc", "campaign": "spring-sale", "landing_page": "https://example.com/services" }, "created_at": "2026-03-25T18:31:00Z" }}call.ended
Section titled “call.ended”{ "event": "call.ended", "timestamp": "2026-03-25T18:35:00Z", "data": { "id": 42, "direction": "inbound", "status": "ended", "from_number": "+18005559876", "to_number": "+18005551234", "duration_seconds": 245, "disposition": "completed", "contact": { "id": 456, "name": "Jane Doe", "phone": "+18005559876" }, "attribution": { "source": "google_ads", "medium": "cpc", "campaign": "spring-sale", "landing_page": "https://example.com/services", "gclid": "CjwKCAjw...", "device_type": "mobile", "type": "session" }, "started_at": "2026-03-25T18:30:55Z", "ended_at": "2026-03-25T18:35:00Z" }}call.outcome_tagged
Section titled “call.outcome_tagged”{ "event": "call.outcome_tagged", "timestamp": "2026-03-25T18:35:30Z", "data": { "id": 15, "call_session_id": 42, "outcome_type": "booked", "estimated_value_cents": 250000, "actual_value_cents": 0, "revenue_cents": 250000, "notes": "Kitchen remodel - scheduled for April", "contact": { "id": 456, "name": "Jane Doe", "phone": "+18005559876" }, "attribution": { "source": "google_ads", "medium": "cpc", "campaign": "spring-sale", "gclid": "CjwKCAjw...", "type": "session" } }}Outcome types
Section titled “Outcome types”When a call ends, agents tag the outcome:
| Type | Description |
|---|---|
booked | Customer scheduled or committed |
quoted | Quote provided, awaiting decision |
follow_up | Needs another touchpoint |
not_interested | No opportunity |
no_answer | Call was not answered |
spam | Spam or robocall |
wrong_number | Caller reached wrong number |
other | Other outcome |