Skip to content

Webhook Sender

Overview

The Webhook Sender node sends an HTTP request to a configured external URL, forwarding workflow data as a JSON payload. Use it to notify third-party services, trigger external pipelines, or push battle results to custom integrations. The node supports configurable HTTP methods, custom headers, and optional authentication credentials. On non-2xx responses or network failures, execution routes to the error output port rather than halting the workflow.

Configuration

FieldTypeRequiredDescription
urlstringYesThe fully qualified HTTPS URL to send the request to.
methodenum (POST, PUT, PATCH)YesHTTP method used for the request. Defaults to POST.
headersobjectNoKey-value map of HTTP headers to include in the request (e.g. Content-Type, Authorization).
authTypeenum (none, bearer, basic, hmac)NoAuthentication scheme to use. When set, the corresponding credential fields become required.
authSecretstringNoSecret token or password used by the selected authType. Stored as an encrypted credential.
timeoutMsnumberNoMaximum milliseconds to wait for a response before treating the request as failed. Defaults to 5000.
retryOnFailurebooleanNoWhen true, retries the request up to 3 times with exponential backoff before routing to the error port.
bodyTemplatestringNoHandlebars template string for the request body. When omitted, the full input payload is serialized as JSON.

Inputs

PortTypeDescription
inputanyThe payload to forward. Serialized as JSON and sent as the request body unless bodyTemplate overrides it.

Outputs

PortTypeDescription
outputobjectEmits on a 2xx response. Contains the original input payload merged with a response envelope: { status, headers, body }.
errorobjectEmits on network failure, timeout, or a non-2xx HTTP status. Contains { code, message, attempt } for downstream error handling.

Example

json
{
  "nodeType": "webhook_sender",
  "config": {
    "url": "https://hooks.example.com/battle-results",
    "method": "POST",
    "authType": "bearer",
    "authSecret": "{{secrets.RESULTS_WEBHOOK_TOKEN}}",
    "timeoutMs": 8000,
    "retryOnFailure": true
  }
}