A webhook is the simplest way to connect anything to anything: one service makes an HTTP request to a URL, and another service reacts. With NoriaFlow you get a unique webhook URL for each workflow, so any app that can send a webhook can kick off a no-code automation, no polling, no server, no code.
How it works
- Add a Webhook trigger. NoriaFlow generates a unique URL for that workflow.
- Point a service at it. Paste the URL into anything that sends outgoing webhooks: a form builder, a payment provider, a monitoring tool, a CI pipeline, or your own backend.
- Use the payload. Whatever JSON the service POSTs is available to every downstream node as variables.
- Add actions. Call an API, send an email, post to Discord, branch on a condition. Whatever the event should do.
- Activate. From now on, every request to the URL runs your workflow.
Reading the incoming data
The body of the request is exposed through template variables. If a form tool POSTs { "email": "a@b.com", "plan": "pro" }, you can reference it anywhere:
{{__trigger__.body.email}}
{{__trigger__.body.plan}}
{{__trigger__.headers.x-signature}}The expression field autocompletes the available paths and flags typos before you ship. See triggers and actions for the full variable model.
Examples
- New signup → welcome flow. A form submission hits your webhook → send a welcome email → post
New signup: {{__trigger__.body.email}}to a Discord channel. - Payment received → fulfilment. A payment provider's webhook → an HTTP request to your fulfilment API → a confirmation email.
- Monitoring alert → on-call ping. An uptime monitor POSTs an incident → a Condition checks the severity → a Discord or email alert goes out only for criticals.
- App event → data sync. Your own backend posts an event → transform it → push it to another API with the HTTP request action.
Securing your webhook
- Keep the URL private. Each workflow's URL is unique. Anyone who has it can trigger the workflow, so share it only with the service that needs it.
- Verify a shared secret. Set a Secret Token on the Webhook trigger. Senders must put it in the
X-Webhook-Secretheader; any request without it is rejected before the workflow runs, so a stranger who stumbles onto the URL cannot trigger it. - Validate the shape. Add a condition that checks the fields you expect exist before doing anything irreversible.
Answer the caller: use a workflow as an API
By default a webhook answers 202 Accepted at once and the workflow runs in the background. Set the trigger's Response to Wait for the workflow and the request stays open until the workflow answers, which turns any workflow into an API endpoint for your site, your app or another tool.
- On the Webhook trigger, choose Response: Wait for the workflow.
- Add a Respond to Webhook step where the answer is ready. Pick the status code and the format (JSON, text or HTML) and write the body, for example
{ "answer": "{{text}}" }. Values are inserted safely, so quotes or line breaks in an answer never break the JSON. - Call the URL. The response arrives as soon as that step runs, with an
X-Execution-Idheader; the rest of the workflow can keep running after it.
Without a Respond to Webhook step the caller receives the run outcome (200 success, 500 failed). If the run takes longer than the wait (25 seconds by default, up to 60), the caller gets 202 with the execution id and the run carries on. The AI Answer API template wires a question, an AI Agent and the response for you.
Next steps
- Pair webhooks with scheduled automation for jobs that run both on demand and on a timer.
- Push the result to Discord or any REST API.
- Browse templates for ready-made webhook flows, or create a free account and build your own in minutes.
Setup checks and next steps
- Check the draft before activating it; saving edits and publishing them are separate actions.
- Resolve missing parameters and connection errors in the workflow that reports them.
See the extension setup guide for adding and reusing services, the node reference for parameters, and testing and debugging for execution diagnostics.