Message delivery status webhooks
1.
message_delivery.sent
- this is triggered when the message has been sent to the contact.{
"type": "message_delivery.sent",
"data": {
"message": {
"id": "cmsg_1234abcd",
"status": "sent",
"type": "template_message",
"reason": null,
"created_at": "2025-05-22T11:25:06.239Z",
"updated_at": "2025-05-22T11:25:06.239Z"
},
"contact": {
"id": 1,
"account_id": 1,
"name": "John Doe",
"phone_number": "+919988776655",
"first_name": "John",
"last_name": "Doe",
"country_code": "91",
"language": null,
"email": "johndoe@example.com"
},
"event": null
}
}
{
"type": "message_delivery.sent",
"data": {
"message": {
"id": 1,
"status": "sent",
"type": "message",
"reason": null,
"created_at": "2025-05-03T02:17:07.420Z",
"updated_at": "2025-05-03T02:17:07.420Z"
},
"contact": {
"id": 1,
"account_id": 1,
"name": "John Doe",
"phone_number": "+919988776655",
"first_name": "John",
"last_name": "Doe",
"country_code": "91",
"language": null,
"email": "johndoe@example.com"
},
"event": null
}
}
2.
message_delivery.delivered
- this is triggered when the message has been delivered to the contact.{
"type": "message_delivery.sent",
"data": {
"message": {
"id": "cmsg_1234abcd",
"status": "delivered",
"type": "template_message",
"reason": null,
"created_at": "2025-05-22T11:25:06.239Z",
"updated_at": "2025-05-22T11:25:06.239Z"
},
"contact": {
"id": 1,
"account_id": 1,
"name": "John Doe",
"phone_number": "+919988776655",
"first_name": "John",
"last_name": "Doe",
"country_code": "91",
"language": null,
"email": "johndoe@example.com"
},
"event": null
}
}
{
"type": "message_delivery.sent",
"data": {
"message": {
"id": 1,
"status": "delivered",
"type": "message",
"reason": null,
"created_at": "2025-05-03T02:17:07.420Z",
"updated_at": "2025-05-03T02:17:07.420Z"
},
"contact": {
"id": 1,
"account_id": 1,
"name": "John Doe",
"phone_number": "+919988776655",
"first_name": "John",
"last_name": "Doe",
"country_code": "91",
"language": null,
"email": "johndoe@example.com"
},
"event": null
}
}
3.
message_delivery.failed
- this is triggered when the message could not be sent to the contact.{
"type": "message_delivery.sent",
"data": {
"message": {
"id": "cmsg_1234abcd",
"status": "failed",
"type": "template_message",
"reason": "failure reason",
"created_at": "2025-05-22T11:25:06.239Z",
"updated_at": "2025-05-22T11:25:06.239Z"
},
"contact": {
"id": 1,
"account_id": 1,
"name": "John Doe",
"phone_number": "+919988776655",
"first_name": "John",
"last_name": "Doe",
"country_code": "91",
"language": null,
"email": "johndoe@example.com"
},
"event": null
}
}
{
"type": "message_delivery.sent",
"data": {
"message": {
"id": 1,
"status": "failed",
"type": "message",
"reason": "failure reason",
"created_at": "2025-05-03T02:17:07.420Z",
"updated_at": "2025-05-03T02:17:07.420Z"
},
"contact": {
"id": 1,
"account_id": 1,
"name": "John Doe",
"phone_number": "+919988776655",
"first_name": "John",
"last_name": "Doe",
"country_code": "91",
"language": null,
"email": "johndoe@example.com"
},
"event": null
}
}
4.
message_delivery.read
- this is triggered when the message was read by the contact.{
"type": "message_delivery.sent",
"data": {
"message": {
"id": "cmsg_1234abcd",
"status": "read",
"type": "template_message",
"reason": null,
"created_at": "2025-05-22T11:25:06.239Z",
"updated_at": "2025-05-22T11:25:06.239Z"
},
"contact": {
"id": 1,
"account_id": 1,
"name": "John Doe",
"phone_number": "+919988776655",
"first_name": "John",
"last_name": "Doe",
"country_code": "91",
"language": null,
"email": "johndoe@example.com"
},
"event": null
}
}
{
"type": "message_delivery.sent",
"data": {
"message": {
"id": 1,
"status": "read",
"type": "message",
"reason": null,
"created_at": "2025-05-03T02:17:07.420Z",
"updated_at": "2025-05-03T02:17:07.420Z"
},
"contact": {
"id": 1,
"account_id": 1,
"name": "John Doe",
"phone_number": "+919988776655",
"first_name": "John",
"last_name": "Doe",
"country_code": "91",
"language": null,
"email": "johndoe@example.com"
},
"event": null
}
}