CALL_WEBHOOK
Sends an HTTP POST request to an external webhook endpoint containing the full Ordo job object. The step retrieves the complete job state from the Ordo API before sending the request, so the webhook body contains job metadata, step results, artifacts, and execution status — not just the triggering step's payload.
This step does not consume or produce artifacts. Its only effect is the external HTTP call.
Webhook delivery failures do not interrupt pipeline execution.
Typical use: sending a completion notification after all processing steps finish. Almost always used in on_exit hooks.
Contract
| Type | CALL_WEBHOOK |
| Accepts | waits_for: * |
| Produces | — |
| Params | webhook_url (string) |
The waits_for slot is an execution barrier — the step waits for the referenced artifact to exist before firing, but does not read or process it.
Inputs
| Slot | Type | Description |
|---|---|---|
waits_for | * (any) | Execution barrier — step fires after this artifact is available |
Outputs
None.
Parameters
| Name | Type | Description |
|---|---|---|
webhook_url | string | HTTP endpoint that will receive the POST request |
What it does internally
- Waits for the
waits_forartifact to be available (execution barrier) - Queries
GET /ordo/jobs/{job_id}to fetch the full job state - Sends
POST webhook_urlwith the complete job object as the request body - Continues even if the webhook call fails (
onError: continueRegularOutput)
The webhook body is the same structure returned by GET /jobs/:id — job metadata, progress, timeline, steps, artifacts, and outputs.
on_exit pattern
CALL_WEBHOOK is designed to be used in the on_exit hook of a recipe. The on_exit hook runs after all main recipe steps complete, regardless of success or failure.
json
"on_exit": {
"id": "call_webhook",
"type": "CALL_WEBHOOK",
"inputs": { "waits_for": "step:dataset_info.metadata" },
"param_keys": ["webhook_url"]
}By waiting for step:dataset_info.metadata, the webhook fires only after the DATASET_INFO step has produced its metadata artifact — so the full job object including dataset statistics is available in the webhook payload.
Job param:
json
"params": {
"call_webhook": {
"webhook_url": "https://myapp.example.com/hooks/processing-done"
}
}Failure tolerance
The step uses onError: continueRegularOutput in the n8n workflow. Webhook delivery failures (network errors, non-2xx responses) are logged but do not cause the step to fail. The job will complete as success even if the webhook could not be delivered.
This is intentional — notifications should never block the pipeline result.
See on-exit-hooks.md for full integration details.