Learn how to configure webhooks to receive real-time WhatsApp events
whatsapp.message.received
- Triggered when a new message arrives from a customerwhatsapp.message.sent
- Triggered when a message is successfully sent to WhatsAppwhatsapp.conversation.created
- Triggered when a new conversation beginswhatsapp.conversation.ended
- Triggered when a conversation ends (agent action, manual closure, or 24-hour inactivity)whatsapp.message.delivered
- Triggered when your message is deliveredwhatsapp.message.read
- Triggered when your message is readwhatsapp.message.failed
- Triggered when message delivery failswhatsapp.message.received
event.whatsapp.message.received
event type, but with multiple messages:
X-Webhook-Batch: true
- Indicates this is a batched deliveryX-Batch-Size: N
- Number of messages in the batchbatch
field or X-Webhook-Batch
header to determine if it’s receiving a batch.test: true
flag to identify it as a testmessage_type_data
field contains different information based on the message type:
X-Webhook-Signature
headerUse HTTPS endpoints
Implement idempotency
X-Idempotency-Key
header to ensure you process each event only once, even if it’s delivered multiple times.Respond quickly
Verify signatures
Handle errors gracefully