With the IM Message Status webhook, you always know the exact moment a message is sent, delivered, or read. This helps you track message journeys from end to end, measure customer engagement, and trigger actions in real time.
What is the IM Message Status Event?
The IM Message Status Event is triggered whenever the status of an individual message changes. It tells you:
- When a message moves from sent to delivered
- When a customer reads your message
- The previous status and the new status of the message
- The exact timestamp when the status changed
Note
Event Type: IM_Message_Status
Sample Payload
Every time an IM message status changes, you will receive a payload like this at your webhook endpoint:
[{
"payload": {
"messageOldStatus": "SENT",
"messageNewStatus": {
"updatedTime": "2025-10-09T07:27:19.394Z",
"status": "DELIVERED"
},
"messageId": 50007000000006017,
"sessionId": 50007000000004136,
"channelId": 50007000000004080
},
"eventTime": "1751022087019",
"eventType": "IM_Message_Status",
"orgId": "106553778"
}]
Payload Fields Reference
Each webhook event provides the full context of the message status change.
| Field |
Description |
| messageOldStatus |
The previous status of the message |
| messageNewStatus.status |
The updated status of the message |
| messageNewStatus.updatedTime |
The exact time when the status changed |
| messageId |
The unique identifier of the message |
| sessionId |
Conversation or session ID the message belongs to |
| channelId |
ID of the channel where the message was sent |
| eventTime |
Unix epoch (milliseconds) of when the webhook event fired |
| eventType |
Type of webhook event |
| orgId |
Your Zoho Desk organization ID |
Message Status Values
Below are all possible message statuses and what they indicate.
| Status |
Description |
| SENT |
Message is successfully sent to the end user |
| DELIVERED |
Message is delivered to the end user |
| READ |
Message is read by the end user |
How to Set It Up
Follow these steps to configure the IM Message Status webhook in your portal:
Setup
1. Navigate to Setup > Automation > Webhooks.
2. Click Create Webhook.
3. Select the IM Message Status event.
4. Enter your Webhook URL.
5. Click Save and test the webhook.
Practical Use Cases
Stay fully informed about how your messages perform. With this webhook, you can:
Delivery monitoring
Get notified when messages are stuck in the SENT state for too long. Use messageOldStatus and messageNewStatus.updatedTime to calculate how long a message has been undelivered and trigger an alert or retry.
Customer engagement tracking
Log every READ event to measure customer interest. By recording the time between DELIVERED and READ, you can build engagement benchmarks per channel or per agent.
Smart follow-ups
Trigger follow-up tasks when messages are delivered but not read after a defined period. Use messageNewStatus.status to detect the DELIVERED state and start a timer, then trigger the follow-up if no READ event arrives within your threshold.
Report delivery and read ratios across WhatsApp, Instagram, Facebook, and live chat. Group events by channelId to compare how messages perform across different platforms and identify which channels have the lowest delivery success rates.
Troubleshooting and FAQ
Q: Why am I not receiving events for message status changes?
A: First, check that the webhook is enabled and your endpoint is reachable. Also confirm that the IM channel you are testing supports message status callbacks. Not all channels provide delivery and read receipt data; if the channel does not emit status updates, no event will be fired regardless of the webhook configuration.
Q: Why is the event data incomplete?
A: Some fields such as messageNewStatus.updatedTime are only populated when the channel integration provides that data. Ensure message status callbacks are fully supported for the integration you are testing and that your channel account is in good standing.
Q: Does this work with WhatsApp, Facebook, or Instagram?
A: Yes. Message status updates are supported for channels that provide delivery and read receipts, including WhatsApp, Facebook Messenger, and Instagram. The availability of READ events specifically depends on the channel's privacy settings and whether the end user has read receipts enabled.
Q: Can I use the same webhook URL for this and other IM events?
A: Yes. A single callback URL can receive multiple event types. Differentiate them at your endpoint using the eventType field in each payload, which will be IM_Message_Status for this event.