# Nodaro と Zapier の連携

> Webhooks by Zapier を使って Zap から Nodaro のワークフローを開始し、完成した画像や動画を 2 つ目の Zap で受け取ります。Nodaro の API キーは不要です。

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

**Zapier** は、Zap から Nodaro のどのワークフローでも開始でき、完成した画像、動画、オーディオを 2 つ目の Zap で受け取れます。生成は Nodaro が行います。いつ実行し、結果を次にどこへ送るかは、Zapier が決めます。どちらの方向にも Nodaro の API キーは要りません。ワークフロー自身の Webhook のアドレスが、実行を開始するからです。

## 始める前に
このページの手順では、**Webhooks by Zapier** を使います。Zapier はこれをプレミアムアプリとしており、有料プランと無料トライアル中にだけ使えます。構築する前に、Zapier のプランを確認してください。

## 連携の仕組み
1. 1 つ目の Zap で、**Webhooks by Zapier** の **POST** アクションが、プロンプトなどを含む JSON 本文を、Nodaro のワークフローの Webhook のアドレスに送ります。
2. Nodaro のワークフローは [Webhook トリガー](https://nodaro.ai/docs/nodes/automate/webhook-trigger)で始まり、ノードを実行して、[Webhook 出力](https://nodaro.ai/docs/nodes/publish/webhook-output)で終わります。
3. **Webhook 出力**が結果を **Catch Hook**（フックを受け取る）トリガーに POST し、その結果で 2 つ目の Zap が始まります。

Workflow: Nodaro 側の構成：Zap が Webhook トリガーを開始し、Webhook 出力が画像のアドレスを Zapier の Catch Hook に送ります。

- Webhook トリガー → 画像生成 (prompt)
- 画像生成 → Webhook 出力 (image_url)

## ステップ 1：Zapier で結果を受け取る
Nodaro のワークフローには受け取る側のアドレスが必要なので、受け取る側の Zap を先に作ります。

1. トリガーが **Webhooks by Zapier › Catch Hook** の Zap を作成します。
2. **Continue**（続行）をクリックします。**Test**（テスト）タブに、Webhook の URL が表示されます。**Copy**（コピー）をクリックします。
3. テストは開いたままにします。ステップ 2 で、最初の結果をそこに送ります。

## ステップ 2：Nodaro のワークフローを構築する
1. **Webhook トリガー**ノードを追加します。**出力パラメーター**で、`prompt` という名前で、タイプが**テキスト**のパラメーターを追加します。
2. `prompt` 出力を、[画像生成](https://nodaro.ai/docs/nodes/image/generate-image)ノード、または結果を作るほかのノードのプロンプト入力に接続します。
3. **Webhook 出力**ノードを追加します。Zapier の Webhook の URL を **Webhook URL** に貼り付けます。**入力パラメーター**で、タイプが**画像 URL** の `image_url` を追加し、画像をそこに接続します。
4. ワークフローを保存し、**実行**を 1 回クリックします。結果が Catch Hook に届くので、Zapier で **Test trigger**（トリガーをテスト）をクリックして確認します。
5. Webhook トリガーを選択し、**Webhook URL** の下にあるアドレスをコピーします。

アドレスは `https://app.nodaro.ai/v1/webhooks/<token>` という形式です。トークンはパスワードと同じように働きます。アドレスを知っている人は誰でも、ワークフローを開始できます。

結果を使うアクションを 2 つ目の Zap に追加し、その Zap を公開します。

## ステップ 3：Zapier から実行を開始する
1. 実行を開始する Zap に、アクション **Webhooks by Zapier › POST** を追加します。
2. Nodaro のアドレスを **URL** に貼り付け、**Payload Type**（ペイロードの種類）を **json** にします。
3. **Data**（データ）で、左側にキー `prompt` を追加し、右側に前のステップから値をマッピングします。
4. ステップをテストしてから、Zap を公開します。

Zapier は、次の本文を Nodaro に送ります。

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

## 返ってくるもの
Nodaro は、何かを生成する前に、すぐに POST に応答します。応答は `202` で、実行の ID が含まれます。

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

実行が終わると、Webhook 出力が結果を Catch Hook に POST します。本文には入力パラメーターごとに 1 つのキーがあり、メディアの値は Nodaro 上のファイルのアドレスです。

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

2 つ目の Zap では、`image_url` をほかのフィールドと同じようにマッピングします。

## API トークンでポーリングしない理由
Zapier は、Webhook のステップのヘッダーをプレーンテキストで保存するため、Zap にアクセスできる人なら誰でも読めます。ヘッダーに入れた個人用 API トークンも、同じように見えてしまいます。Webhook 出力の方法ならトークンが要らないので、Zapier ではこちらを使ってください。代わりに自分のコードからポーリングするには、[新しい入力値でワークフローを実行する](https://nodaro.ai/docs/developers/api/workflows#run-a-workflow-with-new-input-values)を参照してください。

## 事前に考慮する制限
| 制限 | 起こること | 対処 |
| --- | --- | --- |
| 1 つのワークフローで一度に 1 つの実行 | 実行中に届いたリクエストには `409` が返され、進行中の実行の `executionId` も含まれます。 | 前の結果が届いてから次のリクエストを送るか、ワークフローをコピーします。 |
| 1 つのアドレスにつき 1 分間に 10 リクエスト | それを超えるリクエストには `429` が返されます。 | リクエストの間隔を空けます。 |
| 送信の試行は 1 回だけ | Webhook 出力は応答を 30 秒間待ち、再試行しません。送信に失敗すると、ノードが失敗します。 | 受け取る側の Zap を公開したままにします。 |
| 空のリクエスト | Zapier は、本文が空のリクエストを無視します。 | Webhook 出力に、入力パラメーターを 1 つ以上設定します。 |

## 料金
Webhook トリガーと Webhook 出力は無料です。そのあいだにあるノードのクレジットを、エディターと同じ料金で支払います。上の例では、1 回の実行で Nano Banana 2 の画像 1 枚分の料金、22 クレジットがかかります。失敗したノードのために確保されたクレジットは、自動で返還されます。Zapier のタスクは、Zapier 側で別に数えられます。

同じ方法は、[n8n](https://nodaro.ai/docs/guides/n8n-integration) と [Make](https://nodaro.ai/docs/guides/make-integration) でも使えます。スケジュールや、ワークフローを開始するそのほかの方法については、[自動化](https://nodaro.ai/docs/guides/automations)で説明しています。

## よくある質問

### Zapier の無料プランで Nodaro を使えますか？

Webhook のステップは使えません。Zapier は Webhooks by Zapier をプレミアムアプリとしており、有料プランと無料トライアル中にだけ使えます。また、ステップが 3 つ以上ある Zap にも有料プランが必要です。

### Nodaro の API キーは必要ですか？

いいえ。Webhooks by Zapier が Nodaro のワークフローの Webhook のアドレスを通じて実行を開始し、Webhook 出力ノードが結果を Zapier の Catch Hook に送ります。認証情報は、Webhook のアドレスだけです。

### Nodaro が 409 を返すのはなぜですか？

Nodaro のワークフローで、すでに実行が進行中です。ワークフローは、一度に 1 つのリクエストしか実行しません。前の結果が届いてから次のリクエストを送るか、並行して実行するためにワークフローのコピーを作ってください。

### 料金はいくらかかりますか？

Webhook トリガーと Webhook 出力は無料です。そのあいだにあるノードのクレジットを、エディターと同じ料金で支払います。Zapier のタスクは、Zapier 側で別に数えられます。
