Webhook payload example and field reference for Sent Message is REPLIED (sentMessageREPLIED_v2).
{
"eventType": "sentMessageREPLIED_v2",
"statusString": "Replied",
"localMessageId": "16bf77ae-79e691eb4b",
"id": "693fd65f961dc81779391640",
"whatsappMessageId": "wamid.HBgNODYxMzEABEYEjVCNzg2MDU0OEM0NTYxRTlBMwA=",
"conversationId": "68cba3db12b3349e",
"ticketId": "693fd64d1d45f54",
"text": "hello",
"type": "text",
"timestamp": "17651326",
"assigneeId": "65a10905cf65262",
"operatorEmail": "[email protected]",
"channelId": null,
"channelPhoneNumber": "174742"
}Field Description
| Field | Type | Description |
|---|---|---|
| eventType | String | The type of webhook event. Always "sentMessageREPLIED_v2" for this event |
| statusString | String | Human-readable status of the message |
| localMessageId | String | Caller-supplied correlation when available; not a general request-level idempotency guarantee. |
| id | String | WATI message or broadcast-link identifier, depending on the message family; not a unique webhook-delivery ID. |
| whatsappMessageId | String | WhatsApp's internal message identifier |
| conversationId | String | Unique identifier for the conversation thread |
| ticketId | String | Identifier for the support ticket associated with this conversation |
| text | String | The text content of the message. Can be 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" |
| 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. |
| assigneeId | String | ID of the team member assigned to handle this conversation. Null if unassigned |
| operatorEmail | String | Email address of the operator who sent the original message |
| channelId | String | Identifier for the channel used. Can be null |
| channelPhoneNumber | String | Phone number associated with the channel |
Legacy event variant
The same notification also has the legacy eventType sentMessageREPLIED; the example above shows sentMessageREPLIED_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": "sentMessageREPLIED",
"id": "<wati-message-id>"
}
