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

# Webhookを受信したとき

> 外部システムから HTTP リクエストを受信したときにワークフローを開始します

<Tip>すべてのトリガー設定はAIチャットで行えます。ワークフローで実行したい内容をAIに伝えれば、残りはAIが処理します。</Tip>

このトリガーは固有のURLを生成します。外部システムがそのURLへ HTTP POST を送信すると、ワークフローが実行されます。

## AIで構築する

テーブル右側のサイドバーでAIチャットを開き、実行したい内容を説明します。

適切なトリガーの選択、関連フィールドのマッピング、すべてのアクションの設定はAIが自動的に行います。

目的を一度説明するだけでワークフローが完成し、手動設定は必要ありません。

**例：** *「Stripe の支払いWebhookを受信したら、注文レコードを作成してください。」*

## 設定

| 設定    | 必須  | 説明                                                                                  |
| ----- | --- | ----------------------------------------------------------------------------------- |
| 認証    | いいえ | **なし**（公開。URLを知っている人なら誰でも実行可能）または**Bearer Token**（自動生成されたトークンをリクエストヘッダーに含める必要があります） |
| レスポンス | いいえ | **デフォルト**（Teable 独自の確認応答を返します）または**カスタム**（ステータスコード、コンテンツタイプ、本文を指定します）               |

## 設定方法

1. オートメーションを開き、新しいトリガーを追加します。
2. **Webhookを受信したとき**を選択します。
3. トリガーによって固有の **Webhook URL** がすぐに生成されます。外部システムで必要になるため、このURLをコピーします。
4. （任意、推奨）**トークンを生成**をクリックして Bearer Token 認証を有効にします。受信リクエストの `Authorization` ヘッダーに含める必要があるトークンが生成されます。
5. オートメーションを保存して有効化します。
6. Webhook URL へ POST リクエストを送るよう外部システムを設定します。認証を有効にした場合は、ヘッダーにトークンを含めます。
7. 以下の例を使用してテストリクエストを送ります。オートメーションの実行履歴で、データが正しく受信されたことを確認します。
8. アクションステップを追加します。アクションフィールドの **+** をクリックすると、Webhook の JSON 本文の値を参照できます。

## 後続ステップで利用できるデータ

受信した POST リクエストの JSON 本文全体を変数として利用できます。たとえば、次のデータを送信した場合：

```json theme={null}
{
  "order_id": "12345",
  "customer": "Alice",
  "amount": 99.95
}
```

アクションでは **+** をクリックしてトリガーの出力フィールドを開き、`order_id`、`customer`、`amount` を個別に参照できます。

Teable は JSON を自動的に解析し、最上位の各キーから名前付き変数を作成します。入れ子のオブジェクトにもアクセスできます。

## レスポンスをカスタマイズする

デフォルトでは、Teable は受信した各リクエストに独自の確認応答を返します。一部のプラットフォームは、この応答を受け付けません。購読URLへ検証リクエストを送信し、その中の1フィールドをエンドポイントからそのまま返すよう要求するためです。Slack はこの方式を使用するため、Webhook がハンドシェイクに応答して初めて、そのイベントがオートメーションへ届きます。

トリガーパネルで**レスポンス**を**デフォルト**から**カスタム**へ切り替えます。

| フィールド        | 説明                                                |
| ------------ | ------------------------------------------------- |
| **ステータスコード** | 200～299の任意のコード。デフォルトは200です。                       |
| **コンテンツタイプ** | **JSON** または**プレーンテキスト**。デフォルトは JSON です。          |
| **レスポンス本文**  | 返すテキスト。受信リクエストの値を挿入するには `{{body.<path>}}` を使用します。 |

**カスタム**へ切り替えると、多くの呼び出し元が必要とするハンドシェイク応答が本文にあらかじめ入力されます。

```json theme={null}
{"challenge":"{{body.challenge}}"}
```

`{{ }}` 内のパスは、トリガーが出力変数として公開するパスと同じです。テスト実行で確認済みのペイロードから直接コピーできます。`{{body.event.type}}` のような入れ子の値にも対応しています。JSON 本文でリクエストに存在しないパスは `null` として出力されるため、レスポンスは有効な JSON のままです。

<Info>Slack は `Authorization` ヘッダーを送信できないため、接続時は**認証**を**なし**に設定してください。両方が同時に有効な場合、トリガーパネルに警告が表示されます。</Info>

いつでも**レスポンス**を**デフォルト**に戻し、Teable 独自の確認応答へ戻せます。この設定を変更していないオートメーションには影響しません。

## Webhookをテストする

最も簡単なテスト方法は、コマンドラインから `curl` を使用することです。URLを手入力せず、トリガーパネルから実際のURLをコピーしてください。URLにはベースIDとワークフローIDが含まれています。

**認証なし：**

```bash theme={null}
curl -X POST https://your-teable-instance.com/api/webhook/base/bseXXXXXXXXXXXX/workflow/wflXXXXXXXXXXXX \
  -H "Content-Type: application/json" \
  -d '{"test": true, "message": "curl からこんにちは"}'
```

**Bearer Token 認証あり：**

```bash theme={null}
curl -X POST https://your-teable-instance.com/api/webhook/base/bseXXXXXXXXXXXX/workflow/wflXXXXXXXXXXXX \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-generated-token" \
  -d '{"order_id": "12345", "status": "paid"}'
```

**より複雑なデータを送信：**

```bash theme={null}
curl -X POST https://your-teable-instance.com/api/webhook/base/bseXXXXXXXXXXXX/workflow/wflXXXXXXXXXXXX \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-generated-token" \
  -d '{
    "event": "invoice.paid",
    "data": {
      "invoice_id": "INV-001",
      "amount": 250.00,
      "currency": "USD",
      "customer_email": "alice@example.com"
    }
  }'
```

テストリクエストを送信した後、オートメーションの実行履歴で、データが正しく受信・解析されたことを確認します。

## レート制限

| 範囲       | 上限           |
| -------- | ------------ |
| ベースごと    | 1秒あたり50リクエスト |
| ワークフローごと | 1秒あたり2リクエスト  |

レート制限を超えたリクエストには HTTP 429 レスポンスが返されます。外部システムがリクエストを集中して送信する場合は、指数バックオフを使用した再試行処理を実装してください。

## セキュリティの推奨事項

* 本番環境の Webhook では、**必ず Bearer Token 認証を使用**してください。公開 Webhook URL は、URLを知った人なら誰でも実行できます。
* **Webhook URL は非公開にしてください。** パスワードと同様に扱い、公開リポジトリへコミットしたり、公開チャンネルで共有したりしないでください。
* トークンが漏えいした可能性がある場合は、**トークンを再生成**してください。トリガーパネルからいつでも新しいトークンを生成できます。
* **ワークフローでデータを検証してください。** 受信データが正しい形式であると決めつけないでください。処理前にフィルターやスクリプトステップを使用し、必須フィールドが存在することを確認します。
* **実行履歴を監視してください。** オートメーションの実行ログを定期的に確認し、予期しないリクエストや未認証リクエストを見つけます。

## 使用例

* **Stripe や PayPal から支払いイベントを受信する。** Stripe の Webhook から `invoice.paid` イベントを Teable のオートメーションへ送信し、注文レコードを自動作成または更新します。
* **Webサイトのフォーム送信を受け付ける。** Webサイトのお問い合わせフォームや登録フォームの送信先を Webhook URL にして、Teable にレコードを直接作成します。
* **IoTデバイスからデータを取り込む。** HTTP リクエストを送信できるセンサーやデバイスから Teable へデータを送り、監視やアラートに使用します。
* **CI/CD パイプラインを接続する。** ビルドの成功時または失敗時にワークフローを実行し、レコードの作成、通知の送信、プロジェクトステータスの更新を行います。
* **任意の SaaS ツールからイベントを受信する。** GitHub、Jira、Shopify、Twilio など、多くのツールが Webhook 通知に対応しています。Teable の Webhook を送信先に設定して、ツール間のワークフローを自動化します。

## ヒント

* Webhook は **POST** リクエストだけを受け付けます。GET、PUT などのメソッドではオートメーションを開始しません。
* 必ず `Content-Type: application/json` ヘッダーを送信してください。本文が有効な JSON でない場合、トリガーがデータを正しく解析できないことがあります。
* Bearer 認証用のカスタムヘッダーに対応していないシステムからデータを送る場合は、公開モードを使用し、JSON 本文に秘密鍵を追加して、ワークフロー内のフィルターやスクリプトで検証する方法を検討してください。
* デバッグでは、[webhook.site](https://webhook.site) のようなサービスを使い、外部システムから実際に送信される内容を確認してから Teable を送信先に設定できます。

## 関連ページ

* [HTTP リクエストアクション](/ja/basic/automation/actions/logic/http-request) — ワークフローから外部APIを呼び出す、送信側の機能です
* [スクリプトを実行](/ja/basic/automation/ai/scripting/runscript) — Webhook ペイロードの高度な処理に使用します
* [ループ（一括）アクション](/ja/basic/automation/actions/logic/loop-run) — Webhook ペイロード内の配列を処理します
