---
title: Webhooks
---

import { Callout } from 'fumadocs-ui/components/callout'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Video } from '@/components/ui/video'

Webhookを使用すると、外部サービスがHTTPリクエストをワークフローに送信することで、外部webhookからワークフロー実行をトリガーできます。Simはwebhookベースのトリガーに対して2つのアプローチをサポートしています。

## 汎用Webhookトリガー

汎用Webhookブロックは、あらゆるペイロードを受信してワークフローをトリガーできる柔軟なエンドポイントを作成します：

<div className="mx-auto w-full overflow-hidden rounded-lg">
  <Video src="webhooks-1.mp4" width={700} height={450} />
</div>

### 仕組み

1. **汎用Webhookブロックを追加** - 汎用Webhookブロックをドラッグしてワークフローを開始
2. **ペイロードの設定** - 予想されるペイロード構造を設定（任意）
3. **Webhook URLの取得** - 自動生成されたユニークなエンドポイントをコピー
4. **外部統合** - 外部サービスがこのURLにPOSTリクエストを送信するよう設定
5. **ワークフロー実行** - webhook URLへのリクエストごとにワークフローがトリガーされる

### 機能

- **柔軟なペイロード**：あらゆるJSON形式のペイロード構造を受け入れる
- **自動解析**：webhookデータは自動的に解析され、後続のブロックで利用可能
- **認証**：オプションのベアラートークンまたはカスタムヘッダー認証
- **レート制限**：乱用に対する組み込み保護
- **重複排除**：繰り返しリクエストからの重複実行を防止

<Callout type="info">
汎用Webhookトリガーは、webhook URLがリクエストを受信するたびに起動するため、リアルタイム統合に最適です。
</Callout>

## サービスブロックのトリガーモード

あるいは、特定のサービスブロック（SlackやGitHubなど）を「トリガーモード」で使用して、より専門的なwebhookエンドポイントを作成することもできます：

<div className="mx-auto w-full overflow-hidden rounded-lg">
  <Video src="slack-trigger.mp4" width={700} height={450} />
</div>

### トリガーモードの設定

1. **サービスブロックを追加する** - サービスブロックを選択します（例：Slack、GitHub、Airtable）
2. **トリガーモードを有効にする** - ブロック設定で「トリガーとして使用」をオンにします
3. **サービスを設定する** - そのサービス特有の認証とイベントフィルターを設定します
4. **Webhookの登録** - サービスは自動的に外部プラットフォームにWebhookを登録します
5. **イベントベースの実行** - ワークフローはそのサービスからの特定のイベントに対してのみトリガーされます

### 各アプローチの使用タイミング

**汎用Webhookを使用する場合：**
- カスタムアプリケーションやサービスと統合する場合
- ペイロード構造に最大限の柔軟性が必要な場合
- 専用ブロックがないサービスと連携する場合
- 内部統合を構築する場合

**トリガーモードを使用する場合：**
- サポートされているサービス（Slack、GitHubなど）を使用する場合
- サービス固有のイベントフィルタリングが必要な場合
- 自動Webhook登録が必要な場合
- そのサービスの構造化されたデータ処理が必要な場合

## トリガーモードをサポートするサービス

以下のサービスブロックはトリガーモードをサポートしています：

- **Slack** - メッセージ、メンション、リアクション
- **GitHub** - プッシュ、PR、イシューイベント
- **Airtable** - レコード変更
- **Telegram** - ボットメッセージとコマンド
- **Gmail** - メール通知
- **WhatsApp** - メッセージングイベント
- **Jira** - イシュー更新、コメント
- **Linear** - イシュー状態変更
- **Notion** - ページ更新

## セキュリティとベストプラクティス

### 認証オプション

- **Bearerトークン**: `Authorization: Bearer <token>` ヘッダーを含める
- **カスタムヘッダー**: カスタム認証ヘッダーを定義する

### ペイロード処理

- **検証**: 不正な形式のデータを防ぐために受信ペイロードを検証する
- **サイズ制限**: Webhookはセキュリティのためにペイロードサイズ制限がある
- **エラー処理**: 無効なリクエストに対するエラーレスポンスを設定する

### Webhookのテスト

1. PostmanやcurlなどのツールでWebhookエンドポイントをテストする
2. デバッグのためにワークフロー実行ログを確認する
3. ペイロード構造が期待通りであることを確認する
4. 認証とエラーシナリオをテストする

<Callout type="warning">
ワークフローで処理する前に、受信したWebhookデータを常に検証およびサニタイズしてください。
</Callout>

## 一般的なユースケース

### リアルタイム通知
- 自動応答をトリガーするSlackメッセージ
- 重要なイベントに対するメール通知

### CI/CD統合
- デプロイメントワークフローをトリガーするGitHubプッシュ
- ビルドステータスの更新
- 自動テストパイプライン

### データ同期
- 他のシステムを更新するAirtableの変更
- フォロー​​アップアクションをトリガーするフォーム送信
- Eコマース注文処理

### カスタマーサポート
- サポートチケット作成ワークフロー
- 自動エスカレーションプロセス
- マルチチャネルコミュニケーションルーティング