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

Fin手順でWait for Webhookツールを使用する

Wait for Webhookツールを使って、Fin手順の途中で一時停止し、外部システムからのコールバックを受けて再開する方法を学びます。本人確認、支払い、承認など非同期連携に最適です。

対応者:Dawn

Wait for Webhookツールは、Finが手順の途中で一時停止し、外部からの入力を待つことを可能にします。OnfidoやPlaidなどのサードパーティシステムとの連携を自動化し、非同期処理を実現します。

注意:

    • Wait for WebhookはInstructionステップ内でのみ利用可能です。Instructionステップ内で@を入力し、ツールピッカーからWait for Webhookを選択して追加します。


    Wait for Webhookを使うタイミング

    手順が外部システムに処理を委ね、結果を待ってから続行する必要がある場合にこのツールを使います。そのシステムはリクエストを非同期で処理し、即時に応答を返しません。

    一般的な使用例は以下の通りです:

    • 本人確認や年齢確認 — KYC(Know Your Customer)プロバイダーが顧客の身元を確認するのを待つ場合

    • 支払い承認 — 支払い処理業者が取引を確認するのを待つ場合

    • アカウント連携 — OAuth(オープン認証標準)フローの完了を待つ場合

    • 注文履行チェック — 倉庫システムが在庫の有無を確認するのを待つ場合

    • 承認workflows — 内部チームが返金や例外を承認するのを待つ場合


    仕組み

    Finが手順内でWait for Webhookツールに到達すると、以下のことが起こります:

    1. 手順の実行が始まると、Finは各Wait for Webhookツールに対して一意のコールバックURLを生成します。

    2. FinがWait for Webhookツールに到達する前に、Data Connectorを使ってこのコールバックURLを外部システムに渡すよう手順を設定します。

    3. 外部システムが処理を完了し、コールバックURLにwebhookを送信すると、Finはwebhookのペイロードを設定された応答属性に取り込み、自動的に手順を再開します。

    4. 設定された待機時間内にコールバックが受信されない場合、Finは設定されたエスカレーションメッセージを送信し、会話を設定されたエスカレーション担当者に割り当てます。

    重要: コールバックURLは手順の実行ごとに一意です。複数の会話で再利用したり、静的なエンドポイントとして保存することはできません。


    手順にWait for Webhookを追加する方法

    1. エディターで手順を開きます。

    2. Instructionステップ内で@を入力してツールピッカーを開きます。

    3. リストからWait for Webhookを選択します。

    4. Wait for Webhookツールがステップに挿入され、右側に設定サイドパネルが開きます。


    ツールの設定方法

    Wait for Webhookの設定サイドパネルには3つのフィールドがあります:

    ツール名

    ツールに説明的な名前を付けます(例:「Wait for ID verification callback」)。この名前はエディター内でツールを識別し、Data ConnectorでコールバックURLをパラメーターとしてマッピングする際に参照されます。

    応答属性

    外部システムがwebhookペイロードに含めると予想されるフィールドを定義します。ここで定義された各属性はコールバック到着時にキャプチャされ、後続のステップでRead attributeツールを使って参照できます。

    例えば、本人確認プロバイダーがstatusreference_idを返す場合、両方を応答属性としてここに追加します。

    待機時間とフォールバック

    Finがコールバックを待つ時間を設定します。タイムアウト時に顧客に送信するエスカレーションメッセージと、会話をルーティングする担当者も設定する必要があります。

    重要: サイドパネルでエスカレーションメッセージとエスカレーション担当者の両方を必ず設定してください。どちらかが欠けていると、タイムアウト時の動作が予測できなくなります。


    コールバックURLを外部システムに渡す方法

    コールバックURLは手順開始時に生成されます。Wait for Webhookツールに到達した時点ではありません。つまり、最初のステップを含む任意の早い段階で外部システムに渡すことができます。URLを渡すにはData Connectorを使用します。

    1. 外部システムのAPI(例:「Start ID Verification」エンドポイント)を呼び出すData Connectorを設定します。

    2. Data ConnectorをコールバックURLを入力パラメーターとして受け取るように設定します。

    3. 手順エディターでこの入力パラメーターをwebhookツールのURL属性にマッピングします。

    4. 手順がWait for Webhookツールに到達する前に、このData Connectorを呼び出すよう設定されていることを確認してください。

    5. FinがData Connectorを呼び出すと、リクエストに一意のコールバックURLが渡されます。外部システムはこのURLを保存し、処理完了後にwebhookコールバックを送信します。

    注意:コールバックURLを渡すData Connectorの呼び出しはWait for Webhookツールの前に行う必要があります。これにより外部システムがコールバックURLにアクセスできます。


    コールバック後の応答データの読み取り方法

    Finがwebhookコールバックを受信して手順を再開すると、応答ペイロードはWait for Webhookツールの設定で定義した応答属性にキャプチャされます。後続のInstructionステップでRead attributeツールを使ってこれらの値にアクセスします。

    例えば:

    • verification_statusを読み取り、本人確認が合格か不合格かを確認します。

    • Conditionステップを使って結果に基づきフローを分岐させます。

    • 応答から値を別のData Connectorに渡してさらに処理します。

    Wait for Webhookツールがコールバックを受け取り、キャプチャした応答属性で分岐した後、手順は通常通り次のステップに進みます。設定された待機時間内にコールバックが届かない場合、Finは「待機時間切れ時の動作」で説明するようにエスカレーションします。


    待機時間切れ時の動作

    Wait for Webhookツールの設定された待機時間内にコールバックが受信されない場合、Finは必ずエスカレーションします。条件分岐はなく、タイムアウトに応じた異なる動作を設定できません。エスカレーションは常に以下の2ステップで行われます:

    1. エスカレーションメッセージ: タイムアウト時にFinが顧客に送信するメッセージ。

    2. エスカレーション担当者: メッセージ送信後に会話がルーティングされるチームまたは担当者。

    ヒント:

    • 外部システムの処理時間に合わせて待機時間を設定し、適切な余裕を持たせましょう。通常10秒で応答するプロバイダーなら、60秒の待機時間が安全なマージンを確保しつつ応答性も保ちます。

    • 手順が設定できたら、Proceduresエディターのシミュレーション機能でWait for Webhookのフローを実際の顧客に届く前に検証しましょう。シミュレーションでモックコールバックペイロードを定義し、Finがたどるべき手順パスに基づいて成功基準を設定します。


    よくある質問

    Webhookが届かない場合はどうなりますか?

    設定された待機時間内にコールバックが受信されない場合、Finはエスカレーションパスを起動します。設定されたエスカレーションメッセージを顧客に送り、会話をエスカレーション担当者にルーティングします。手順は続行しません。

    コールバックURLを外部システムにどうやって渡しますか?

    手順内でWait for Webhookツールの前に配置したData Connectorステップを使います。コネクターを設定して外部システムのAPIを呼び出し、webhookツールのコールバック属性を入力パラメーターとしてマッピングします。Finはコネクター呼び出し時にコールバックURLを外部システムに渡し、システムはコールバック送信先を認識します。

    複数の会話で同じコールバックURLを使えますか?

    いいえ。コールバックURLは手順の実行ごとに一意で、手順開始時に生成されます。Wait for Webhookツールに到達した時点ではありません。顧客ごとに手順が実行されるたびに新しいURLが生成されます。静的なエンドポイントとして保存したり、会話間で再利用することはできません。

    外部システムはどのペイロードフィールドを返せますか?

    外部システムはwebhookペイロードに任意のフィールドを含めることができますが、Wait for Webhookツールの設定で応答属性として定義したフィールドのみがFinにキャプチャされ、後続のステップで利用可能です。ペイロードの追加フィールドは無視されます。

    Finがコールバックを待っている間はどうなりますか?

    Finがwebhookコールバックを待って一時停止している間、顧客からのメッセージには応答しません。コールバックが届くかタイムアウトが発生するまで、会話は実質的に沈黙状態になります。

    ヒント: Wait for Webhookツールの前に必ずInstructionステップを追加し、顧客に現在の状況を伝えましょう。例えば「本人確認を行っています。送信したリンクの手順を完了してください。」これがないと、Finは会話の途中で説明なく沈黙してしまいます。

    Wait for Webhookを使うにはどんな権限が必要ですか?

    Fin手順の作成や編集、Wait for Webhookツールの追加にはcan manage workspace data権限が必要です。権限は設定 > ワークスペース > チームメンバーで確認・更新できます。

    こちらの回答で解決しましたか?