Webhook Trigger
Trigger workflows from external services via HTTP POST.
A webhook trigger generates a unique URL. When an external service sends a POST request to that URL, your workflow executes.
Setup
- Add a Webhook Trigger node to your canvas
- A unique webhook token is generated automatically
- Click the node to open settings, then copy the full webhook URL from the Parameters pane.
- Paste the URL into your external service's webhook settings
Configuration
| Field | Description |
|---|---|
| Trigger Label | Display name shown on the canvas |
| Route Key | Optional helper key for routing payloads through downstream conditions |
| Webhook URL | Generated URL to copy into the sending app |
| Sample Payload | Optional JSON example used for manual testing and previews |
The settings Input pane previews the current sample payload. Downstream nodes can use that sample while you build and test the workflow without sending a real webhook request.
Activating
The webhook only fires after you click Activate in the editor toolbar. Inactive workflows reject webhook deliveries.
Payload
Send a JSON body with Content-Type: application/json. The payload is stored on the execution record.
{
"token": "SOL",
"price": 150.23,
"alert": "price_above_threshold"
}Non-JSON content types are also accepted and stored as raw text.
The webhook trigger output includes the request data plus metadata. For object JSON bodies, fields are available directly:
{webhook.token}
{webhook.price}
{webhook.alert}
{webhook.triggeredAt}
{webhook.source}Arrays, primitive JSON values, and non-JSON bodies are wrapped under body, so use {webhook.body}.
For the JSON request above, the full trigger output is:
{
"token": "SOL",
"price": 150.23,
"alert": "price_above_threshold",
"triggeredAt": "2026-05-14T10:00:00.000Z",
"source": "webhook"
}For a non-object body such as [1, 2, 3] or "hello", the output is:
{
"body": [1, 2, 3],
"triggeredAt": "2026-05-14T10:00:00.000Z",
"source": "webhook"
}The base fields (triggeredAt, source) always win on key collision - a payload field named source will be shadowed by the trigger's own "webhook" value.
Testing and reruns
Use the trigger's Sample Payload while configuring downstream nodes. In the editor's executions panel, webhook reruns use this configured sample payload; they do not replay the original webhook delivery body.
Request limits
- Max body size: 100KB
- Content type:
application/json(parsed) or any other (stored as raw string) - Method: POST only
Replay protection
If the sender includes an X-Webhook-Delivery-Id or X-GitHub-Delivery header, Solaris AI Flow deduplicates requests with the same ID. Generic senders without a delivery ID are not replay-protected.
Plan limits
| Plan | Webhook workflows |
|---|---|
| Free | 1 active |
| Pro | Unlimited |
| Ultra | Unlimited |
Next steps
- Cron Trigger - schedule-based automation
- Webhook API Reference - technical endpoint details
