シミュレーションによりFin手順を検証し、オートメーションへの信頼を築き、顧客に影響が出る前に問題を発見できます。会話全体をモデル化することで、シミュレーションはキャンセルや払い戻しなどの大量または複雑なシナリオを確実に処理する手助けをします。
手間のかかる手動チェックに代わるよう設計されたシミュレーションは、ビジネスロジックの変化に伴うFinの挙動の問題や段階的な変化を特定するのに役立ちます。
シミュレーションへのアクセス
シミュレーションはProcedureのテストパネル内にあります。アクセス方法:
テストしたいProcedureを開きます。
キャンバスの右上にあるTestをクリックします。
右側パネルでSimulationsタブを選択します。
注:シミュレーションにアクセスするには以下のpermissionsが必要です:
"Can manage workspace data",
"Can access lead and user profile pages" and
"Can access lists of people, companies, and accounts".
Simulationsボタンが反応しない場合は、Settings > Workspace > Teammatesでこれらの権限が有効になっているかワークスペース管理者に確認してください。
シミュレーションはインテントマッチングをバイパスします。Previewやライブ会話とは異なり、シミュレーションは「このProcedureを使用するタイミング」指示を確認せず、Procedureが既にトリガーされたものとして直接実行します。これにより、シミュレーションは実行ロジックを単独でテストするのに最適です。
重要:
Previewは顧客向けの体験を完全に表示します。Procedureが公開中に使用すると実際の顧客にメッセージが表示される可能性があります。
Simulationsは顧客向けの出力を行わずバックグラウンドでProcedureを実行するため、公開前にロジックを検証する最も安全な方法です。クイックチェックにはPreviewを使用し、公開前には必ずSimulationsを使用してください。
シミュレーションの作成
AI生成の提案を使ったクイックスタート、またはシナリオを手動で定義して完全にコントロールする、の2通りの方法でシミュレーションを作成できます。
AI生成シミュレーション:これらは指示に基づいて一般的または予想される顧客シナリオを素早くカバーするために使用します。Fin AIは時間を節約する"ready-made"なスターターテストを生成します。
手動シミュレーション:データの精密な制御、特定のエッジケース、またはロジックの特定の分岐をテストする場合に使用します。
AI生成シミュレーション
指示に基づいて、Fin AIは"ready-made"なスターターテストを生成し、素早く"ready-made"シミュレーションを作成するのに役立ちます。
Procedureの右側パネルでSimulationsタブを開きます。
Suggested for these instructionsの下で、提案されたシナリオのリスト(例:"完全なキャンセル要求")を確認します。
提案の横にあるPlay iconをクリックすると即座に実行されます。
シミュレーションが作成されるか提案から承認されると、リストに表示されます。保存されたすべてのシミュレーションを一度に実行するには、Run allをクリックします。
手動作成のシミュレーション
Procedureの指示に基づいて特定のエッジケースをテストするために、最初からシミュレーションを構築することもできます。
Simulationsタブで+ Newをクリックします。
シミュレーション名:わかりやすいタイトルを付けます。
Simulate as: パーソナライズをテストするために特定のuserまたはブランドを選択します。ワークスペース内の実際のusersのドロップダウンリストから選択できます。
Customer's opening message:顧客が送る最初のメッセージを入力します(例:「注文について助けが必要です」)。エラーのスクリーンショットなどの画像を添付して、Finが視覚的なコンテキストをどのように扱うかをテストできます。
Additional details:顧客の状況や取った特定の行動に関するガイダンスを提供します。
チャネルを選択
シミュレーションでは、このシミュレーションでFinが使用するチャネルを選択できるため、Finの挙動をテストできます。シミュレーションを実行する前にチャネルのドロップダウンでMessengerとEmailを切り替えてください。
注:Finはチャネルによって挙動が異なります。Emailでは、Finは複数の情報を単一の応答にまとめ、複数のメッセージを送信する代わりにまとめて送信します。ガイダンスとコンテンツのターゲティングもチャネルごとに設定できます。例えば、Emailの応答はよりフォーマルな口調や特定の導入文を含めるよう設定できます。
利用可能なデータを定義する
Customer data available to Finセクションでは、テスト中にFinがアクセスできるデータを定義できます。これは、あいまいな説明に頼るのではなく、正確なデータ値に対してテストしていることを保証します。
Simulation time:このシナリオが「いつ」発生しているかを定義するために使用します。特定の日付と時刻を設定することで、顧客が30日間の返金期間内にいるかどうかなど、時間に敏感なロジックをテストできます。
Attributes and Data Connectors:このセクションは、Procedureで参照されている属性で事前に入力されます。これらの値を更新して(例:
People.Planを"Pro"に設定)異なる分岐結果をテストします。
注:シミュレーションを正確に実行するには、Finが「知っている」べきタイミングに基づいてデータを配置してください:
属性を使用する:Finが会話の開始時に既に情報を知っているはずの場合(例:顧客の現在のPlanや登録日)。
追加の詳細を使用する:情報が会話の途中で顧客によって提供されることになっている場合(例:顧客がフォローアップの応答で"Order ID"を提供する)。これにより、Finがそのデータを正しくキャプチャして属性に保存するかどうかをテストできます。
注:
Data Connectorsはシミュレーションで実際のuserデータを使用しません。外部システムを呼び出す代わりに、FinはCustomer data available to Finセクションで定義したテスト値を使用します。テスト中にFinに使用させたい値でData Connectorのフィールドを必ず埋めてください。そうしないとコネクタは空の結果を返します。
Customer data available to Finセクションは、Procedureの指示またはコードブロックで明示的に参照されている属性のみを表示および保持します。+ Add attributeボタンで属性を手動で追加しても、その属性がProcedureのどこにも参照されていない場合、システムは保存しません — シミュレーションを保存すると消えます。永続するカスタム値を追加するには、まずその属性がProcedure自体で使用されていることを確認してください。
Finの振る舞いを評価する
テストが合格するために満たす必要がある基準を定義します。+ Add criteriaをクリックして選択してください:
Fin reply: 会話中にFinが何を(または何をしないか)指定します。
Attributes: 属性が設定されたか、設定されていないか、特定の値と等しかったか、等しくなかったかを検証します。
Data connector: コネクタがトリガーされたか、トリガーされていないか、正確にX回トリガーされたかを検証します。
Instruction outcome: 会話が完了した、チームメンバーに引き継がれた、別のProcedureに切り替わったなど、特定の結論に達したかどうかを確認します。
Once configured, click Save.
Note: Saveをクリックすると、FinはシミュレーションフォームをAIでレビューします。指示が不明確、または成功基準が不整合な場合、テストを改善するための推奨が表示されます。
シミュレーションカバレッジのベストプラクティス
シミュレーションを最大限に活用するには、次の原則に基づいてテストスイートを構成してください:
Test one branch per simulation. Procedureに条件や複数の経路を持つサブプロシージャがある場合は、各分岐ごとに別々のシミュレーションを作成してください。これにより回帰安全網が構築されます — 将来の編集で特定の経路が壊れた場合、すぐに検出できます。
Cover both success and failure paths for Data Connectors. コネクタが有効なデータを返す場合のシミュレーションと、何も返さないか失敗する場合のシミュレーションを実行してください。これによりフォールバックロジック(例:空の応答を処理する
@Conditionステップ)が正しく機能することを検証できます。Run all simulations before publishing changes. Procedureを編集した後、公開前にRun allをクリックしてテストスイート全体を再実行してください。新たに失敗したシミュレーションは、編集によって導入された回帰を示します。
Use descriptive simulation names. 各シミュレーションに、そのシナリオを表す名前(例:「Full refund — within 30 days」や「Cancellation — no order found」)を付けてください。これにより結果を確認する際に、どのテストがどの経路をカバーしているかが分かりやすくなります。
テスト戦略:ハッピーパス、リスクパス、エッジケース
バランスの取れたシミュレーションスイートは3種類のシナリオをカバーします。これらは合わせて、Procedureが通常の条件下で正しく動作し、障害を適切に処理し、顧客の予期しない行動でも壊れないことを保証します。
Happy path
ハッピーパスは理想的で途切れのないフローを示します — 顧客が正確な情報を提供し、FinがProcedureを正常に完了するためのすべての条件を満たす場合です。まずここから始めてください。ハッピーパスが失敗すると、より複雑な経路のデバッグが非常に困難になります。
Example: 顧客が30日以内に返金を要求し、有効な注文IDを持ち、Data Connectorが注文の詳細を返します。Finは返金を処理し、1回のやり取りで確認します。
Risk path
リスクパスは、本番環境で最も問題が発生しやすいシナリオをテストします — 通常は外部データが欠落している、条件が満たされていない、またはフォールバック経路が発動する場合です。これらのテストは、顧客が不正確または不完全な応答を目にするのを防ぎます。
Examples: Data Connectorが注文を返さない(Finが顧客に注文IDを尋ねるかをテスト)。顧客が返金期間外である(Finが正しいポリシーを伝え、適切な引き継ぎを提案するかをテスト)。Conditionステップが評価する属性が空である(Finのフォールバック経路が正しく発動するかをテスト)。
Edge cases
エッジケースは珍しいまたは境界条件の入力をカバーします。これらは技術的には有効だが稀です。時間に依存するロジック、数値の閾値、自由形式の顧客入力があるProcedureでは特に重要です。
Examples: 顧客がちょうど30日目に返金を要求する(期間の境界)。顧客が複数のインテントに一致する曖昧な冒頭メッセージを送る。顧客が予期しない形式で注文IDを提供する、または余分なテキストを含める。
Tip: 各テストが属するカテゴリを示すために、説明的なシミュレーション名を使用してください — 例:「Refund — happy path」、「Refund — no order found (risk)」、または「Refund — boundary day 30 (edge)」。これによりカバレッジのギャップを一目で見つけやすくなります。
実行と結果の確認
テストを実行すると、右側のTestsパネルにステータスインジケータ付きで表示されます:
Running: テストが実行中です。
Passed: テストが実行され、定義された成功基準をすべて満たしました。
Failed: テストは実行されたが、定義された成功基準を満たしませんでした。
Queued: テストは開始されましたが、前のシミュレーションが終了するのを待ってから実行されます。
結果を調査するには、See conversationをクリックしてください。これにより、シミュレートされた顧客とFinとの間の完全なやり取りのトランスクリプトが開き、フローがどのように進行し、テストが合格または失敗した理由が簡単に分かります。
失敗したシミュレーションのデバッグ
シミュレーションがFailedとマークされた場合、See conversationで参照できるトランスクリプトには根本原因を特定するために必要なすべてが含まれています。効果的に読む方法は次のとおりです:
Fin's thoughts
会話の各ステップで、Finの推論を展開して、顧客のメッセージをどのように解釈したか、どのProcedureステップを実行していたか、どのような判断を下したかを確認してください。Finが予期しない経路を取った場合、Fin's thoughtsは通常、解釈があなたの意図とどこで乖離したかを正確に示します。属性や条件に対するFinの解釈が期待と一致しないステップを探してください。
Conversation events
トランスクリプト内に会話イベントがインラインで表示され、属性の更新、Data Connector呼び出し、引き継ぎトリガーなどの低レベルなアクションを示します。これらを使用して、適切なコネクタが適切なタイミングで発火したか、各分岐ステップの前に属性が期待どおりに設定されていたかを検証してください。
Pinpointing the failure
Fin's thoughtsと会話イベントで見たものを定義された成功基準と照合してください。一般的なパターンはConditionステップが間違った分岐を評価することで、通常は属性が空であるか予期しない値を持っていることが原因です。シミュレーション実行前に必要な属性がすべて設定されていることを確認するために、Customer data available to Finの設定を確認してください。
Tip: 原因を特定したら、Procedureまたはシミュレーションの設定を調整し、同じシミュレーションでRunをクリックしてすぐに再テストしてください。新しいシミュレーションを作成する必要はありません — 既存のものは設定を保持します。
シミュレーション使用制限
毎月実行できるシミュレーションの数には制限があります。この制限はワークスペースレベルで適用され、毎月のカレンダーの最初の日にリセットされます。
各ワークスペースには月ごとのシミュレーション実行の割当があります。割当はワークスペースの会話ボリュームセグメントに基づき、顧客が大きいほど割当は増えます。
Simulation allowance is based on your workspace’s conversation volume in Intercom.
私たちは前月の会話数を使用してワークスペースをセグメントに割り当てます。
毎月セグメントは再評価され、割当は直近の月の会話ボリュームを反映します。
会話量が増減した場合、次の月のサイクルでSimulation割当が変更されることがあります。
Conversation Volume Segment | Simulation Limit per month |
Under 1K | 250 |
1K–15K | 1,000 |
15K–100K | 1,750 |
100K–1M | 5,000 |
1M+ | 12,500 |
使用状況の監視
テストを管理しやすくするため、Simulationsタブ内に視覚的な指標をFinが表示します:
使用状況警告
ワークスペースが月間上限の80%に達すると、黄の警告バナーが表示されます。現在の使用量(例:「85/100」)とリセット日時が表示されます。
上限に達しました
月間上限の100%に達すると、赤のエラーメッセージが表示されます。次の月の開始までシミュレーションを実行できません。
注:上限に達しても、「See conversation」をクリックすれば過去のシミュレーション結果やトランスクリプトを確認できますが、RunとRun allボタンは無効になります。
よくある質問
シミュレーションは実際のAPIや外部データとやり取りしますか?
シミュレーションは実際のAPIや外部データとやり取りしますか?
いいえ。Previewツールとは異なり、シミュレーションは実際のAPIや外部システム(ShopifyやStripeなど)にアクセスしません。シミュレーション中に外部APIのデータを読み取ったり変更したりすることはできません。これにより、実データに影響を与えずに安全にロジックをテストできます。
なぜ手動テストではなくSimulationsを使うのですか?
なぜ手動テストではなくSimulationsを使うのですか?
Simulationsは、Proceduresを大規模に検証し、複雑でリスクの高いシナリオでもFinが確実に動作することを確認できます。手動テストは簡単なスポットチェックや設定確認に適していますが、Simulationsは予期せぬ挙動を早期に発見するのに役立ちます。
シミュレーションが失敗した場合はどうなりますか?
シミュレーションが失敗した場合はどうなりますか?
失敗したシミュレーションは全体を確認できます — シミュレートされた会話を開いてFinが期待通りに動かなかった理由を把握し、Procedureを調整して顧客に影響を与えずに再実行できます。
Finが問題を正常に解決したのにシミュレーションが「Failed」と表示されるのはなぜですか?
Finが問題を正常に解決したのにシミュレーションが「Failed」と表示されるのはなぜですか?
Finが問題を解決しているのに「Failed」と表示される場合、通常は成功基準が厳しすぎます。例えば「Ask for an Order ID」を要求しているが、Finが自動でIDを見つけたため質問をスキップすると、テストは失敗します。最終結果(例:「Procedure finished」)に焦点を当て、中間ステップを必須にしないよう基準を更新してください。
Finがシミュレーションの途中で止まります。なぜ詰まるのですか?
Finがシミュレーションの途中で止まります。なぜ詰まるのですか?
Finは、People.signed_upのように空の変数をチェックするなど、指示の「行き止まり」に当たると止まることがよくあります。データが欠けている場合の対処を指示していないと停止します。例えば「変数に値があるか確認し、空の場合は顧客に日付を尋ねる」といったフォールバックプランを用意してください。
「Sign up dates」や「Order history」のようなテストデータはどこに入力すべきですか?
「Sign up dates」や「Order history」のようなテストデータはどこに入力すべきですか?
サインアップ日や注文履歴などのテストデータは、シミュレーション設定のCustomer data available to Finセクションに入力してください — 顧客の開始メッセージや追加詳細フィールドには入力しないでください。Finが見落とす可能性があります。テストする特定の属性や変数に正確な値(例:2024-06-01)を入力してください。
実際の環境ではツールが動作するが、シミュレーションでは失敗します。なぜですか?
実際の環境ではツールが動作するが、シミュレーションでは失敗します。なぜですか?
シミュレーションは外部システムから実データを取得しないため、Data Connectorは実際の会話でのようにライブ結果を返しません。コネクタが実際の会話で動作するのにシミュレーションで失敗する場合は、Customer data available to Finセクションに期待される戻り値をテスト値として定義していない可能性があります。コネクタが通常返すデータをここに追加して再実行してください。
SimulationsはProceduresとは別に請求されますか?
SimulationsはProceduresとは別に請求されますか?
SimulationsはProceduresに含まれており、別項目で請求されません。シミュレーションを実行しても追加料金は発生しません。
なぜEmailでProcedureをテストするべきですか?
なぜEmailでProcedureをテストするべきですか?
EmailでProcedureをテストすると、Messengerと異なるチャネル固有の挙動を検証できます。Emailでは複数の情報を1通のメールにまとめて送るなどの違いがあります。ガイダンスやコンテンツもチャネルごとに調整でき、例えばEmail応答はよりフォーマルな口調や特定の導入文を含めるよう設定できます。Email会話をシミュレートしてこの挙動を検証し、自信を持ってEmailにデプロイできます。
なぜシミュレーション実行数に上限があるのですか?
なぜシミュレーション実行数に上限があるのですか?
各シミュレーション実行は正確なAI予測を生成するためのリソースを必要とします。ワークスペースが標準的なユースケースで自由にProceduresをテストできるよう、また極端な使用がコストの暴走を招くのを防ぐために月間の割当を提供しています。
サブプロシージャを独立してシミュレートできますか?
サブプロシージャを独立してシミュレートできますか?
できません。サブプロシージャには独自のシミュレーションパネルがなく、単独で実行できません。サブプロシージャをテストするには親のProcedureでシミュレーションを実行し、該当する分岐がサブプロシージャを呼び出すようシナリオ(顧客メッセージ、属性、追加詳細)を設定してください。
同じ親内に複数のサブプロシージャがある場合、それぞれを呼び出すシナリオをカバーする別々のシミュレーションを作成してください。
Data Connectorがシミュレーションで空の結果を返します。どうすればいいですか?
Data Connectorがシミュレーションで空の結果を返します。どうすればいいですか?
シミュレーションでData Connectorが空の結果を返すのは、通常テストデータが不足していることが原因です。シミュレーションは外部システムからライブデータを取得しないため、Data Connectorが返すはずの値をCustomer data available to Finセクションに定義する必要があります。該当するData Connectorフィールドに使用したいテスト値が入力されているか確認してください。
意図的に「コネクタが何も返さない」経路をテストしている場合、これは期待される挙動です — そしてまさにテストすべき内容です。Procedureにコネクタの空応答を処理するフォールバックの@Conditionステップがあることを確認してください。
コネクタが実データのあるユーザーでも空を返す場合、テスト連絡先に外部システムの顧客識別子に一致する有効なexternal_idがあるか確認してください。
月に何回シミュレーションを実行できますか?
月に何回シミュレーションを実行できますか?
月間のシミュレーション実行上限は、前月のIntercomにおけるワークスペースの会話量によって決まります。上限はワークスペース単位で適用され、毎月1日にリセットされます:
会話量セグメント | 月間シミュレーション上限 |
1K未満 | 250 |
1K–15K | 1,000 |
15K–100K | 1,750 |
100K–1M | 5,000 |
1M+ | 12,500 |
シミュレーションの利用上限はいつリセットされますか?
シミュレーションの利用上限はいつリセットされますか?
シミュレーションの割当は、参加時期や使用済みシミュレーション数に関係なく、各暦月の初日にリセットされます。未使用の実行は繰り越されません — 割当は毎月新たに開始されます。
シミュレーションの利用上限を増やせますか?
シミュレーションの利用上限を増やせますか?
シミュレーション上限はワークスペースの会話量に基づき自動的に設定され、各暦月の開始時に再評価されます。会話量が増加すれば、次の月次サイクルで割当が増えます — 追加の実行を手動で購入したり、このティア制度の外で上限を増やすオプションはありません。月のリセット前に上限に達した場合でも、過去のシミュレーション結果やトランスクリプトは確認できますが、「Run」および「Run all」ボタンは割当がリセットされるまで無効になります。









