Webhooks & APIOutbound
chat.updated
Emitted when consumer-visible fields on a chat change
type: chat.updated
Fired when a consumer-visible field on a chat record changes — title, assignment, archive state, or any of the profile fields (firstName, lastName, photoUrl, username).
When it fires
- A chat is renamed, archived, unarchived, or reassigned.
- The owning contact's display fields (name, photo, username) are updated and mirrored to the chat.
When it does NOT fire
- Updates that only change
lastMessage— those would produce one event per message and are intentionally suppressed. Usemessage.inbound.createdandmessage.outbound.createdfor per-message visibility.
data shape
type Data = {
chat: ChatPayload;
previous?: Partial<ChatPayload>; // Fields that changed, pre-update. Omitted when not supplied by the caller.
contact?: ContactPayload;
};chat— the post-update state. SeeChatPayload.previous— optional, only the fields that changed (pre-update values). Omitted when the caller didn't supply a diff.contact— the chat's primary contact, when resolvable. SeeContactPayload.
Example envelope
{
"id": "evt_7b82c9e0-91d3-4f5a-8e21-2a3b4c5d6e7f",
"type": "chat.updated",
"timestamp": "2026-04-24T14:05:30.000Z",
"data": {
"chat": {
"id": "6804f4c2a6f9f35f6e66f1a1",
"integrationId": "67f95b0126a4d1c9e3f0aa12",
"channel": "WHATSAPP",
"firstName": "Alex",
"lastName": "Stone",
"archivedAt": "2026-04-24T14:05:30.000Z",
"updatedAt": "2026-04-24T14:05:30.000Z"
},
"previous": {
"archivedAt": null
},
"contact": {
"peopleId": "6804f4d5a6f9f35f6e66f1a2",
"phoneNumber": "+46700000000"
}
},
"meta": {
"eventId": "evt_7b82c9e0-91d3-4f5a-8e21-2a3b4c5d6e7f",
"event": "chat.updated",
"occurredAt": "2026-04-24T14:05:30.000Z",
"organisationId": "6640f3d5c8a0d7e8b7f20222",
"connectionId": "6640f45ac8a0d7e8b7f2014a",
"apiVersion": "2026-04-01",
"attempt": 1
}
}Related
chat.createdchat.deleted- Shared Types —
ChatPayload,ContactPayload - Envelope & Delivery