Webhooks
Webhookを使用すると、外部サービスがHTTPリクエストをワークフローに送信することで、外部webhookからワークフロー実行をトリガーできます。Simはwebhookベースのトリガーに対して2つのアプローチをサポートしています。
汎用Webhookトリガー
汎用Webhookブロックは、あらゆるペイロードを受信してワークフローをトリガーできる柔軟なエンドポイントを作成します:
仕組み
- 汎用Webhookブロックを追加 - 汎用Webhookブロックをドラッグしてワークフローを開始
- ペイロードの設定 - 予想されるペイロード構造を設定(任意)
- Webhook URLの取得 - 自動生成されたユニークなエンドポイントをコピー
- 外部統合 - 外部サービスがこのURLにPOSTリクエストを送信するよう設定
- ワークフロー実行 - webhook URLへのリクエストごとにワークフローがトリガーされる
機能
- 柔軟なペイロード:あらゆるJSON形式のペイロード構造を受け入れる
- 自動解析:webhookデータは自動的に解析され、後続のブロックで利用可能
- 認証:オプションのベアラートークンまたはカスタムヘッダー認証
- レート制限:乱用に対する組み込み保護
- 重複排除:繰り返しリクエストからの重複実行を防止
汎用Webhookトリガーは、webhook URLがリクエストを受信するたびに起動するため、リアルタイム統合に最適です。
サービスブロックのトリガーモード
あるいは、特定のサービスブロック(SlackやGitHubなど)を「トリガーモード」で使用して、より専門的なwebhookエンドポイントを作成することもできます:
トリガーモードの設定
- サービスブロックを追加する - サービスブロックを選択します(例:Slack、GitHub、Airtable)
- トリガーモードを有効にする - ブロック設定で「トリガーとして使用」をオンにします
- サービスを設定する - そのサービス特有の認証とイベントフィルターを設定します
- Webhookの登録 - サービスは自動的に外部プラットフォームにWebhookを登録します
- イベントベースの実行 - ワークフローはそのサービスからの特定のイベントに対してのみトリガーされます
各アプローチの使用タイミング
汎用Webhookを使用する場合:
- カスタムアプリケーションやサービスと統合する場合
- ペイロード構造に最大限の柔軟性が必要な場合
- 専用ブロックがないサービスと連携する場合
- 内部統合を構築する場合
トリガーモードを使用する場合:
- サポートされているサービス(Slack、GitHubなど)を使用する場合
- サービス固有のイベントフィルタリングが必要な場合
- 自動Webhook登録が必要な場合
- そのサービスの構造化されたデータ処理が必要な場合
トリガーモードをサポートするサービス
以下のサービスブロックはトリガーモードをサポートしています:
- Slack - メッセージ、メンション、リアクション
- GitHub - プッシュ、PR、イシューイベント
- Airtable - レコード変更
- Telegram - ボットメッセージとコマンド
- Gmail - メール通知
- WhatsApp - メッセージングイベント
- Jira - イシュー更新、コメント
- Linear - イシュー状態変更
- Notion - ページ更新
セキュリティとベストプラクティス
認証オプション
- Bearerトークン:
Authorization: Bearer <token>
ヘッダーを含める - カスタムヘッダー: カスタム認証ヘッダーを定義する
ペイロード処理
- 検証: 不正な形式のデータを防ぐために受信ペイロードを検証する
- サイズ制限: Webhookはセキュリティのためにペイロードサイズ制限がある
- エラー処理: 無効なリクエストに対するエラーレスポンスを設定する
Webhookのテスト
- PostmanやcurlなどのツールでWebhookエンドポイントをテストする
- デバッグのためにワークフロー実行ログを確認する
- ペイロード構造が期待通りであることを確認する
- 認証とエラーシナリオをテストする
ワークフローで処理する前に、受信したWebhookデータを常に検証およびサニタイズしてください。
一般的なユースケース
リアルタイム通知
- 自動応答をトリガーするSlackメッセージ
- 重要なイベントに対するメール通知
CI/CD統合
- デプロイメントワークフローをトリガーするGitHubプッシュ
- ビルドステータスの更新
- 自動テストパイプライン
データ同期
- 他のシステムを更新するAirtableの変更
- フォローアップアクションをトリガーするフォーム送信
- Eコマース注文処理
カスタマーサポート
- サポートチケット作成ワークフロー
- 自動エスカレーションプロセス
- マルチチャネルコミュニケーションルーティング