# Nodaro with Zapier

> Start a Nodaro workflow from a Zap with Webhooks by Zapier, and catch the finished image or video in a second Zap. No Nodaro API key is needed.

Source: https://nodaro.ai/docs/guides/zapier-integration

**Zapier** can start any Nodaro workflow from a Zap and receive the finished image, video or audio in a second Zap. Nodaro does the generation. Zapier decides when it runs and where the result goes next. Neither direction needs a Nodaro API key, because the workflow's own webhook address starts the run.

## Before you start

The steps on this page use **Webhooks by Zapier**. Zapier lists it as a premium app, available on paid plans and during a free trial. Check your Zapier plan before you build.

## How the two connect

1. In the first Zap, a **Webhooks by Zapier** **POST** action sends a JSON body, for example a prompt, to the webhook address of a Nodaro workflow.
2. The Nodaro workflow starts with a [Webhook Trigger](https://nodaro.ai/docs/nodes/automate/webhook-trigger), runs its nodes, and ends with a [Webhook Output](https://nodaro.ai/docs/nodes/publish/webhook-output).
3. The Webhook Output posts the result to a **Catch Hook** trigger, which starts a second Zap with the result.

Workflow: The Nodaro side: a Zap starts the Webhook Trigger, and the Webhook Output sends the image's address to a Zapier Catch Hook.

- Webhook Trigger → Generate Image (prompt)
- Generate Image → Webhook Output (image_url)

## Step 1: Catch the result in Zapier

Create the receiving Zap first, because the Nodaro workflow needs its address.

1. Create a Zap with the trigger **Webhooks by Zapier › Catch Hook**.
2. Click **Continue**. In the **Test** tab, Zapier shows your webhook URL. Click **Copy**.
3. Leave the test open. You send the first result to it in step 2.

## Step 2: Build the Nodaro workflow

1. Add a **Webhook Trigger** node. Under **Output Parameters**, add a parameter named `prompt` of type **Text**.
2. Connect the `prompt` output to the prompt input of a [Generate Image](https://nodaro.ai/docs/nodes/image/generate-image) node, or any other node that makes a result.
3. Add a **Webhook Output** node. Paste the Zapier webhook URL into **Webhook URL**. Under **Input Parameters**, add `image_url` of type **Image URL**, and connect the image to it.
4. Save the workflow and click **Run** once. The result arrives at the Catch Hook, and in Zapier you click **Test trigger** to see it.
5. Select the Webhook Trigger and copy its address under **Webhook URL**.

The address has the form `https://app.nodaro.ai/v1/webhooks/<token>`. The token works like a password: anyone who has the address can start the workflow.

Add the actions that use the result to the second Zap, and publish it.

## Step 3: Start the run from Zapier

1. In the Zap that should start the run, add the action **Webhooks by Zapier › POST**.
2. Paste the Nodaro address into **URL** and set **Payload Type** to **json**.
3. Under **Data**, add the key `prompt` on the left, and map its value from an earlier step on the right.
4. Test the step, then publish the Zap.

Zapier sends this body to Nodaro:

```json
{ "prompt": "A red kite over a green hill, morning light" }
```

## What comes back

Nodaro answers the POST at once, before anything is generated. The answer is `202` with the id of the run:

```json
{ "executionId": "3f9e2b1a-7c6d-4e5f-8a9b-0c1d2e3f4a5b", "status": "pending" }
```

When the run finishes, the Webhook Output posts the result to the Catch Hook. The body has one key per Input Parameter, and media values are addresses of files on Nodaro:

```json
{ "image_url": "https://cdn.nodaro.ai/images/2538b658-d2e1-42ee-890a-72ce06089feb.png" }
```

The second Zap maps `image_url` like any other field.

## Why not poll with an API token

Zapier keeps the headers of a webhook step in plain text, where anyone with access to the Zap can read them. A personal API token in a header is exposed the same way. The Webhook Output method needs no token, so prefer it in Zapier. To poll from your own code instead, see [Run a workflow with new input values](https://nodaro.ai/docs/developers/api/workflows#run-a-workflow-with-new-input-values).

## Limits to plan for

| Limit | What happens | What to do |
| --- | --- | --- |
| One run at a time per workflow | A request during a run answers `409`, with the `executionId` of the run in progress. | Send the next request after the previous result arrives, or copy the workflow. |
| 10 requests per minute per address | More answer `429`. | Space the requests out. |
| One delivery attempt | Webhook Output waits 30 seconds for an answer and does not retry. A failed delivery fails the node. | Keep the receiving Zap published. |
| Empty requests | Zapier ignores a request with an empty body. | Give the Webhook Output at least one Input Parameter. |

## What it costs

The Webhook Trigger and the Webhook Output cost nothing. You pay the credits of the nodes between them, at the same prices as in the editor. In the example above, each run costs the price of one Nano Banana 2 image, 22 credits. Credits reserved for a node that fails come back automatically. Zapier counts its own tasks on its side.

The same pattern works in [n8n](https://nodaro.ai/docs/guides/n8n-integration) and [Make](https://nodaro.ai/docs/guides/make-integration). [Automations](https://nodaro.ai/docs/guides/automations) covers schedules and the other ways to start a workflow.

## Frequently asked questions

### Does Nodaro work with a free Zapier plan?

Not with the webhook steps. Zapier lists Webhooks by Zapier as a premium app, available on paid plans and during a free trial, and a Zap with more than two steps needs a paid plan too.

### Do I need a Nodaro API key?

No. Webhooks by Zapier starts the run through the Nodaro workflow's webhook address, and the Webhook Output node sends the result to a Zapier Catch Hook. The webhook address is the only credential.

### Why does Nodaro answer 409?

The Nodaro workflow already has a run in progress, and a workflow runs one request at a time. Send the next request after the previous result arrives, or make a copy of the workflow for parallel runs.

### What does it cost?

The Webhook Trigger and the Webhook Output are free. You pay the credits of the nodes between them, at the same prices as in the editor. Zapier counts its own tasks on its side.
