Skip to main content

Webhook Trigger

The Webhook Trigger fires the workflow when an HTTP request is received at a registered URL. It supports multiple verification strategies to ensure requests come from trusted sources.

Properties

PropertyRequiredDescription
Use VerificationNoEnables request verification. Off by default
Verification TypeIf verification enabledThe method used to verify incoming requests
Use ChallengeNoEnables a challenge-response handshake (e.g. for Slack URL verification)

Webhook URL

The webhook URL is registered when the workflow is published. You can find the registered URL in the Webhook Trigger node's properties when viewing the published workflow.

Verification types

IP Whitelist

Only allows requests from specified IP addresses or CIDR ranges.

FieldDescription
Allow ListOne IP address or CIDR range per line (e.g. 192.168.1.0/24)
Trust X-Forwarded-ForWhen enabled, the IP is read from the X-Forwarded-For header instead of the connection IP. Enable this when your webhook sits behind a reverse proxy

HMAC Verification

Validates a cryptographic signature sent with the request.

FieldDescription
AlgorithmSHA256, SHA512, or SHA1
Header NameThe request header containing the signature
FormatHow the signature is encoded: Prefix, Base64, or Hex
PrefixOptional prefix stripped before verifying (e.g. sha256=)
Secret VariableThe name of a Secret holding the signing key

API Key Verification

Checks for a static API key in the request.

FieldDescription
LocationWhere the key appears: Query String, Header, or Basic Auth
Query Param / Header NameThe parameter or header name to check
Secret VariableThe name of a Secret holding the expected key value

JWT Verification

Validates a JWT bearer token in the Authorization header.

FieldDescription
Signing ModeJWKS URI (asymmetric) or Symmetric Secret
JWKS URIURL of the JSON Web Key Set (for asymmetric verification)
Validate IssuerToggle; if on, checks the iss claim
IssuerExpected issuer value
Validate AudienceToggle; if on, checks the aud claim
AudienceExpected audience value
Required ClaimsAdditional claims that must be present
Secret VariableFor symmetric mode: the Secret holding the signing key

Custom Script

A JavaScript function that returns a verification result. Full control over the verification logic.

// Available globals: request, body, env, crypto
const signature = request.headers['x-signature'];
const expected = await crypto.hmac('sha256', env.get('WEBHOOK_SECRET'), body);
return { verified: signature === expected };

The function must return an object with a verified boolean and an optional reason string shown in logs on failure.

Challenge-response

Some webhook providers (e.g. Slack) send a one-time challenge request to verify the URL before sending real events. Enable Use Challenge to handle this automatically.

FieldDescription
Challenge TypeCurrently supports Plain
Challenge MethodHTTP method of the challenge request: GET, POST, or PUT
Token LocationWhere the challenge token appears: Query String, Header, or Body
Parameter PathThe key name or JSON path of the token
Challenge SecretOptional secret used to sign the challenge response

Trigger output

The webhook trigger passes the full incoming request to downstream nodes. Access the request body and headers in expressions as $TriggerData.