Organisation Events
organisation.deleted - a client org you manage was torn down
One event, and it is partner-only: it reaches your subscription and nothing else, because the client's own webhook connections are about to be wiped along with the rest of their data.
Subscribe with ORGANISATION_DELETED.
organisation.deleted
type: organisation.deleted
A managed client org was deprovisioned - you called deprovisionClientOrg.
data
type Data = {
organisationId: string;
externalId: string | null; // your id for the client, or null if never set
};Note that externalId appears both in data and in meta here. In data it is explicitly null when unset; in meta it is omitted.
Example
{
"id": "evt_09122334-4556-6778-8990-011223344556",
"type": "organisation.deleted",
"timestamp": "2026-09-30T19:00:00.000Z",
"data": {
"organisationId": "6716b2f0a1c34d0012ab89ef",
"externalId": "crmco-client-5541"
},
"meta": {
"eventId": "evt_09122334-4556-6778-8990-011223344556",
"event": "organisation.deleted",
"occurredAt": "2026-09-30T19:00:00.000Z",
"organisationId": "6716b2f0a1c34d0012ab89ef",
"externalId": "crmco-client-5541",
"partnerId": "6716b1001c34d0012ab89abc",
"apiVersion": "2026-04-01",
"attempt": 1
}
}This event is emitted before the deletion cascade runs, so the org still resolves for fan-out. Expect it to arrive ahead of the deprovisionClientOrg mutation's own response, and do not assume the client's data is already gone when you receive it.
What You Will Not Receive
The cascade deletes the client's chats, messages, contacts, and everything else, but it does not emit a chat.deleted or contact.deleted per row. This single event is the whole signal.
Treat it as "everything for this client is gone" and clean up your own mirror in one pass, keyed on data.organisationId or data.externalId.