---
title: Webhooks
---

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

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

## 汎用Webhookトリガー

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

<div className="flex justify-center">
  <Image
    src="/static/blocks/webhook.png"
    alt="汎用Webhook設定"
    width={500}
    height={400}
    className="my-6"
  />
</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登録が必要な場合
- そのサービスの構造化されたデータ処理が必要な場合

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

**開発とプロジェクト管理**
- GitHub - 課題、PR、プッシュ、リリース、ワークフロー実行
- Jira - 課題イベント、作業ログ
- Linear - 課題、コメント、プロジェクト、サイクル、ラベル

**コミュニケーション**
- Slack - メッセージ、メンション、リアクション
- Microsoft Teams - チャットメッセージ、チャンネル通知
- Telegram - ボットメッセージ、コマンド
- WhatsApp - メッセージングイベント

**メール**
- Gmail - 新着メール（ポーリング）、ラベル変更
- Outlook - 新着メール（ポーリング）、フォルダーイベント

**CRMと営業**
- HubSpot - 連絡先、企業、取引、チケット、会話
- Stripe - 支払い、サブスクリプション、顧客

**フォームとアンケート**
- Typeform - フォーム送信
- Google Forms - フォーム回答
- Webflow - コレクションアイテム、フォーム送信

**その他**
- Airtable - レコード変更
- Twilio Voice - 着信、通話状態

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

### 認証オプション

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

### ペイロード処理

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

### Webhookのテスト

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

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

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

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

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

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

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