Webhook event catalog
Subscribable webhook event types, when they fire, and sample JSON bodies.
Pick events when you configure Developer → Webhooks or POST /v1/settings/developer/webhooks/endpoints (filterTypes / enabled events in the app).
Messaging (most integrators)
Subscribe to these for send/receive automation.
| Event | When it fires | Sample body (fields may include more in production) |
|---|---|---|
message.new |
New message in a conversation (inbound from a contact, or certain outbound echoes). | See below |
message.sent |
Outbound message was sent from your workspace. | conversation_id, message_id, channel_id |
message.status_update |
Delivery/read/failed status changed for a sent message. | message_id, status, often conversation_id, organization_id |
conversation.updated |
Conversation metadata changed (assignment, status, preview, tags). | conversation_id, status |
contact.updated |
Contact profile linked to conversations was updated (also emitted on some creates). | contact_id, name, organization_id |
template.status_update |
WhatsApp template approval status changed. | template_id, status |
message.new (inbound text)
{
"message_id": "9f1fd66d-c37a-4b50-a8c2-b4dca523f9c8",
"conversation_id": "0f89b0f9-74b4-44f9-b9b6-48f6d4de57aa",
"contact_id": "c1a2b3c4-d5e6-7890-abcd-ef1234567890",
"channel_id": "wzp_abc123",
"direction": "inbound",
"from_phone": "6281234567890",
"msg_type": "text"
}
message.status_update
{
"message_id": "9f1fd66d-c37a-4b50-a8c2-b4dca523f9c8",
"conversation_id": "0f89b0f9-74b4-44f9-b9b6-48f6d4de57aa",
"status": "delivered",
"organization_id": "org_123"
}
status values align with message records from GET /v1/messages/{messageID} (sent, delivered, read, failed, …).
More narrative examples: Webhook payload examples.
Commerce
| Event | When it fires |
|---|---|
commerce.order.updated |
Order or payment state changed in Commerce. |
{
"order_id": "ord_01h2",
"order_no": "INV-1042",
"status": "paid",
"payment_status": "paid"
}