Loop in teammate / agentステップを使用して、重要なポイントでFin Procedureを一時停止し、Finが続行する前にチームメイトの入力や承認を求めます。これは重要な決定、コンプライアンスに敏感なリクエスト、または統合が完全に構築される前の手続きフローのテストに役立ちます。Finが会話の制御を維持する間、チームメイトがコンテキストを確認し、決定や回答を入力し、Finは一時停止した場所から再開します。本記事では、ヒューマン・イン・ザ・ループ(HITL)の使用タイミング、設定とテスト方法、ステップが有効な間の割り当てとSLAの挙動について説明します。
注意:ヒューマン・イン・ザ・ループは既存のFin Procedure内に追加するステップです。手続きに不慣れな場合は、Fin Procedures explainedとQuick start: Create a Fin Procedureを先にお読みください。
ヒューマン・イン・ザ・ループを使うタイミング
Fin ProceduresのLoop in teammate / agentステップには主に2つの用途があります。
人間の監督 — Finが進む前にチームメイトがレビューし承認する必要があるリスクの高いまたは高価値のアクションに使用します。例:返金や例外の承認、コンプライアンスに敏感なリクエスト(例:アカウント閉鎖、データ削除)、高価値の顧客エスカレーション、善意の対応、またはポリシーで人間の承認が必要な状況。
手続きのテスト — まだ構築されていないデータコネクターの代わりに使用します。返金やキャンセルのコネクターが開発中の場合、チームメイトが手動でそのステップを実行し、統合が準備できる前に手続き全体のフローをテストできます。
ヒューマン・イン・ザ・ループの仕組み
1. FinがLoop in teammate / agentステップに到達する
Finが手続き内のLoop in teammate / agentステップに到達すると:
ステップが実行される前に、Finが顧客に送信するメッセージを設定できます。
Loop in teammate / agentのノートがinboxに表示され、チームメイトがレビューし対応するために必要なすべてが示されます。
Finはチームメイトが対応するかタイムアウトになるまで待機し、手続きを続行しません。
注意事項:
会話の割り当てはワークスペースとFin Procedureの設定によります。ワークスペースでBot Inboxが有効で「Review Team」がデフォルトのままの場合、Finは割り当てられたままで会話はBot Inboxに残ります。Bot Inboxが無効で「Review Team」がデフォルトの場合、会話はデフォルトの担当者に割り当てられます。
どちらの場合も、Team Inboxが割り当てられていれば、会話はそのInboxに割り当てられます。
2. チームメイトがレビューし回答する
inboxまたはSlackから、チームメイトはFin requires your decisionカードを見て2つの選択肢から選べます。
オプション1:回答を送信(Finが続行): チームメイトは必要なフィールド(例:決定や理由)を入力して送信します。
回答は会話に記録されます。
Finは手続きを再開します。チームメイトの回答は後続のステップやFinが顧客に送る最終メッセージで使用できます。
オプション2:会話を引き継ぐ(Finが停止): 必要に応じてチームメイトが会話を引き継げます。会話はチームメイトに割り当てられ、Finは応答を停止します。
ヒューマン・イン・ザ・ループの設定方法
手続きエディターで@を入力し、メニューからLoop in teammate / agentを選択します。
質問や指示を書く Loop in teammate / agentカードでチームメイトに表示されます。チームメイトに伝えたい決定や行動を指示するように書いてください。
例:「顧客のプランを年間プロに切り替えてもいいですか?」 手続きの前半でCall data connectorステップが顧客データ(現在のプラン、請求日、アカウント履歴など)を取得していれば、そのデータが質問の下に表示され、チームメイトが判断に必要なコンテキストを得られます。
チームメイトが提供すべき情報を設定し、Response to Collectフィールドを使います。各フィールドにはデータタイプがあり、承認判断にはTrue/False(例:承認:はい/いいえ)、自由回答にはText(例:理由、メモ)を使います。
後続のステップで回答を使う。 Loop in teammate / agentステップの後にRead attributeステップを追加してチームメイトの回答を取得します。その後、IF/ELSE条件で回答に基づき手続きを分岐できます。例:承認がTrueならアクションを実行、Falseならリクエストが拒否された旨を顧客に通知。Read attributeステップがないとFinはチームメイトの入力を後続ステップで参照できません。
レビュアーを割り当てる。 このステップをレビューするチームメイトを選択します。空欄の場合、FinはFin引き継ぎ設定のDefault担当者を使用します。Mark as priorityを使うとinboxで会話にフラグを立て、チームが優先的に対応できます。
待機時間を設定 — Finがチームメイトの回答を待つ時間を設定し、期限切れ時にエスカレーションします。設定内容:
期間: タイムアウトを分または時間で設定。
エスカレーション所有者: タイムアウト時に会話の所有者を選択。
エスカレーションメッセージ: チームメイトが期限内に回答しなかった場合にFinが顧客に送るメッセージ。例:「まだチームメイトから返答がないため、チームに引き継ぎます。」
営業時間外の一時停止(任意):チームの営業時間外はタイマーを一時停止します。次の営業時間開始時にタイマーが再開され、選択したチームまたはワークスペースのデフォルトの営業時間が適用されます。
引き継ぎ先: 以前と同様にチームまたはチームメイトにルーティングするにはTeamを選択、またはWorkflowを選択してワークフローに引き継ぎます。手続きのチャネルで実行可能なワークフローのみが選択肢に表示されます。ワークフローに引き継ぐと手続きは終了し、ワークフロー実行後に再開しません。タイマー発動時にワークフローがアーカイブ、ドラフト、削除されている場合はチーム引き継ぎ設定に戻ります。
重要: Loop in teammate / agentステップを保存するには少なくとも1つの収集フィールドが必要です。タイムアウト期間とエスカレーションメッセージも設定しないと手続きを公開できません。
Slack経由でのヒューマン・イン・ザ・ループの使い方
Loop in teammate / agentステップ設定のMore channelsタブでSlackチャンネルを接続すると、このステップに到達した際にチームメイトに通知されます。
ステップ設定パネルでMore channelsタブを選択します。
Slackの下で通知したいチャンネルをドロップダウンから選択します。Slackワークスペースの設定や@Intercomをチャンネルに追加する方法はSlack通知の設定をご覧ください。設定でチャンネルの目的をPost Slack notifications onlyにすると、通知はSlackに投稿され、別のIntercom会話は作成されません。
Slack通知には手順名、顧客情報、最近の会話メッセージ、そしてLoop in teammate / agentの質問が表示されます。これには以前のデータコネクターステップで取得したデータも含まれます。チームメイトはSlackから直接Respondをクリックして回答を送信するか、View in InboxをクリックしてIntercomで会話を開くことができます。
チームメイトが対応すると、通知は自動的に更新されます:
✅ 解決済み:チームメイトが送信した回答が表示されます(例:approve: true)、Finは手順を続行します。
⏳ 期限切れ:タイムアウトが過ぎて回答がない場合、通知には「回答がありません。会話はエスカレーションされました。」と表示されます。
複数のチームメイトがSlackとInboxの両方で通知を見た場合、最初に送信された回答が有効となります。他のすべての未処理通知は自動的に「解決済み」に更新されます。
Loop in teammateステップで外部データを使用する方法
Loop in teammate / agentステップは自社システムのデータと組み合わせて使用できます。例えば:
手順の前のステップで、データコネクターを使って顧客のプラン、支出、リスクスコアを取得することがあります。
その情報はLoop in teammate / agentカードに直接表示され、チームメイトがより迅速かつ適切な判断を下せるようになります。
同じデータは、タイムアウトが発生した場合の顧客へのエスカレーションメッセージにも表示されます。
タイムアウトとエスカレーションの仕組み
Loop in teammate / agentステップにタイムアウトを設定すると:
Finはタイムアウトが切れるまでチームメイトの回答を待ちます。
タイムアウトまでにチームメイトから回答がない場合、Finはエスカレーションメッセージを送信し、会話から自動的に離脱し、エスカレーション設定に従って割り当てを行います。
チームが営業時間外の場合、タイマーを一時停止することもできます。一時停止中は、選択したチームの営業時間、またはチーム未選択や単一チームメイト選択時はワークスペースのデフォルト営業時間の開始時にタイマーが再開されます。
注意:待機中の顧客の返信はタイムアウトを延長しません。Finはチームメイトが対応するまで応答しません。
人間の介入テスト方法
手順エディターでTestをクリックしてテストオプションを開きます。Loop in teammate / agentステップはインタラクティブプレビューまたはシミュレーションでテストできます。
プレビュー
手順エディターでTestをクリックし、トリガーフレーズ(例:「請求サイクルを月次から年次に変更したい」)を入力してプレビューを開始します。
顧客ビュー:Finは事前設定したメッセージ(例:「プラン変更前にチームメイトに確認します。」)を送信し、Loop in teammate / agentステップで一時停止します。
チームメイトレビュー:プレビューウィンドウでReviewまたは「Review as teammate from inbox」リンクをクリックします。これにより、チームがInboxで見るのと同じLoop in teammate / agentカードが開きます。
アクションを完了する:収集フィールド(例:承認/拒否のドロップダウンと理由のテキストフィールド)に入力し、送信をクリックします。
結果を確認する:Finが手順を再開し、決定に基づく正しいフォローアップメッセージ(例:「おめでとうございます!プランは年次請求に変更されました。現在はPro Yearlyプランで年間470ドル、年間118ドルの節約です。」)を送信するか確認します。予期しない結果の場合はIF/ELSE条件とRead属性ステップがLoop in teammate / agentの回答フィールドを正しく参照しているか確認してください。
Preview as user or lead設定を使って、異なる顧客セグメントでの手順の動作をテストします。
シミュレーション
手順にLoop in teammate / agentステップが含まれる場合、シミュレーションフォームにTeammate input available to Finセクションが表示されます。シミュレーションを実行する前に編集して値(例:「Approved: true」)を追加する必要があります。
シミュレーションを実行し、Loop in teammate / agentステップに到達すると:
Loop in teammate / agentの質問が記載されたノートが作成されます。これは実際の会話でチームメイトが見るノートと同じです。
すべての必須値が事前入力済み:"Response submitted to Fin"ノートが作成され、チームメイトが回答したかのように手順が続行されます。
必須値が不足している場合:シミュレーションはタイムアウトとして扱われ、エスカレーションメッセージが送信され、会話がエスカレーションされます。これは実際にチームメイトが時間内に回答しなかった場合と同様です。
人間の介入中の割り当てとSLAの動作
Loop in teammate / agentステップ中の割り当て、SLA(サービスレベルアグリーメント)、チームメイトの非アクティブ状態の動作は、会話がFinまたは人間のチームメイトから始まったかによって異なります。
人間の介入時の割り当ての仕組み
Finが会話を管理している場合(bot inbox有効)
FinはLoop in teammate / agentステップで設定されたレビュアーチームまたはチームメイトに会話を割り当てます。
レビュアーチームの割り当てルールは通常通り適用されます。ラウンドロビン、負荷分散、手動など。
会話は一時的に人間に渡っても、引き続きボット管理下とみなされます。これはSLAの延期やチームメイトの非アクティブ状態の動作に影響します(下記参照)。
チームメイトがLoop in teammate / agentフォームを送信すると、会話はFinのbot inboxに戻り、手順が再開されます。
チームメイトがLoop in teammate / agent中に「引き継ぐ」をクリックした場合
会話は「引き継ぐ」をクリックしたチームメイトに割り当てられます。
手順は停止し、Finは再開しません。
人間が既に会話を管理している場合(bot inboxなし)
Finは割り当て前に現在の所有者を記録します。
チームメイトがLoop in teammate / agentフォームを送信すると、会話はFinではなく元の担当者に戻ります。
ヒューマンインザループ中のSLAの動作
SLAの動作は、bot inboxが有効かどうか、およびExclude the time conversations spend in the bot inbox from SLA targetsがオンになっているかどうかの2つのワークスペース設定に依存します。
Bot inboxオン、SLAは保留
Finが人間のSLAに影響を与えずに動作することを望む場合、これが推奨設定です。
Loop in teammate / agent中はSLAは保留のままです。会話を一時的にチームメイトに割り当ててもSLAタイマーは開始されず、引き続きbot管理として扱われます。
SLAは恒久的な退出時にのみ開始されます。タイマーは会話がbot inboxを恒久的に離れたときに始まります。例えば、Finがエスカレーションした場合、チームメイトがTake overをクリックした場合、またはLoop in teammate / agentステップがタイムアウトした場合です。
Loop in teammate / agent中の手動再割り当てはSLAを保留のままにします。チームメイトがLoop in teammate / agentが有効な間に会話を他の人に再割り当てしても、SLAは保留のままです。
タイムアウトエスカレーションがSLAのカウントを開始します。タイムアウトしたLoop in teammate / agentステップはbot inboxからの恒久的な退出であり、その時点で保留されていたSLAが開始されます。
Bot inboxオン、SLAは保留されず、会話はすでに人間のチームメイトに割り当てられている場合
これらのすべてのシナリオでは保留はなく、SLAタイマーは適用された瞬間から動作します。
SLAタイマーは他の会話と同様に、SLAが適用された時点から動作します。
Loop in teammate / agentの割り当てはSLAの動作を変えません。SLAの目的では通常の割り当てと同様に扱われます。
ヒント:手順とLoop in teammate / agentを最適に利用するには、bot inboxを有効にし、‘Exclude the time conversations spend in the bot inbox from SLA targets’をオンにすることを推奨します。これにより、Finは人間のSLAを消費せずにできるだけ多くの作業を完了でき、チームメイトが引き継いだ後は既存のSLA動作が維持されます。
注意:ヒューマンインザループ中にチームメイトがTake overをクリックしたときに特定のSLAを適用するために別のWorkflowを作成した場合(例えば「Team assignment changed」や他の割り当て変更条件でトリガーされるもの)、そのWorkflowは発動しない可能性があります。Take overは管理レベルでのみ会話を再割り当てし、チームレベルではなく、IntercomのWorkflowエンジンはこの種の内部でbotが作成した再割り当てをWorkflowトリガーから除外しています。現在、代替策としての一般的な「Assignment changed」トリガーは利用できず、Fin Proceduresはまだ手順ステップとしてのApply SLAアクションをサポートしていません。上記のSLA保留設定が、引き継ぎ時にSLAを自動的に開始する信頼できる方法です。もしTake overの瞬間に特化したWorkflowが必要な場合は、会話を引き継ぐチームが手動でSLAを適用する必要があります。
ヒューマンインザループ中のチームメイトの非アクティブ状態
‘チームメイトが応答していない’Workflowsの動作は、会話がFin管理か、すでにチームメイトに割り当てられているかによって異なります。Loop in teammate / agentステップに到達した時点での状態によります。
Finに割り当てられた会話(bot inbox有効)
会話がレビューのために一時的にチームメイトに割り当てられても、‘チームメイトが応答していない’Workflowsはトリガーされません。会話は引き続きFin管理と見なされます。
Loop in teammate / agent中は非アクティブ状態のWorkflowsはトリガーされません。会話は引き続きbot管理と見なされるため、‘チームメイトが応答していない’ルールは発動しません。
恒久的に退出した後に非アクティブ状態のWorkflowsは再開します。会話がbot inboxを恒久的に離れると、非アクティブ状態の動作は通常に戻ります。
すでにチームメイトに割り当てられた会話(bot inboxなし)
Loop in teammate / agentに到達しても動作は変わらず、‘チームメイトが応答していない’Workflowsはこれまで通りトリガーされます。
シナリオ別のまとめ
すべてのLoop in teammate / agentの結果におけるSLA、チームメイトの非アクティブ状態、割り当ての動作は以下の通りです。
シナリオ | SLAの動作 | チームメイトの非アクティブ状態 | Loop in teammate / agent後の割り当て 応答 |
Bot inboxオン、SLA保留 | 保留中 — SLAは開始されません | Loop in teammate / agent中は抑制されます | Finに戻る(bot inbox) |
Bot inboxオン、SLA保留なし | SLAは通常通り動作します | Loop in teammate / agent中は抑制されます | Finに戻る(bot inbox) |
Bot inboxなし | SLAは通常通り動作します | 通常通りトリガーされます | 元の人間の担当者に戻る |
Loop in teammate / agentタイムアウト(どの設定でも) | SLA開始 — Finからの恒久的な退出 | 通常通りトリガーされます | Loop in teammate / agentステップのエスカレーションルールに従いエスカレーションされます |
チームメイトが「Take over」をクリック | SLA開始 — Finからの恒久的な退出 | 通常通りトリガーされます | 引き継いだチームメイトに割り当てられます |
解決状態
次の表は、各Loop in teammate / agentの結果に対する解決状態Finレコードと、その後の会話の流れを示しています。
シナリオ | 解決状態 | 次に起こること |
チームメイトが時間内に応答する | 通常の解決 | Finは一時停止した手順の続きから実行を続けます。 |
チームメイトが会話を引き継ぐ | 想定解決 | Finは停止します。会話はチームメイトに割り当てられ、人間の会話として続行されます。 |
タイムアウト内にチームメイトの応答なし | 引き継ぎ | Finは停止します。タイムアウトメッセージが顧客に送信され、会話は設定されたターゲット(チーム、チームメイト、またはworkflow)に引き継がれます。workflowの場合は次の処理を決定し、手順は再開されません。 |
Loop in teammate / agent とチームへの手順引き継ぎの違い
これら二つの機能は似ていますが、動作は異なります。
チームへの引き継ぎ:Finは応答を停止し、チームメイトがその時点から会話全体を引き継ぎます。
Loop in teammate / agent:Finは一時停止し、チームメイトの入力や判断を待ってから手順を再開します。チームメイトは貢献しますが、引き継ぐわけではありません。
顧客の視点では、Loop in teammate / agentは見えません — 会話は中断なく続きます。
















