Webhook Trigger
Start a workflow from another app, a form or your own code with an HTTP POST, and pass values such as a prompt or an image URL into the run.
The Webhook Trigger node starts a workflow when another system sends an HTTP POST request to the workflow's own webhook address. Use it to run a workflow from a content management system, a form, an automation tool or your own code. The request can pass values into the run, such as a prompt or an image URL. The trigger itself is free.
When to use it
- Generate a video when your content management system publishes a new article.
- Process an image that another app sends, such as a product photo.
- Start a workflow from any automation tool or script that can send an HTTP POST request.
- Build a content workflow that your own code controls.
Quick start
Add the node
Press Tab on the canvas and choose Automate › Triggers › Webhook Trigger.
Define the values you expect
In the settings panel, under Output Parameters, click Add for each value. Give each parameter a name that matches a key of the JSON body, and a type: Text, Image URL, Video URL or Audio URL. Each parameter becomes an output of the node.
Build the branch
Connect the outputs to the nodes that use the values, and build the rest of the workflow after them.
Save the workflow
Saving creates the webhook address. Read it, with its token, from GET /v1/workflows/<id>/triggers.
Send a request
POST a JSON body to the address. The workflow runs with the values from the body.
Output parameters
| Field | What it does |
|---|---|
| Name | The key to read from the JSON body. The name prompt reads the value of "prompt". |
| Type | What the value is: Text, Image URL, Video URL or Audio URL. The type tells Nodaro how to pass the value to the nodes after the trigger. |
Each parameter becomes an output of the node, named after the parameter, and carries the value of its key as text. A key that is missing from the body leaves its output empty.
With no parameters, the node has one output, payload, that carries the whole body.
Send a request
POST a JSON body to the webhook address. The keys of the body are the names of your parameters.
curl -X POST "https://app.nodaro.ai/v1/webhooks/<token>" \
-H "Content-Type: application/json" \
-d '{"prompt": "A lighthouse at dawn, slow push-in", "imageUrl": "https://example.com/lighthouse.jpg"}'On a self-hosted install, use the address of your own install instead of https://app.nodaro.ai.
The answer tells you what happened:
| Status | Meaning |
|---|---|
202 | The run started. The body has the executionId of the run. |
404 | No webhook answers at this address, for example because the node was deleted. |
403 | The trigger was paused through the API. |
409 | The workflow already has a run in progress. The body has the executionId of that run. |
429 | More than 10 requests arrived in one minute for this token. |
The address and its token
- Saving creates the address. When you add the node and save the workflow, Nodaro creates a random 64-character token and the address
POST /v1/webhooks/<token>. - The address stays the same. The token is created once and kept across every later save, so the address you give to another system keeps working.
- Deleting the node retires the address. Delete the Webhook Trigger and save, and the address stops working.
- Read the address from the API.
GET /v1/workflows/<id>/triggersreturns the current address and token of each trigger in the workflow.
The address is public, and the token is its only protection. Anyone who has the address can start the workflow, and every run is charged to the owner of the workflow. Keep the address secret.
Limits
- 10 requests per minute for each token. More requests get status
429. - One run at a time. While the workflow has a run in progress, a new request gets status
409.
What a webhook run executes
A trigger that is connected to nodes runs only its branch: the nodes after the trigger, and every node that they need as input. A trigger that is connected to nothing runs the whole workflow. One workflow can therefore hold several triggers, such as a Webhook Trigger and a Schedule Trigger, each starting its own branch.
A node counts as connected through a drawn connection, by being inside a Group that the trigger feeds, or through a field mapping. A manual run from the editor, a run from the API and a run of a published app are never limited to a trigger's branch.
Credits
The Webhook Trigger is free. Each run pays for the nodes it runs, charged to the owner of the workflow.
Tips
- Match the names. Use the exact key names that the other system sends, including upper and lower case.
- Test with one request. Send a single request with
curlbefore you connect a production system. - Send the result back. End the workflow with Webhook Output to post the result to your own server.
- Run on a schedule too. Add a Schedule Trigger to run the same workflow on a timer.
Read Webhooks for the full API.
Frequently asked questions
Related
Schedule Trigger
Webhook Output
Webhooks
Running workflows
Automations
Last updated on
Schedule Trigger
Run a workflow automatically every few minutes, hours, days, weeks or months, or on a cron expression, in your timezone. Turn it on with one switch.
Telegram Trigger
Start a workflow each time your Telegram bot receives a message, and pass the text, photo, video or audio of the message to the nodes after it.