Messages events
Outbound webhook events for messages: when each one fires and the exact JSON payload Centerfy POSTs to your URL.
2 events. Subscribe to them in Settings → API & Webhooks → Webhooks or with the outbound webhook subscription endpoints. Delivery, authentication headers and the common envelope are described in the webhooks overview.
| Event | When it fires |
|---|---|
message.received | A contact sends you a message on any channel (SMS, WhatsApp, Facebook, Instagram, chat) — no matter the source. |
message.sent | A message is sent to a contact (AI agent, the send-message webhook, bulk sends, manual replies) — no matter the source. |
message.received
Message received (inbound). A contact sends you a message on any channel (SMS, WhatsApp, Facebook, Instagram, chat) — no matter the source.
{
"event": "message.received",
"occurred_at": "2026-06-20T14:30:00.000Z",
"sub_account_id": "<sub account uuid>",
"organization_id": "<organization uuid>",
"message": {
"id": "<uuid>",
"conversation_id": "<uuid>",
"contact_id": "<uuid>",
"channel": "sms",
"direction": "inbound",
"sender_type": "contact",
"content": "Hi, is anyone there?",
"attachment_urls": [],
"timestamp": "2026-06-20T14:30:00.000Z"
}
}message.sent
Message sent (outbound). A message is sent to a contact (AI agent, the send-message webhook, bulk sends, manual replies) — no matter the source.
{
"event": "message.sent",
"occurred_at": "2026-06-20T14:30:00.000Z",
"sub_account_id": "<sub account uuid>",
"organization_id": "<organization uuid>",
"message": {
"id": "<uuid>",
"conversation_id": "<uuid>",
"contact_id": "<uuid>",
"channel": "sms",
"direction": "outbound",
"sender_type": "agent",
"content": "Hi Jane! How can I help?",
"attachment_urls": [],
"timestamp": "2026-06-20T14:30:00.000Z"
}
}