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, or failedAt.

data shape

type Data = {
  chat: ChatPayload;
  message: MessagePayload;             // direction: "INBOUND"
  previous?: Partial<MessagePayload>;
  contact?: ContactPayload;
};
  • chat — the owning chat. See ChatPayload.
  • message — the post-update message state. See MessagePayload.
  • 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
  }
}

On this page