EESI executes webhook nodes asynchronously after a workflow run completes. You configure the target URL, HTTP method, headers, and payload template directly in the workflow definition.

How webhooks work

  1. A call completes (or a run finishes)
  2. EESI executes any webhook nodes in the workflow asynchronously
  3. The payload template is rendered with the runโ€™s context and sent as a JSON POST (or your configured method) to your endpoint
  4. Non-200 responses are logged but do not block or retry by default (configure retry_config to change this)

Payload context variables

The following variables are available in your payload_template using double-brace syntax (e.g. {{workflow_run_id}}):

Example payload template


Authentication

Webhook requests support the following authentication methods, configured via a stored credential:

Receiving webhooks

Your endpoint should:
  • Accept POST requests with Content-Type: application/json
  • Respond with a 2xx status code promptly (within 30 seconds)
  • Handle duplicate deliveries idempotently (retries may deliver the same payload more than once)

Minimal example receiver (Python)


Webhook node in a workflow definition

See Workflow Definition Schema for the full configuration reference.