Receive Webhook
Type key: receive_webhook_node
Group: Triggers
Category: trigger
Tier: CORE
The Receive Webhook node exposes a unique HTTP endpoint that external services can call to trigger a workflow. Any service that can send HTTP requests — Stripe, GitHub, Shopify, custom apps, IoT devices — can start your workflow.
Important: Sample Payload (required)
In Voodflow, the webhook payload is dynamic: it depends entirely on what the sender posts. Because of that, Voodflow needs a Sample Payload to:
- populate the Available tags list in downstream nodes (Mail, Notification, etc.)
- let the editor “discover” fields so you can build templates without guessing paths
- make testing predictable (Data Viewer / inspector)
The Sample Payload is not used at runtime. It is only used for field discovery and UX.
What to put in Sample Payload
Paste a static JSON example that matches what you will send in production.
Example (matching this curl):
curl -i -X POST "https://yourapp.com/voodflow/webhook/YOUR-NODE-ID" \
-H "Content-Type: application/json" \
-d '{"event":"test","email":"admin@example.com","ts":"2026-03-30T14:30:00+00:00","message":"ciao","execution_id":2}'Use this Sample Payload in the node:
{
"event": "test",
"email": "admin@example.com",
"ts": "2026-03-30T14:30:00+00:00",
"message": "ciao",
"execution_id": 2
}Then downstream nodes can reference fields directly:
{{event}}{{email}}{{ts}}{{message}}{{execution_id}}
Handles
| Handle | Direction | Description |
|---|---|---|
| (none) | Input | Trigger nodes have no input |
output | Output | Passes the full HTTP request payload to the first downstream node |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
label | string | Receive Webhook | Display label on the canvas |
description | string | "" | Description of the expected payload |
sample_payload | JSON string | {} | Example payload for documentation and testing |
Endpoint URL
Once the workflow is active, Voodflow generates a unique webhook URL based on the trigger node ID:
POST https://yourapp.com/voodflow/webhook/{node-id}The URL is visible in the node's configuration panel in the editor.
Accepted Methods
POST— primary method (recommended)GET— supported for simple ping/callback scenarios
Request Handling
When the webhook is called, Voodflow captures the request and passes data downstream.
Output payload (recommended for tags)
The output of the Receive Webhook node is the parsed request body, so tags are simple (e.g. {{message}}).
Webhook envelope metadata
Request metadata is also available under the _webhook key:
{
"ref": "refs/heads/main",
"repository": {
"full_name": "acme/myapp"
},
"pusher": {
"name": "alice"
},
"_webhook": {
"method": "POST",
"headers": {
"content-type": ["application/json"],
"x-github-event": ["push"]
},
"query": {},
"ip": "192.168.1.1",
"timestamp": "2025-03-16T08:00:00+00:00",
"content": "{\"ref\":\"refs/heads/main\",...}"
}
}Downstream nodes can access:
- body fields:
{{repository.full_name}},{{pusher.name}}, etc. - webhook metadata:
{{_webhook.ip}},{{_webhook.method}},{{_webhook.content}}, etc.
HTTP Response
By default, Voodflow immediately returns HTTP 200 OK when the webhook is received and executes the workflow synchronously (or queues it). The response body is:
{
"success": true,
"message": "Workflow triggered successfully",
"execution_id": "..."
}To return a custom response to the webhook sender (e.g. for a chatbot or an API proxy), combine Receive Webhook with the HTTP Response node.
Example Use Cases
- Stripe payments: Receive
payment_intent.succeededevents and trigger fulfillment - GitHub CI/CD: On
pushtomain, deploy or run tests - Shopify orders: New order → create invoice → send confirmation
- Custom app integration: Trigger automation from a mobile app or IoT sensor
- Chatbot: Receive chat messages, process with AI, return a response via HTTP Response node
Testing the Endpoint
Use curl or a tool like Insomnia to test:
curl -X POST https://yourapp.com/voodflow/webhook/YOUR-NODE-ID \
-H "Content-Type: application/json" \
-d '{"event": "test", "data": {"key": "value"}}'