メインコンテンツへスキップ

Webhook トリガー

Webhook トリガーを使用すると、API からのデータを使ってフローを開始できます。そのため、API コールを実行できるあらゆる外部システムがフローをトリガーできます。例えば、Zapier の Run flow アクションを使用してフローをトリガーできます。あわせて DoiT Integrations も参照してください。

代表的なユースケース:

  • Zapier などのサードパーティーのオートメーションプラットフォームと連携し、イベントをフローにプッシュする。

  • 構造化された JSON を送信する CI/CD パイプライン・社内ツール・スクリプトからフローを開始する。

  • 外部システムがフローで処理するリクエストペイロードを送信する、承認またはリクエストのワークフローを構築する。

データ構造を検出するため、JSON のサンプルを提供する必要があります。構造が検出されると、フローは後続のアクションに必要なフィールドを自動的に作成します。これにより、データはフローの一部となり、他のデータと同様に任意のアクティビティノードで使用できます。

Webhook trigger configuration

  • Webhook URL: このフローをトリガーするデータを送信するサービスの URL を指定します。

  • Sample JSON: データの構造を検出するための JSON サンプルを指定します。Detected structure を選択し、フィールドが正しく認識されていることを確認してください。誤っていると思われる場合は、JSON サンプルを修正して再度貼り付けてください。

  • Generate API token: トリガーノードから DoiT API token を作成することで、Cloud Intelligence の Profile を開かずに済みます。クリックのたびに、CloudFlow 管理権限にスコープされた一意の名前のトークンが生成されます。トークンは作成から 1 年後に失効します。Webhook の失敗を防ぐため、有効期限が切れる前に新しいトークンを生成してください。

他の自動トリガーと同様に、Webhook でトリガーされるフローは、フローが公開された後にのみ実行され、Run ボタンから開始することはできません。

フローにパラメータを渡す

リクエストの JSON ボディはトリガーのペイロードになります。Sample JSON に含めたすべてのフィールドは下流のノードで利用可能になり、他のノードの出力と同様に、フィルター・分岐・通知・アクションノードへの入力などで参照できます。実行にパラメータを渡すには、それらをリクエストボディ内のフィールドとして含めてください。

フローをトリガーするには、Authorization ヘッダーに DoiT API token を指定し、JSON ボディにパラメータを含めて Webhook URL に POST リクエストを送信してください。例えば、EC2 インスタンスを停止するフローは、呼び出し元からインスタンス ID と理由を受け取ることができます。

curl -X POST "<webhook-url>" \
-H "Authorization: Bearer $DOIT_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"instanceId": "i-0abcd1234efgh5678",
"region": "us-east-1",
"reason": "idle for 14 days"
}'

その後、下流のノードはトリガーの出力から instanceIdregionreason を参照できます。例えば、AWS ノードは instanceIdregion を使用してインスタンスを停止し、通知ノードはメッセージ内に reason を含めます。

注意

リクエストボディは、トリガー設定で指定した Sample JSON の構造と一致している必要があります。リクエストに新しいフィールドを追加した場合は、サンプルを更新して、そのフィールドを下流ノードで参照できるようにしてください。

参照