Webhookの実行条件とは
Webhookでは、システムやアプリケーションに特定の処理が発生したとき、URLを呼び出して、即時に通知を受信する仕組みです。たとえば、決済取引、問い合わせ管理などの業務で、データの更新を迅速に通知する必要がある場合に、非常に役立ちます。
重要な用語
Webhook
Webhookは、システムやアプリケーションで特定の処理が発生したときに、データを送信するURLを呼び出す仕組みです。
WebhookのURL
このURLを使用すると、処理が発生する場合、アプリケーション間でデータを送信することができます。
ペイロード
ペイロードとは、WebhookのURLを通じてアプリケーションから受信するデータです。
HTTP
ハイパーテキストトランスファープロトコル(HTTP)では、サーバーとブラウザー間でのデータの送受信及び解釈の方法を定義したデータ伝送規格です。
ヘッダー
HTTPリクエストと共に認証用や識別用のために送信される追加情報です。
Webhook実行条件
Zoho Flowでは、外部のアプリケーションからWebhookを通じて、特定のURLにデータを受信するときにワークフローを実行する実行条件を設定できます。また、Webhookを通じて受信するデータは、Zoho Flowのワークフローで使用可能です。たとえば、社内で取引を管理するにはカスタムアプリケーションを利用するとします。アプリケーションでWebhookに対応している場合、特定のデータが更新されると、Zoho Flowでワークフローを実行するよう設定できます。
Webhookの機能方法
Zoho Flowで、Webhookの実行条件を設定すると、一意のURLが生成されます。このURLは、外部アプリケーションやカスタムコードへ埋め込み、特定のデータが更新されるときに、Zoho Flowへデータを送信するのに利用できます。
Webhookの実行条件は以下の3種類のデータに対応します:
JSON
JSON(JavaScript Object Notation)は、データ交換フォーマットです。JSONのデータは、キーと値のペアで構成されています。
例: {"name" : "フランク", "company" : "Zylker", "amount": "400"},
ここで "name" : "フランク" は最初のキーと値のペアで、[name]がキーであり、[Frank]が値です。
フォームデータ
フォームデータは、HTTPリクエストで送信する、フォーム項目名と関連する値のペアです。
例:name=フランク&company=Zylker&amount=400
プレーンテキスト
データはプレーンテキスト形式で設定すると、送信された形のとおり、URL経由で送信されます。
例: Zylker

注意:XMLでは[プレーンテキスト]を選択してください。カスタム関数を使うと、高度な処理も可能です。
Zoho Flowでは、データの種類によってデータを処理する方法が異なります。そのため、データの種類を確認することが必要です。たとえば、フォームデータを選択し、受信データが、名前=フランク&会社=Zylker&会社=400の場合、Zoho Flowはデータを次のように解釈します:
名前:フランク 会社Zylker金額:400
プレーンテキストを選択し、受信データが、名前=フランク&会社=Zylker&会社=400 の場合、Zoho Flow はデータを次のように解釈します:
データ:名前=フランク&会社=Zylker&会社=400
ワークフロー内に指定したデータ型と違った形式を選択した場合、フローが想定とおりに実行されない場合があります。
設定方法
- Zoho Flowの[自分のフロー]セクションで、[+作成する]をクリックし、[フローを作成する]をクリックします。
- フロー名を入力し、必要に応じてフローの説明を入力します。
- [作成する]をクリックします。
- Webhook実行条件ボックス内の[設定]をクリックします。

- このフローに一意の URLが生成されます。 [コピーする]をクリックして、URL をコードまたはアプリケーションに貼り付けます。
- アプリケーション/コードからZoho Flowへデータを送信する形式(JSON、フォーム形式のデータ、書式なしテキスト)を選択して、[次へ]をクリックします。
- サンプルデータを使用して、すべてが正常に動作しているかを確認するために、[テストする]をクリックします。

- Zoho Flowの初期設定では、各要素に対して、フローが実行されます。たとえば、Zoho Flowで、データを[{"名前" : "フランク", "会社" : "Zylker", "金額" : "400"}, {"名前" : "トム", "company" : "会社", "金額" : "900"}]の形で受信するとします。"
ここは、{"名前" : "フランク", "会社" : "Zylker", "金額" : "400"} は1つの要素で、{"名前" : "トム", "会社" : "Zylker", "金額" : "900"} は次の要素です。要素ごとにフローを実行する選択肢を有効にしている場合、上記の例では、フローは2回実行されます。要素ごとにフローを実行しない場合、このボックスからチェックを外します。
- 特定のキーの値のみが必要な場合は、そのキーを[Extract part of payload]項目に指定できます。たとえば、上記の項目に「名前」というキーを指定した場合、Zoho Flowで受信した、{"名前" : "フランク", "会社" : "Zylker", "金額" : "400"}データから、「名前」というキーの値のみが抽出され、他のキーの値は破棄されます。したがって、例のフローでは、次のステップにおいて、「名前」の値のみが使用できます。

- [完了する]をクリックし、ワークフローに処理を追加します。
詳細設定の使用
Webhookのテストが完了したら、[詳細設定]をクリックすると、実行条件を設定する追加の選択肢が表示されます。
ヘッダーの次のステップでの活用
この選択肢を有効にすると、受信ペイロードからヘッダーの値が抽出され、Webhookで利用可能な変数として表示されます。ヘッダーの値をフローに利用するには、Webhookタブの編集画面の[変数を挿入する]セクションから選択します。

ヒント:
- ヘッダーには、HTTPリクエストのデータ以外にも認証や識別に使用するデータも転送される場合があります。
- 同じWebhookのURLが複数のアプリケーションやサーバーに使用されている場合、ヘッダーのデータを利用すると、ワークフロー内のどのアプリケーションのデータがURLに受信されているかを判断できます。
ペイロードの一部の抽出
この選択肢は、受信ペイロードに指定したキーのデータや値のみを抽出する場合に使用します。対象のキーのデータのみが抽出され、他のキーのデータは廃棄されます。以下の例のコードでは、ペイロードに「注文」の親オブジェクトと「売上」の子オブジェクトが含まれています。
フロー内にて、「売上」のみのデータを使用する場合、order.saleを入力します。そうすると、以下のような出力になります。
各処理のフローの実行
[各処理のフローを実行する]を有効にすると、レスポンスのペイロードに複数のオブジェクトがある場合、ペイロード内の各オブジェクトに対してフローが実行されます。
下記の例のコードには、3つのオブジェクトがあるため、フローが3回実行されます。したがって、1回目の実行で1番目のオブジェクト、2回目の実行で2番目のオブジェクトなどのように、フローは順に実行されます。
Webhook実行条件の変数の条件利用
決定の条件処理機能を使用する際、テスト条件にはWebhookの実行条件の出力変数を直接選択できません。Webhookの実行条件から特定の変数を使用するには、次の手順に従ってください:
- Webhookの実行条件の後、[変数を設定する]条件処理を追加して新しい変数を作成します。
- 変数名を入力します。
- 「値」項目の下にある変数の一覧をクリックし、対象の変数を選択します。
- [完了する]をクリックします。
- テスト条件に変数を設定するとき、ドロップダウンから作成した新しい変数を選択します。

よくある質問
- データが更新されても Webhookの実行条件が起動しません。
実行条件の設定の際、正しいデータタイプ(JSON、フォーム形式のデータ、書式なしテキスト)を選択しているか確認してください。間違ったデータ形式が選択されていると、フローは実行されない可能性があります。
- Webhook実行条件はオンプレミスアプリケーションで動作しますか。
オンプレミスアプリケーションが外部向けのWebhookに対応している場合、アプリケーションのデータを実行条件として使用し、ワークフローを開始することができます。