Webhook

The Webhook block sends an HTTP POST to an external endpoint. It is an outbound action; the Webhook trigger receives requests that start a run.

Notify an external service

Send the Agent's result as a JSON payload to a Slack incoming webhook or your own endpoint. Use the payload format required by that endpoint.

Configuration

FieldBehavior
Webhook URLStatic endpoint URL or a value assembled from earlier outputs.
PayloadJSON request body. The AI wand can help generate it.
Signing SecretOptional {{WEBHOOK_SECRET}} or another secret reference for HMAC-SHA256 signing.
Additional HeadersKey-value headers merged over the automatic headers.
{
  "event": "workflow.completed",
  "data": {
    "result": "<agent.content>"
  }
}

Automatic headers and signing

HeaderValue
Content-Typeapplication/json
X-Webhook-TimestampUnix timestamp in milliseconds
X-Delivery-IDUUID for this request
Idempotency-KeySame UUID as X-Delivery-ID
X-Webhook-SignatureWhen a secret is supplied: t=<timestamp>,v1=<signature>

The signature is the hexadecimal HMAC-SHA256(secret, "${timestamp}.${body}"), using the exact request body. Verify that value against v1 at the destination.

Custom headers can override these defaults. Overriding signing or timestamp headers can break verification. A new request gets a new delivery ID; the key does not deduplicate separate workflow executions automatically.

Outputs and failures

ReferenceValue
<webhook.data>Endpoint response body
<webhook.status>Successful response's HTTP status
<webhook.headers>Response headers

Non-2xx responses and request failures use the block's error path. Connect the error port when the workflow should recover.

Send only when a condition passes

Connect the Condition's if port to the Webhook to start an external process only for the matching event.

The Webhook block always uses POST. Use API for another HTTP method, retry controls, or proxy configuration.