Webhook events

Webhook event: booking.created

The payload Cooledge sends when a booking is created.

Updated 17/06/2026

booking.created

Sent when a booking is created. 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

FieldTypeNotes
booking_idstringUUID of the new booking.
job_idstring or nullUUID of the linked job, when one is set. Null otherwise.
booking_typestringThe kind of booking, for example a site visit or a scheduled job.
statusstringThe booking status.
starts_atstring or nullISO 8601 timestamp the booking starts. Null when not set.
ends_atstring or nullISO 8601 timestamp the booking ends. Null when not set.
staff_idsarray of stringThe UUIDs of the staff users assigned to the booking. Empty when none are assigned.
customer_idstring or nullUUID of the linked customer, when one is set. Null otherwise.
notesstring or nullNotes on the booking. Null when there are none.
external_ghl_contact_idstring or nullThe matching GoHighLevel contact id, from the linked customer when one exists.
external_ghl_opportunity_idstring or nullThe matching GoHighLevel opportunity id, from the linked lead when one exists.
customer_namestring or nullThe customer's name from the live customer row.
customer_emailstring or nullThe customer's email from the live customer row.
customer_phonestring or nullThe customer's phone from the live customer row.

The customer_* and external_ghl_* fields are the shared correlation block, resolved from the live customer and lead rows.

Example

{
  "version": "v1",
  "event_type": "booking.created",
  "event_id": "e1c2d8a2-6c47-4e09-9a51-2d7e0c4b8f63",
  "business_id": "a7f3c9d1-2e84-4b6f-8c01-5d9e2a1f7b30",
  "occurred_at": "2026-06-17T16:05:12.480Z",
  "booking_id": "4a7e2c91-6b08-4a3f-bf52-1e0c4d8a9f63",
  "job_id": "5c1a0e74-3d29-4b06-9f81-2e7a0c4d6b18",
  "booking_type": "site_visit",
  "status": "scheduled",
  "starts_at": "2026-06-20T22:30:00.000Z",
  "ends_at": "2026-06-21T00:00:00.000Z",
  "staff_ids": [
    "3b1c0e2a-7d44-4e91-9a2c-1f0b8e6d5a23",
    "6d0e3c9f-2a87-4e7a-a15b-9c302f8d6b41"
  ],
  "customer_id": "8c3e1a72-5d49-4b06-9f81-2e7a0c4d6b18",
  "notes": "Confirm access with site manager before arrival.",
  "external_ghl_contact_id": "x9TpL2mQ7sV4nB1k",
  "external_ghl_opportunity_id": "pT8wK3rN6vM1jQ5d",
  "customer_name": "Priya Nair",
  "customer_email": "priya.nair@example.com",
  "customer_phone": "+61498765432"
}

See webhooks for signature verification and delivery semantics, and all events.

Need a hand with an integration? Contact support