Webhook でフローを開始する
Webhook トリガーを使うと、フロー専用の URL が発行されます。Web サイトのバックエンド、フォームツール、スクリプトなど、HTTP リクエストを送れるシステムなら、その URL に JSON を送ってフローを開始できます。送った JSON はトリガーの出力になり、後続のステップで使えます。
1. トリガーを追加して URL をコピーする
- フローで トリガーを追加 をクリックします。トリガーを選択 で 組み込み を開き、Webhook を選んでから Webhook トリガー を選びます。
- 設定に URL グループ が表示され、このトリガー用に生成された読み取り専用の値が 2 つ入っています。
| 設定項目 | 内容 |
|---|---|
| Hook URL | リクエストの送信先。横のコピーボタンでコピーします。 |
| Hook APIキー | 呼び出し側がリクエストごとに送るキー。伏せ字で表示されるので、表示してからコピーします。 |
URL は https://<組織 ID>.<ドメイン>/triggers/<Webhook ID> の形です。自分で組み立てず、必ずトリガーからコピーしてください。
API キーはパスワードと同じように扱ってください。両方の値を知っていれば、誰でもフローを開始できます。
複製すると URL が変わる
フローを複製またはインポートすると、コピー側の Webhook には新しい URL とキーが発行されます。コピーを呼び出すシステムの設定を更新してください。
2. 公開する
Webhook は 公開済み のフローを、フローが有効なときだけ実行します。リクエストを送る前に 公開 をクリックしてください。後でフローを変更したら、もう一度公開します。バージョンと公開 を参照してください。
3. テストリクエストを送る
JSON のボディと、Bearer トークンとしての API キーを付けて POST リクエストを送ります。
curl -X POST 'https://<組織 ID>.<ドメイン>/triggers/<Webhook ID>' \
-H 'Authorization: Bearer <Hook APIキー>' \
-H 'Content-Type: application/json' \
-d '{"name": "田中 愛子", "email": "aiko@example.com"}'200 のレスポンスは、リクエストが受け付けられたことを示します。
{
"result": "ok",
"details": {
"message": "Workflow executed successfully",
"runId": "…",
"…": "…"
}
}実行履歴 を開いて実行を確認します。トリガー › Webhook で絞り込むと見つけやすくなります。200 以外が返った場合は、Webhook API のエラー一覧を参照してください。
4. 後続のステップでリクエストボディを使う
JSON のボディがトリガーの出力になります。ステップで値を使うには、$ を入力して Current Trigger を選び、項目を選びます。参照を直接入力しても構いません。
| リクエストボディ | 参照 |
|---|---|
"name": "田中 愛子" | $trigger.output.name |
"customer": {"id": "C-102"} | $trigger.output.customer.id |
"items": [{"sku": "A1"}, …] | $trigger.output.items[0].sku |
Webhook には決まった項目がないため、呼び出し側が送る項目は $ の一覧に表示されないことがあります。テストリクエストを 1 回送り、実行履歴 で実行を開いてトリガーの出力を見ると、実際に届いた内容を確認できます。
次の 2 点に注意してください。
- ボディの最上位に
data項目がある場合は、dataの中身だけが出力になります。{"data": {"name": "愛子"}}なら$trigger.output.nameで取り出せます。 - 出力には
triggerType(常にwebhook)とtimestamp(トリガーが動いた時刻。1970 年からのミリ秒)が追加されます。同じ名前の項目は上書きされるため、送らないでください。
5. 呼び出し側に応答する
Webhook はリクエストを受け付けた時点で、フローの実行前に応答します。応答は常に同じ受付確認なので、フローの結果を入れることはできません。
呼び出し側が結果を必要とする場合は、フローから結果を送り返します。フローの最後に HTTP ステップ を追加し、元のリクエストに含まれていた ID などと一緒に、呼び出し側の API に結果を送ってください。