Sim

Webhooks

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

汎用Webhookトリガー

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

仕組み

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

機能

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

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

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

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

トリガーモードの設定

  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. 認証とエラーシナリオをテストする

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

一般的なユースケース

リアルタイム通知

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

CI/CD統合

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

データ同期

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

カスタマーサポート

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