Webhooks

Webhooks connect eltPulse to the rest of your stack: notify downstream systems when runs finish, or trigger pipelines from external events. Configure everything in the app at Webhooks.

Outgoing (run finished)

When a run reaches a terminal state (success, failed, or cancelled), eltPulse can POST a JSON payload to your URL.

  • Global webhook — one URL for all pipelines in the workspace.
  • Per-pipeline override — optional URL on each pipeline row; overrides global when set.

Payloads include run id, pipeline name, status, timestamps, and optional telemetrySummary (rows, bytes, progress) when the runner reported metrics. Receivers like ServicePulse can filter on source: "eltpulse".

API: GET/PUT /api/elt/runs/webhook (global), PUT /api/elt/pipelines/:id/webhook (per pipeline). Requires session auth or a workspace API key.

Incoming (trigger a run)

Generate a workspace incoming webhook token on the Webhooks page. External systems call:

POST /api/webhooks/trigger/:token
Content-Type: application/json

{ "pipelineId": "<uuid>", "partitionValue": "2024-01-15" }

Optional partitionValue scopes the run to a slice (see Run slices). Regenerate the token anytime — old tokens stop working immediately.

Pipeline chains

For downstream work after a successful run, you can also use Pipeline chains — native DAG edges between pipelines without writing webhook glue. Webhooks remain the portable option for tools outside eltPulse.

Runs · Orchestration · Integrations