Message updated

Incoming webhook deliveries are authenticated with HMAC signature headers (X-Chatway-Signature and X-Chatway-Timestamp), not your Chatway API key.

A chat message was edited.

Triggered when message content or attachments change after an edit from the agent or visitor app.

Internal notes and reminders are not included.

Use message.updated to revise a message already stored in your transcript. Find it by data.message.id, inspect data.updated_fields, and use data.previous_values for the earlier values. Read the edited values from data.message. For example, a content change updates the existing message's text rather than creating another transcript entry. To retrieve conversation history, pass data.conversation.id to List Conversation Messages.

For signature verification and retries, see Webhooks overview.

POST webhook: message.updated

Parameters

NameInRequiredTypeDescription
X-Chatway-EventheaderYesstringEvent name for this delivery. Example: message.updated
X-Chatway-Webhook-IdheaderYesstring (uuid)Unique webhook subscription ID. Example: 9f3c2a1b-4d5e-4f70-8a9b-0c1d2e3f4a5b
X-Chatway-Delivery-IdheaderYesstringUnique ID for this HTTP delivery attempt (`del_` + 32 hex characters). A new value is sent on each retry. Example: del_1b0279b1f28f12c0b9f2a2fdbf3758ee
X-Chatway-Delivery-AttemptheaderYesstringAttempt number for this event (`1` on first try). Sent as a decimal string in the header. Example: 1
X-Chatway-TimestampheaderYesstringUnix timestamp in seconds when the request was signed. Sent as a decimal string in the header. Example: 1770201301
X-Chatway-SignatureheaderYesstring`sha256=` followed by the lowercase hex HMAC SHA256 of `{X-Chatway-Timestamp}.{raw request body}`, keyed with your webhook secret. The example is computed for the example body serialized as compact JSON, the example timestamp, and the placeholder secret `whsec_exampleSecretForDocsOnly00000000`. Example: sha256=55c0b9dfc33c66e579b8877ac72b912490a27778ee456b6f0402d0bf923a29c9

Request body

Signed JSON envelope for this event.

application/json

Responses

200

Return any 2xx status to acknowledge receipt.

410

Optional HTTP 410 Gone to signal the endpoint is permanently unavailable. Like every non-2xx response below 500 (including 408 and 429), it is not retried. It does not disable the subscription; turn the webhook off in Chatway Settings if you want deliveries to stop.

Examples

Request body example

{
    "id": "evt_1234567890abcdef1234567890abcdef",
    "event": "message.updated",
    "data": {
        "message": {
            "id": "679f5ba4-3cbf-42eb-86dc-63566cec6b58",
            "content": "Hello, I need help with my order",
            "attachments": [],
            "created_at": "2026-02-04T10:31:12Z",
            "edited_at": "2026-02-04T10:35:00Z"
        },
        "updated_fields": [
            "content"
        ],
        "previous_values": {
            "content": "Hello, I need help"
        },
        "conversation": {
            "id": "0f46c0a1-8938-40e3-b2b5-bb56f569fcab",
            "channel": "website",
            "status": "open",
            "widget_name": "Main site widget",
            "identifier": "eouqtiupanm6uvglwshy"
        },
        "visitor": {
            "id": "9b0c5fe6-35ad-459d-b6ba-4288191f84f1",
            "name": "John Doe",
            "email": "[email protected]",
            "phone": "+1XXXXXXXXXX"
        }
    },
    "occurred_at": "2026-02-04T10:35:00Z",
    "version": "2026-09"
}