Reference · Tools
Webhook
Starts workflow on HTTP request
The Webhook node turns your workflow into an HTTP endpoint: when a request arrives at its URL, the workflow starts with the body, headers, query parameters and method available. It needs no credentials. A typical build is receiving callbacks from any service that has no dedicated trigger node.
- Node type
- Webhook trigger
- Parameters
- 11
- Outputs
- Output
- Credentials
- None required
Webhook
Start workflow from HTTP webhook
Overview
Starts a workflow when an external HTTP request hits the webhook URL. Supports GET, POST, PUT, PATCH, DELETE methods with configurable authentication and response modes.
Category: Core Nodes
Tool Name: core_webhook
Version: 1
Appearance: Icon: webhook | Color: #8b5cf6
Node Type
Trigger — webhook (receives incoming HTTP callbacks)
Input / Output
| Direction | Port(s) |
|---|---|
| Input | None (trigger node) |
| Output | Output |
Credentials
This tool does not require any credentials.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| HTTP Method | options | No | POST | The HTTP method to listen for. |
Options: GET, POST, PUT, PATCH, DELETE, * (All — accepts any method) | ||||
| Path | string | No | — | Custom webhook path suffix. Leave empty for auto-generated path. |
| Authentication | options | No | none | Authentication method for incoming requests. |
Options: none, basicAuth, headerAuth | ||||
| Username | string | No | — | Username for Basic Auth. (shown when Authentication is basicAuth) |
| Password | string | No | — | Password for Basic Auth. (shown when Authentication is basicAuth) |
| Header Name | string | No | x-webhook-token | Name of the header to check. (shown when Authentication is headerAuth) |
| Header Value | string | No | — | Expected value of the auth header. (shown when Authentication is headerAuth) |
| Response Mode | options | No | onReceived | When to send the HTTP response. |
Options: onReceived (Immediately — reply as soon as the request is accepted) | ||||
| Response Code | number | No | 200 | HTTP status code for the response. (shown when Response Mode is onReceived) |
| Response Data | options | No | firstEntryJson | What data to include in the response. |
Options: firstEntryJson (First Entry JSON — returns the first data entry as JSON), noData (No Response Body — returns an empty response body) | ||||
| Bot Detection | boolean | No | false | Block requests from known bots and crawlers (uses User-Agent detection). |
Output Data
Each incoming request produces one output item describing that request:
headers— the request headersparams— the route parametersquery— the query-string parametersbody— the parsed request bodymethod— the HTTP method the caller usedurl— the requested URL_trigger— alwayswebhook_timestamp— ISO 8601 timestamp of when the request arrived
Reference the payload downstream by expression, e.g. {{ $json.body.orderId }}.
Usage Examples
- trigger workflow from an API call
- listen for incoming webhooks
- start when an HTTP POST is received
- receive data from an external service
Example Configuration
Basic webhook with no authentication:
{
"id": "webhook-node",
"type": "core_webhook",
"position": [0, 0],
"parameters": {
"httpMethod": "POST",
"path": "my-webhook",
"authentication": "none",
"responseMode": "onReceived",
"botDetection": false,
"responseCode": 200,
"responseData": "firstEntryJson"
}
}
Webhook protected with basic authentication:
{
"id": "webhook-basic-auth",
"type": "core_webhook",
"position": [0, 0],
"parameters": {
"httpMethod": "POST",
"path": "secure-webhook",
"authentication": "basicAuth",
"basicAuthUser": "admin",
"basicAuthPassword": "secretpassword",
"responseMode": "onReceived",
"botDetection": true,
"responseCode": 200,
"responseData": "noData"
}
}
Webhook protected with header authentication:
{
"id": "webhook-header-auth",
"type": "core_webhook",
"position": [0, 0],
"parameters": {
"httpMethod": "PUT",
"path": "api/webhook",
"authentication": "headerAuth",
"headerAuthName": "X-API-Key",
"headerAuthValue": "your-api-key-here",
"responseMode": "onReceived",
"botDetection": false,
"responseCode": 201,
"responseData": "firstEntryJson"
}
}
GET webhook on an auto-generated path:
{
"id": "webhook-get",
"type": "core_webhook",
"position": [0, 0],
"parameters": {
"httpMethod": "GET",
"path": "",
"authentication": "none",
"responseMode": "onReceived",
"botDetection": false,
"responseCode": 200,
"responseData": "noData"
}
}
Webhook accepting any HTTP method:
{
"id": "webhook-any-method",
"type": "core_webhook",
"position": [0, 0],
"parameters": {
"httpMethod": "*",
"path": "flexible-endpoint",
"authentication": "none",
"responseMode": "onReceived",
"botDetection": true,
"responseCode": 200,
"responseData": "firstEntryJson"
}
}
Use this pattern for secure API endpoints that require authentication:
{
"id": "api-webhook",
"type": "core_webhook",
"position": [0, 0],
"parameters": {
"httpMethod": "POST",
"path": "api/v1/webhook",
"authentication": "headerAuth",
"headerAuthName": "Authorization",
"headerAuthValue": "Bearer your-token-here",
"responseMode": "onReceived",
"botDetection": true,
"responseCode": 200,
"responseData": "firstEntryJson"
}
}
Use this pattern for handling form submissions:
{
"id": "form-handler",
"type": "core_webhook",
"position": [0, 0],
"parameters": {
"httpMethod": "POST",
"path": "form-submit",
"authentication": "none",
"responseMode": "onReceived",
"botDetection": true,
"responseCode": 200,
"responseData": "noData"
}
}
Use this pattern for internal system integrations:
{
"id": "internal-webhook",
"type": "core_webhook",
"position": [0, 0],
"parameters": {
"httpMethod": "POST",
"path": "internal/webhook",
"authentication": "basicAuth",
"basicAuthUser": "system",
"basicAuthPassword": "internal-password",
"responseMode": "onReceived",
"botDetection": false,
"responseCode": 202,
"responseData": "noData"
}
}
Trigger Behavior
- Activation: When the workflow is activated, the node’s webhook URL starts accepting requests.
- Deactivation: The URL stops accepting requests when the workflow is deactivated.
- Payload: The incoming request body, headers and query parameters are output as workflow items.
- Response: The node replies to the caller according to its response settings.
Tips
Entry point that fires when an HTTP request hits the webhook URL. Outputs the request body, headers, query params, and method for downstream processing.
Important Notes
-
Authentication Conditional Logic: When using authentication, ensure you include the appropriate authentication parameters (
basicAuthUser/basicAuthPasswordfor basic auth, orheaderAuthName/headerAuthValuefor header auth). -
Response Configuration: The
responseCodeandresponseDataparameters are only available whenresponseModeis set to"onReceived". -
Path Handling: Leave
pathempty ("") to use an auto-generated webhook path, or specify a custom path suffix. -
Bot Detection: Enable
botDetectionto automatically block requests from known bots and crawlers based on User-Agent headers.
Frequently asked questions
Can I require authentication?
Yes — with basic auth supply `basicAuthUser` and `basicAuthPassword`; with header auth supply `headerAuthName` and `headerAuthValue`. Include the parameters matching the method you selected, or the check cannot be applied.
What does the workflow receive?
The request body, headers, query parameters and HTTP method, so you can branch on any part of the incoming request.
When should I use this over a service-specific trigger?
When no dedicated trigger exists for the service. A dedicated trigger usually registers the webhook and verifies signatures for you, which this node leaves to you.
Does it need credentials?
No — any authentication is configured on the node itself.
Build with the Webhook node
Drop it into a workflow, wire it to an agent, or call it on a schedule.
Open BusyBotLast updated . Spotted something wrong? Tell us.