Skip to content

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

TypeCALL_WEBHOOK
Acceptswaits_for: *
Produces
Paramswebhook_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

SlotTypeDescription
waits_for* (any)Execution barrier — step fires after this artifact is available

Outputs

None.

Parameters

NameTypeDescription
webhook_urlstringHTTP endpoint that will receive the POST request

What it does internally

  1. Waits for the waits_for artifact to be available (execution barrier)
  2. Queries GET /ordo/jobs/{job_id} to fetch the full job state
  3. Sends POST webhook_url with the complete job object as the request body
  4. 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.