Copilot Studioの会話の終了と分析(会話の結果)について詳しく調べたので、メモ。
分析セッションの結果

- エスカレーション済み(Escalated):システムトピック『エスカレーション』が呼ばれる、またはノード『エージェントへの転送』が実行されたとき
- 解決済み(Resolved):『会話の終了』トピックが呼ばれ、ユーザーが解決済みの分岐に入ったとき
- 破棄済み(Abandoned):セッションがタイムアウトし、「エスカレーション」でも「解決済み」でもないとき
※1 つの会話には1つ以上の分析セッションを含めることができる。
※エンゲージメントが「Engaged」状態になっていない会話(「Unengaged」の状態の会話)は、「関与なし」になる


今回はこの「分析セッションの結果(以降「結果」)」を記録する方法について調査。
事前準備

ノード「会話の終了」だけでは「解決済み」にならない



これはトピック(セッション)の中で、「解決済み」や「エスカレーション」といった結果が明示的に指定されずに会話が終了し、そのままセッションがタイムアウトしたため。
以降、この結果を指定する方法を2つ紹介。
方法1:『会話の終了』トピックにリダイレクトする
1つ目はシステムトピック『会話の終了』を使用する方法。
公式に以下のように書かれているため、たぶんこの方法が王道。
会話を適切に終了して成果を測定する
会話の終了 トピックで会話を終了し、ユーザーが問題が解決されたかどうか (およびエスカレーションする可能性があるかどうか) を確認できるようにすることが重要です。
エージェントが成功を確認すると、CSAT 調査がユーザーに表示され 0〜5 のスコアが取得されます。トピックのロジックに基づいて会話の成果が確実である場合は、成功確認済みとして直接フラグを付けるか、またはエスカレート トピックにリダイレクトできます。
公式はこちら
※システムトピック『会話の終了』≠ノード「会話の終了」



※分析タブに表示されるまで、30分~1時間ほどかかる。

方法2:明示的にconversationOutcomeを指定する
2つ目は明示的に「解決」または「エスカレーション」を指定する方法。
また、アクション・コード・エディタを使用して、conversationOutcome パラメータでアクションの結果を設定することもできます。 たとえば、確認された成功の場合は conversationOutcome: ResolvedConfirmed、暗黙の成功の場合は conversationOutcome: ResolvedImplied です。
公式より








※指定できる値は以下の通り。
conversationOutcome: Escalated conversationOutcome: ResolvedImplied conversationOutcome: ResolvedConfirmed conversationOutcome: Abandoned // Abandonedのみ未検証
ということで、Copilot Studioの改良に「分析」を使用したい場合は、会話の終了などにも気を使う必要がある。
おまけ:システムトピック『会話の終了』でもconversationOutcomeを設定している





おまけ2:セッションの結果の確認方法
1. Copilot Studioから


2. Power Apps(Dataverse)から


おまけ3:conversationOutcomeを設定する操作を、連続で呼び出すと



※数が6なのは、このテストの前に一度動作確認を行ったため。

コメント