> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sambanova.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Zapier

[Zapier](https://zapier.com/) は、数千のアプリを「Zap」と呼ばれる自動化ワークフローに接続できるノーコードの自動化プラットフォームです。Webhooks by Zapier のアクションを使えば、どの Zap からでも SambaNova のモデルを呼び出せます。このアクションは SambaNova のチャット補完エンドポイントにリクエストを送信し、モデルの応答を後続のすべてのステップで利用できるようにします。

> [!NOTE]
>
> AI by Zapier や Zapier Chatbots といった Zapier 組み込みの AI ステップには、カスタムエンドポイントを指定するフィールドがありません。本ページで解説する Webhooks by Zapier を使用してください。これらの AI ステップを使わずに、どの Zap からでも SambaNova に接続できます。

## 前提条件

作業を始める前に、以下の環境を準備してください。

### SambaNova エンドポイント

SambaNova には次のいずれかの方法で接続できます。

* SambaCloud (無料アカウント)
  * Base URL: `https://api.sambanova.ai/v1/chat/completions`
  * API キー: [ダッシュボードで確認できます](https://cloud.sambanova.ai/apis?utm_source=zapier\&utm_medium=external\&utm_campaign=cloud_signup)
* SambaStack (専有デプロイメント)
  * Base URL と API キーは、SambaNova の担当者より提供されます。

### Zapier アカウント

Professional プラン以上の [Zapier アカウント](https://zapier.com/) が必要です。本ページのすべての手順は Webhooks by Zapier を使用しますが、この機能は Free プランでは利用できません。

## チャット補完の生成

**1. トリガーの追加**

Zap を作成し、ワークフローに合ったトリガーを選択します。以下の例では **Schedule by Zapier** の **Every Day** イベントを使用しています。このトリガーはアカウント接続が不要なため、テスト中の利用に便利です。

**2. Webhooks アクションの追加**

アクションステップを追加し、**Webhooks by Zapier** を選択して **Custom Request** イベントを選びます。Custom Request を使うと、チャット補完エンドポイントが必要とする JSON ボディをそのまま送信できます。

> [!NOTE]
>
> このとき Zapier は **API by Zapier** の利用を提案してきます。API by Zapier は、認証情報をヘッダーではなく再利用可能な App Connection に保存する機能です。キーをステップ内に保持したくない場合の代替手段としては妥当ですが、本ページの以降の手順は Custom Request を前提としています。**Cancel** を選択して先へ進んでください。

**3. リクエストの設定**

以下のフィールドを設定します。

| フィールド | 値 |
| :- | :- |
| Method | `POST` |
| URL | `https://api.sambanova.ai/v1/chat/completions` |
| Data | 下記の JSON ボディ |
| Unflatten | `No` |
| Return Raw Response | `No` (デフォルトのまま) |
| Headers | `Authorization` に値 `Bearer YOUR_SAMBANOVA_API_KEY`、`Content-Type` に値 `application/json` |

**Data** の値には以下を使用します。メッセージの content は、任意のテキストまたは前段のステップのフィールドに置き換えてください。

```json theme={}
{
  "model": "MiniMax-M3",
  "max_tokens": 2000,
  "messages": [
    { "role": "user", "content": "What can you do?" }
  ]
}
```

> [!WARNING]
>
> **Unflatten** は必ず `No` に設定してください。デフォルトは `Yes` で、この場合ネストされた構造が書き換えられて `messages` 配列が壊れるため、リクエストはモデルに届く前に HTTP 400 で失敗します。

> [!NOTE]
>
> **Return Raw Response** はデフォルトの `No` のままにしてください。このデフォルト設定により、Zapier は応答を **Choices Message Content** などの名前付きフィールドに分解します。`Yes` に設定すると応答が未解析の 1 つの文字列として返され、本ガイドの後続ステップでマッピングするフィールドが表示されなくなります。

![Unflatten を No に設定し、Authorization と Content-Type のヘッダーを指定した Zapier の Custom Request 設定画面。](https://mintcdn.com/sambanova-systems/CchL6LllN5ADVV9o/images/docs/integrations/zapier/zapier-webhook-configuration.png?fit=max\&auto=format\&n=CchL6LllN5ADVV9o\&q=85\&s=c1af09351d550ff0abca6bceff3d40ab)

**4. ステップのテスト**

**Test step** を選択します。Zapier がリクエストを送信し、レスポンスを Zap の後続ステップで利用できるフィールドにマッピングします。モデルの応答は **Choices Message Content** に表示されます。

![MiniMax-M3 が返した応答を含む Choices Message Content フィールドが表示された Zapier の Data out パネル。](https://mintcdn.com/sambanova-systems/CchL6LllN5ADVV9o/images/docs/integrations/zapier/zapier-webhook-response.png?fit=max\&auto=format\&n=CchL6LllN5ADVV9o\&q=85\&s=f8ba22aac514465a7be7ded279d2924a)

**5. 後続ステップでの応答の利用**

後続の任意のステップに **Choices Message Content** フィールドを挿入すると、モデルの回答を Slack、Gmail、Google Sheets などのアプリに渡せます。

> [!NOTE]
>
> `MiniMax-M3` のような Reasoning モデルは、内部の reasoning を含む **Choices Message Reasoning** フィールドも返します。回答そのものには **Choices Message Content** をマッピングしてください。

![Custom Request の出力一覧を表示した Zapier のフィールドピッカー。応答を含む Choices Message Content と、それとは別に Choices Message Reasoning が表示されている。](https://mintcdn.com/sambanova-systems/CchL6LllN5ADVV9o/images/docs/integrations/zapier/zapier-field-mapping.png?fit=max\&auto=format\&n=CchL6LllN5ADVV9o\&q=85\&s=f43152b4bf9f6dc9c5c015722d5e398f)

## 使用例: サポートチケットのトリアージ

上記のチャット補完では固定のプロンプトを使用しました。実際の Zap では、トリガーから受け取ったデータをプロンプトに組み込み、モデルの回答を必要な場所へ送信します。この例では、サポートチケットを受信し、SambaNova にトリアージを依頼して、結果をメールで送信します。Zapier の組み込みアプリのみで構成されているため、他のアカウントを接続せずに構築できます。

**1. チケットの受信**

**Webhooks by Zapier** トリガーを **Catch Hook** イベントで追加します。Zapier から URL が発行されるので、チケットデータを JSON としてその URL に送信します。送信元はヘルプデスクでも、テスト中であればターミナルでもかまいません。

```bash theme={}
curl -X POST "https://hooks.zapier.com/hooks/catch/YOUR/HOOK/" \
  -H "Content-Type: application/json" \
  -d '{"customer":"Dana Whitfield","subject":"Billing charged twice this month","message":"I was charged 49.00 twice on the 3rd and again on the 4th. Can you refund the duplicate?"}'
```

**Test trigger** を選択します。JSON の各キーが、後続ステップで利用できるフィールドになります。

**2. SambaNova によるトリアージ**

上記の手順どおりに **Custom Request** アクションを追加し、チケットの本文がプロンプトに含まれるように **Data** のボディを組み立てます。トリガーのフィールドは手入力せず、フィールド横の **+** ボタンで挿入してください。

```json theme={}
{
  "model": "MiniMax-M3",
  "max_tokens": 2000,
  "messages": [
    {
      "role": "system",
      "content": "You are a support triage assistant. Reply with urgency (low, medium, high), a one-line summary, and a short draft reply to the customer."
    },
    {
      "role": "user",
      "content": "Subject: <Subject field>. Message: <Message field>"
    }
  ]
}
```

system メッセージを入れることで、出力が後続処理に使えるだけの予測可能なものになります。回答の形式が固定されるため、後続のステップが出力を安定して利用できます。

**3. 結果の送信**

**Email by Zapier** アクションを **Send Outbound Email** イベントで追加します。**Body** に SambaNova ステップの **Choices Message Content** フィールドを設定します。メールの件名にチケットの件名を入れておくと、トリアージ結果を一目で確認できます。

> [!NOTE]
>
> Email by Zapier で送信できるメールは、Free プランと Trial プランでは 1 日あたり最大 5 通、有料プランでは 1 時間あたり最大 10 通です。フローの動作を確認できたら、Gmail、Slack、またはお使いのヘルプデスクに置き換えてください。

![3 ステップの Zap。Catch Hook トリガー、SambaNova を呼び出す Custom Request アクション、Send Outbound Email アクションがすべて完了済みと表示されている。](https://mintcdn.com/sambanova-systems/CchL6LllN5ADVV9o/images/docs/integrations/zapier/zapier-complete-flow.png?fit=max\&auto=format\&n=CchL6LllN5ADVV9o\&q=85\&s=abcdb70c59fe67d967e75fb0166bd13b)

上記のチケットに対して、`MiniMax-M3` は緊急度 **Medium**、二重請求に関する 1 行のまとめ、返金と処理期間を案内する返信ドラフトを返しました。このフロー全体で、アプリの公開もモデルのホスティングも必要ありません。リードの分類やフォーム送信内容の要約、Webhook で受け取れるあらゆるデータへの返信ドラフト作成にも、同じパターンをそのまま応用できます。

## トラブルシューティング

> [accordion] The app returned 400
>
> * **Unflatten** を `No` に設定してください。デフォルトの `Yes` では、ネストされた `messages` 配列がエンドポイントの受け付けない形に書き換えられます。これが最も多い原因です。
> * **Data** フィールドが有効な JSON であること、および `model`、`messages`、各メッセージの `role` と `content` が揃っていることを確認してください。
> * モデル ID がアカウントで利用可能であることを確認してください。[SambaCloud モデルページ](https://docs.sambanova.ai/docs/ja/models/sambacloud-models.md) をご参照ください。

> [accordion] We could not parse the JSON body of your request
>
> Zapier が送信する時点で、**Data** フィールドが有効な JSON になっていません。
>
> * フィールドに JSON オブジェクトがちょうど 1 つだけ含まれていることを確認してください。その場で編集を繰り返すと、最初のオブジェクトの後ろに 2 つ目のオブジェクトが残る場合があります。それぞれは正しく見えても、全体としては有効な JSON ではありません。
> * トリガーのフィールドは、プレースホルダを手入力せず **+** ボタンで挿入してください。
> * **Data in** タブに表示される解決済みのボディを JSON バリデーターに貼り付けると、どこで壊れているかを確認できます。

> [accordion] The app returned 401
>
> * `Authorization` ヘッダーの値が `Bearer ` で始まり、その後にキーが続いていることを確認してください。
> * 新しいキーは [SambaCloud ポータル](https://cloud.sambanova.ai/apis?utm_source=zapier\&utm_medium=external\&utm_campaign=cloud_signup) から取得できます。
> * キーは **Basic Auth** フィールドではなく `Authorization` ヘッダーに設定してください。Basic Auth フィールドは別の認証方式で送信されます。

> [accordion] The app returned 429
>
> Zap の実行がアカウントのリクエスト上限を超えています。Zap の実行頻度を下げるか、呼び出しの間に **Delay** ステップを追加してください。ご利用のティアに適用される上限については、[レート制限](https://docs.sambanova.ai/docs/ja/models/rate-limits.md) をご参照ください。

> [accordion] Webhooks by Zapier が利用できない
>
> Webhooks by Zapier には Professional プラン以上が必要で、Free プランでは表示されません。Zapier でご利用のプランを確認するか、トライアルを開始して連携をお試しください。

> [accordion] Choices Message Content が空になる、または途中で切れる
>
> Reasoning モデルは、reasoning を回答とは別に返します。マッピングするのは **Choices Message Reasoning** ではなく **Choices Message Content** です。また、`max_tokens` が小さすぎると、モデルが reasoning の途中で生成を打ち切られて **Choices Message Content** が空になるか、回答の開始直後に上限へ達して文の途中で切れることがあります。モデルが reasoning を終えたうえで回答まで出力しきれるよう、`max_tokens` を引き上げてください。

## 関連トピック

* [Make 連携ガイド](https://docs.sambanova.ai/docs/ja/integrations/make.md)
* [n8n 連携ガイド](https://docs.sambanova.ai/docs/ja/integrations/n8n.md)
