Skip to main content
WEBHOOK
workflowStatusChanged
{
  "id": "9555b9ed-1d0c-47ad-9e41-056fb4fe087e",
  "time": "2026-06-22T18:04:11.000Z",
  "event_type": "WORKFLOW_COMPLETED",
  "event": {
    "workflow_id": "e050f684-7b3d-407a-98e7-5dfe11860317",
    "status": "COMPLETE"
  }
}

Headers

X-Halliday-Signature
string
required

Comma-separated list of v1=0x<hex> HMAC-SHA256 signatures over the raw request body.

Body

application/json

The signed JSON payload Halliday POSTs to your receiver URL.

id
string<uuid>
required

Unique delivery id. Use it for idempotency — a retried delivery reuses the same id.

Example:

"9555b9ed-1d0c-47ad-9e41-056fb4fe087e"

time
string<date-time>
required

ISO-8601 timestamp of the event.

Example:

"2026-06-22T18:04:11.000Z"

event_type
enum<string>
required

Event type a webhook can subscribe to. WORKFLOW_COMPLETED fires when a workflow's status becomes COMPLETE; WORKFLOW_FAILED fires when it becomes FAILED.

Available options:
WORKFLOW_COMPLETED,
WORKFLOW_FAILED
event
object
required

The terminal workflow state.

Response

200

Return any 2xx to acknowledge receipt. Any other status — or no response within 10 seconds — is treated as a failed delivery and retried.