Webhook event: customer.updated
The payload Cooledge sends when a customer is updated.
customer.updated
Sent when a customer is updated in Cooledge, including when a customer is archived (archived is true then). Delivered to your webhook subscriptions. Deliveries are at-least-once, so dedupe on X-Cooledge-Event-Id.
Envelope
Every event shares the flat envelope: event_type, version ("v1"), event_id, business_id, occurred_at, plus the fields below. See the events overview for the envelope detail and webhooks for signature verification and delivery semantics.
Fields
| Field | Type | Notes |
|---|---|---|
customer_id | string | UUID of the customer that changed. |
name | string or null | The customer's display name as saved on the row. |
legal_name | string or null | The customer's legal or trading name, when set. |
email | string or null | The customer's default email. |
phone | string or null | The customer's default phone. |
archived | boolean | Whether the customer is now archived. true when this update archived the customer. |
external_simpro_customer_id | string or null | The customer's id in Simpro, if you set one. Null otherwise. |
external_ghl_contact_id | string or null | The matching GoHighLevel contact id. Agencies match customer events on this field. Often null. |
external_ghl_opportunity_id | string or null | The matching GoHighLevel opportunity id, when one is linked. Usually null for a plain customer. |
customer_name | string or null | The customer's name re-read for correlation. Usually mirrors name. |
customer_email | string or null | The customer's email re-read for correlation. Usually mirrors email. |
customer_phone | string or null | The customer's phone re-read for correlation. Usually mirrors phone. |
This payload carries the same fields as customer.created plus archived. The customer_name, customer_email and customer_phone fields come from a correlation re-read of the same row, so they normally match name, email and phone.
Example
{
"version": "v1",
"event_type": "customer.updated",
"event_id": "c4a9f1d6-8b27-4e03-9d51-2a7c0e8b6f14",
"business_id": "a7f3c9d1-2e84-4b6f-8c01-5d9e2a1f7b30",
"occurred_at": "2026-06-17T05:48:12.300Z",
"customer_id": "9d2e7c41-6b08-4a3f-bf52-1e0c4d8a9f63",
"name": "Marcus Webb",
"legal_name": "Webb Plumbing Pty Ltd",
"email": "accounts@webbplumbing.com.au",
"phone": "+61412345678",
"archived": false,
"external_simpro_customer_id": "SP-4821",
"external_ghl_contact_id": "x9TpL2mQ7sV4nB1k",
"external_ghl_opportunity_id": null,
"customer_name": "Marcus Webb",
"customer_email": "accounts@webbplumbing.com.au",
"customer_phone": "+61412345678"
}
See webhooks for signature verification and delivery semantics, and all events.
Need a hand with an integration? Contact support