Webhooks & APIOutbound
message.inbound.updated
Emitted when an inbound message is edited or its delivery status changes
type: message.inbound.updated
Fired when an existing inbound message is edited, or when its delivery-status timestamps are bumped.
When it fires
- The contact edits a message on the channel side (where supported — e.g. Telegram edits).
- A delivery-status timestamp changes —
deliveredAt,readAt, orfailedAt.
data shape
type Data = {
chat: ChatPayload;
message: MessagePayload; // direction: "INBOUND"
previous?: Partial<MessagePayload>;
contact?: ContactPayload;
};chat— the owning chat. SeeChatPayload.message— the post-update message state. SeeMessagePayload.previous— optional, only the fields that changed (pre-update values).contact— the sender, when resolvable.
Example envelope
{
"id": "evt_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"type": "message.inbound.updated",
"timestamp": "2026-04-24T12:15:10.000Z",
"data": {
"chat": {
"id": "6804f4c2a6f9f35f6e66f1a1",
"integrationId": "67f95b0126a4d1c9e3f0aa12",
"channel": "WHATSAPP"
},
"message": {
"id": "msg_01",
"chatId": "6804f4c2a6f9f35f6e66f1a1",
"direction": "INBOUND",
"type": "TEXT",
"text": "Hi, I need help urgently",
"receivedAt": "2026-04-24T12:14:22.000Z"
},
"previous": {
"text": "Hi, I need help"
}
},
"meta": {
"eventId": "evt_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"event": "message.inbound.updated",
"occurredAt": "2026-04-24T12:15:10.000Z",
"organisationId": "6640f3d5c8a0d7e8b7f20222",
"connectionId": "6640f45ac8a0d7e8b7f2014a",
"apiVersion": "2026-04-01",
"attempt": 1
}
}Related
message.inbound.createdmessage.inbound.deleted- Shared Types —
MessagePayload - Envelope & Delivery