Webhook payload example and field reference for Session Message Sent (sessionMessageSent_v2).
{
"eventType": "sessionMessageSent_v2",
"localMessageId": "16bf77ae-79e8-1e88-8b78-96",
"chatbotTriggeredEventId": null,
"id": "693fd65f961dc",
"whatsappMessageId": "wamid.HBgNODYxMzEzMzg4MzI5NxUCAOEM0NTYxRTlBMwA=",
"conversationId": "68cba3adb12b3349e",
"ticketId": "693fd648545f54",
"text": "hello",
"type": "text",
"data": null,
"timestamp": "1765791326",
"owner": true,
"statusString": "SENT",
"assigneeId": "65a109615b5cf65262",
"operatorEmail": "[email protected]",
"operatorName": "de",
"waId": "86197",
"replyContextId": "",
"channelId": null,
"channelPhoneNumber": "177742",
"bsuid": "HK.xxxxxxxxxxxxx",
"parentBsuid": "HK.ENT.xxxxxxxxxxxxx",
"username": "@bob"
}Field Descriptions
| Field Name | Type | Description |
|---|---|---|
| eventType | string | The type of webhook event being triggered |
| id | string | WATI message or broadcast-link identifier, depending on the message family; not a unique webhook-delivery ID. |
| whatsappMessageId | string | WhatsApp's unique identifier for the message |
| conversationId | string | Unique identifier for the conversation thread |
| ticketId | string | Unique identifier for the support ticket |
| text | string | The actual text content of the message (null for non-text messages) |
| type | string | Message type, supported values include: "image", "text", "document", "location", "voice", "audio", "button", "interactive", "reaction", "video", "sticker", "contacts", "order", "catalog", "media_placeholder", "template" |
| data | string/null | Media URL when emitted; otherwise null. |
| timestamp | string | Unix seconds encoded as a string. This is a source-dependent message/event-processing timestamp, not a guaranteed time of actual delivery or reply. |
| owner | boolean | Indicates if the message was sent by the business (true) or customer (false) |
| statusString | string | Current delivery status of the message |
| assigneeId | string | Unique identifier of the agent assigned to handle this conversation |
| operatorEmail | string | Email address of the operator who sent the message |
| operatorName | string | Display name of the operator who sent the message |
| waId | string | WhatsApp ID of the recipient (phone number with country code) |
Legacy event variant
The same notification also has the legacy eventType sessionMessageSent; the example above shows sessionMessageSent_v2. The legacy base payload does not define localMessageId; do not require it when handling the legacy event. V2 adds caller correlation where available. Other payload fields follow the notification type.
{
"eventType": "sessionMessageSent",
"id": "<wati-message-id>"
}
