Skip to content

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):

bash
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:

json
{
  "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

HandleDirectionDescription
(none)InputTrigger nodes have no input
outputOutputPasses the full HTTP request payload to the first downstream node

Configuration

FieldTypeDefaultDescription
labelstringReceive WebhookDisplay label on the canvas
descriptionstring""Description of the expected payload
sample_payloadJSON 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.

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:

json
{
  "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:

json
{
    "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.succeeded events and trigger fulfillment
  • GitHub CI/CD: On push to main, 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:

bash
curl -X POST https://yourapp.com/voodflow/webhook/YOUR-NODE-ID \
  -H "Content-Type: application/json" \
  -d '{"event": "test", "data": {"key": "value"}}'

Proprietary software — source-available. All rights reserved.