Webhook events

Webhook event: job.completed

The payload Cooledge sends when a job is marked completed.

Updated 17/06/2026

job.completed

Sent when a job is marked completed. 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
job_idstringUUID of the completed job.
job_numbernumber or string or nullThe job number. May be a number or a string depending on how it was recorded. Null when not set.
job_category_idstring or nullUUID of the job category, when one is set. Null otherwise.
statusstringThe job status, which is the completed status here.
customer_idstring or nullUUID of the linked customer, when one is set. Null otherwise.
completed_atstring or nullISO 8601 timestamp the job was completed. Null when not recorded.
descriptionstring or nullThe job description. Null when there is none.
work_detailsstring or nullThe recorded work details for the job. 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": "job.completed",
  "event_id": "d9b1c8a2-6c47-4e09-9a51-2d7e0c4b8f63",
  "business_id": "a7f3c9d1-2e84-4b6f-8c01-5d9e2a1f7b30",
  "occurred_at": "2026-06-17T14:38:55.904Z",
  "job_id": "5c1a0e74-3d29-4b06-9f81-2e7a0c4d6b18",
  "job_number": 318,
  "job_category_id": "2f8d6b41-9c30-4e7a-a15b-6d0e3c9f2a87",
  "status": "completed",
  "customer_id": "8c3e1a72-5d49-4b06-9f81-2e7a0c4d6b18",
  "completed_at": "2026-06-17T14:38:55.904Z",
  "description": "Annual service and refrigerant top-up on ducted system.",
  "work_details": "Cleaned filters and coils, checked gas pressures, replaced return air filter. System running within spec.",
  "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