Nodaro Docs
DocumentationNode ReferenceModelsAI Agents (MCP)DevelopersSelf-hostingResearch
Publish

Webhook Output

Send workflow results to any URL as an HTTP POST with a JSON body, with named values and an optional stored credential whose secret stays on the server.

The Webhook Output node sends the results of your workflow to a URL as an HTTP POST request with a JSON body. Use it to deliver a finished video, image, audio file or text to your own backend, a content management system or an automation service. You choose the names of the values it sends, and it can send a stored key with every request without ever showing the key in the workflow.

When to use it

  • Send a generated video's URL to a content management system when the video is ready.
  • Start an automation in another service when a workflow finishes.
  • Deliver results to your own API for further processing.
  • Tell another system that a scheduled or triggered run has completed.

Quick start

Add the node

Press Tab on the canvas and choose Publish › Export › Webhook Output.

Type the address

In the settings panel, type the Webhook URL, for example https://example.com/webhook. Use an https:// address.

Name the values to send

Under Input Parameters, click Add for each value, type its name, such as video_url, and choose its type. Each parameter adds an input with that name to the node.

Connect and run

Connect each input to the node that produces its value, and click Run. The panel shows the HTTP status code of the delivery under Last run.

video_urlcaptionGenerate VideoPromptWrites a captionWebhook OutputPOST to your API
A video URL and a caption are sent to your API as two named values in one JSON body.

Inputs

The inputs depend on the parameters you define.

  • No parameters. The node has one input. Everything connected to it is sent as a single payload.
  • One or more parameters. The node has one input per parameter, named after it. Each value is sent under its parameter's name.

Settings

SettingWhat it does
Webhook URLThe address that receives the POST request.
CredentialA stored key sent as a header with every request. The default is None — send without a credential. See Send with a credential.
Input ParametersThe named values to send. Each has a name and a type: Text, Image URL, Video URL or Audio URL.
Last runThe HTTP status code of the last delivery, or Not sent yet.

What the request looks like

The node sends a POST request with a JSON body. With two parameters named video_url and caption, the body looks like this:

{
  "video_url": "https://cdn.example.com/results/clip.mp4",
  "caption": "Our new product, in 15 seconds."
}

Media values are the URLs of the files, which the receiving service can download.

Send with a credential

Many services accept a delivery only with a key in a header, such as Authorization: Bearer .... Save the key once as a credential, then choose it in the node.

Save the key

Open Integrations › Credentials and save a new credential with a header name, for example Authorization, and its secret value. The panel's Manage credentials link opens the same page.

Choose who can use it

Integrations asks who can use the key. Choose Any address or Only one address. The difference is explained below.

Choose it in the node

In the node's Credential menu, choose the saved credential. Every delivery from this node now carries the header.

The node stores only a reference to the credential. The secret is decrypted on the server when the request is sent and is never shown again. It never enters the workflow, an export, a template or a preset. To rotate a key, save a new value over the old one.

Any address or only one address

ChoiceWhere it worksUse it when
Any addressOnly on runs you start yourself: a run from the editor, and a schedule you set up in the editor.You are still building the workflow.
Only one addressOn every run, including published apps, shared workflows and triggered runs, but only when the node sends to the locked address.The workflow runs without you, or other people run it.

A credential that is not locked is refused on a published app, a shared workflow, a collaborator's run, a run started with an API token, a webhook trigger and a schedule created through the API. The node then fails with a clear message instead of sending without the key.

A locked credential is tied to one https:// address. By default, the lock is that exact address. Turn on Also allow paths under this address to use one key for several addresses of the same service. When you choose a credential locked to an exact address, the Webhook URL follows it and cannot be edited.

Locking is one-way. You can change the locked address later, but you cannot remove it.

Publishing and sharing need locked credentials

Before you publish a workflow as an app or share it for others to run, every credential it sends with must be locked to an address the node sends to, including credentials in sub-workflows. The publish and share dialogs offer to lock a credential to the node's current URL in one click.

What a lock enforces

On every request, and on every redirect:

  • The URL must match the locked address. Otherwise the request is refused before it leaves.
  • A redirect to any other address is not followed. The request fails instead of continuing without the key.
  • A credential that is not locked is removed from a redirect to another site.
  • A credential is never sent over plain http://.

Replies are hidden when a key is attached

With a credential attached, the reply body is not returned, stored or shown, only the status code. Some services repeat the request headers in their reply, and the key must not come back to the workflow.

A credential that was deleted, or that belongs to another account, fails the node. The node never sends a request without its key.

Exported workflows

A workflow export or a template never contains a credential. When someone imports the workflow, the Webhook Output node arrives without a credential, and the importer chooses their own. Credentials are managed in the Nodaro app only.

Tips

  • Test the address first. Point the node at a request-inspection service while you build, and check the body before you connect your real endpoint.
  • Match the receiver's names. Name the parameters exactly as the receiving service expects them.
  • Start runs from outside. Pair Webhook Output with a Webhook Trigger or a Schedule Trigger for a workflow that runs without anyone in the editor.
  • Keep a copy. Connect the same result to Save to Storage as well.

Troubleshooting

The node failed after the request. The receiving address answered with an error. The status code appears under Last run, and the error appears in the run history.

The request is refused before it is sent. Check the address. A URL that points to a private or local network address is refused. When a credential is attached, the URL must also match the credential's locked address.

The panel warns that the URL is not the locked address. The credential is locked to a different address, for example after an import. Click Use the locked address, or choose another credential.

The node works when you run it, but fails in a published app or on a triggered run. The credential is not locked to an address. Lock it to the node's address in Integrations, then run again.

Frequently asked questions

Last updated on

On this page