Webhooks
Webhooks push real-time events to your server as they happen — a customer
replies, a message is delivered or read, someone taps a button, or a
conversation is assigned. Every event carries a channel field ("whatsapp").
Configuring your webhook
Go to Settings → Developer → Configure Webhook, enter your HTTPS URL, and tick the events you want. You only receive events you have subscribed to.
Request format
Every event is delivered as an HTTP POST with this envelope:
{
"event": "incoming_message",
"timestamp": "2026-05-18T10:00:00Z",
"data": { }
}| Header | Value |
|---|---|
Content-Type | application/json |
X-Webhook-Event | the event name |
X-Webhook-Source | splashifypro |
Respond with any 2xx status within 10 seconds. Non-2xx responses and
timeouts are logged on our side; the event is not retried.
incoming_message
A customer sent a message to your business.
{
"event": "incoming_message",
"timestamp": "2026-05-18T10:00:00Z",
"data": {
"message_id": "wamid.HBgM...",
"from": "919876543210",
"conversation_id": "ee64970d-0539-4eb0-859d-2147859a604d",
"type": "text",
"text": "Hi, is my order shipped?",
"channel": "whatsapp",
"timestamp": "2026-05-18T10:00:00Z",
"contacts": [
{ "profile": { "name": "Aditya" }, "wa_id": "919876543210" }
]
}
}| Field | Notes |
|---|---|
type | text, image, video, audio, document, location, … |
text | Body text, or the file name for media |
media_url | Present for media messages |
contacts | WhatsApp profile block |
message_sent · message_delivered · message_read · message_failed
Delivery lifecycle of a message you sent.
{
"event": "message_delivered",
"timestamp": "2026-05-18T10:00:05Z",
"data": {
"message_id": "d58aeff7-a81c-47a7-9b67-f381e13f6c4e",
"to": "919876543210",
"status": "delivered",
"channel": "whatsapp"
}
}message_failed additionally carries an error_message:
{
"event": "message_failed",
"timestamp": "2026-05-18T10:00:05Z",
"data": {
"message_id": "d58aeff7-...",
"to": "919876543210",
"status": "failed",
"channel": "whatsapp",
"error_message": "Message undeliverable"
}
}button_clicked
A customer tapped a template/interactive button. Fired alongside
incoming_message.
{
"event": "button_clicked",
"timestamp": "2026-05-18T10:00:00Z",
"data": {
"message_id": "wamid.HBgM...",
"conversation_id": "ee64970d-0539-4eb0-859d-2147859a604d",
"from": "919876543210",
"button_id": "confirm_order",
"button_text": "Confirm Order",
"channel": "whatsapp",
"timestamp": "2026-05-18T10:00:00Z"
}
}| Field | Notes |
|---|---|
button_id | The button’s reply id / payload |
button_text | The visible button label |
team_member_assigned
A conversation was assigned to a team member — including when a chatbot hands the conversation over to a human agent.
{
"event": "team_member_assigned",
"timestamp": "2026-05-18T10:02:00Z",
"data": {
"conversation_id": "ee64970d-0539-4eb0-859d-2147859a604d",
"contact": "919876543210",
"assigned_to": "0b8074fd-510d-11f1-8b74-aa43648fa5e4",
"assigned_name": "Jane Doe"
}
}Event reference
| Event | Fires when |
|---|---|
incoming_message | A customer sends a message |
message_sent | The provider confirms the message was sent |
message_delivered | The provider confirms delivery |
message_read | The recipient reads the message |
message_failed | The message fails to deliver |
button_clicked | A customer taps a button |
team_member_assigned | A conversation is assigned to a team member (incl. bot→human handover) |