Conversation resolved
Incoming webhook deliveries are authenticated with HMAC signature headers (X-Chatway-Signature and X-Chatway-Timestamp), not your Chatway API key.
A conversation was resolved by an agent, automation, or system.
resolved_by uses the same object shape as assigned_by on tag.assigned and agent.assigned: agent, automation, or system.
Use conversation.resolved to record closure in a ticketing system or stop an open-conversation timer. Identify the conversation with data.conversation.id and the actor with data.resolved_by. For example, your activity history can distinguish an agent resolving a conversation from an automation doing so. To resolve or reopen a conversation through the API, see Resolve Conversation. This webhook describes the resolved event; the API operation supports both status changes.
For signature verification and retries, see Webhooks overview.
Headers
Event name for this delivery.
Unique webhook subscription ID.
Unique ID for this HTTP delivery attempt (del_ + 32 hex characters). A new value is sent on each retry.
Attempt number for this event (1 on first try). Sent as a decimal string in the header.
Unix timestamp in seconds when the request was signed. Sent as a decimal string in the header.
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.
Payload
Example payload
{
"id": "evt_1234567890abcdef1234567890abcdef",
"event": "conversation.resolved",
"data": {
"conversation": {
"id": "0f46c0a1-8938-40e3-b2b5-bb56f569fcab",
"channel": "website",
"status": "resolved",
"widget_name": "Main site widget",
"identifier": "eouqtiupanm6uvglwshy",
"resolved_at": "2026-02-04T11:00:00Z"
},
"visitor": {
"id": "9b0c5fe6-35ad-459d-b6ba-4288191f84f1",
"name": "John Doe",
"email": "john@example.com",
"phone": null
},
"agent": {
"id": "26fa75f2-7ac1-47b4-84e1-b943491ba4da",
"name": "Sarah",
"email": "sarah@example.com"
},
"resolved_by": {
"agent": {
"id": "26fa75f2-7ac1-47b4-84e1-b943491ba4da",
"name": "Sarah",
"email": "sarah@example.com"
}
}
},
"occurred_at": "2026-02-04T11:00:00Z",
"version": "2026-09"
}Response
Return any 2xx status to acknowledge receipt.
Changes
Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.