How to Configure conversationOutcome in Copilot Studio for Better Analytics

Here are my detailed notes on how to end conversations and analyze outcomes in Copilot Studio.

スポンサーリンク

Analytics Session Outcomes

Conversational agents in Copilot Studio can record “conversation outcomes (analytics session results)” during interactions.
Copilot Studio analytics session outcomes interface showing conversation results
The types of outcomes are as follows:

  • Escalated: When the “Escalation” system topic is called or the “Transfer to Agent” node is executed
  • Resolved: When the “End Conversation” topic is called and the user enters the resolved branch
  • Abandoned: When the session times out and is neither “Escalated” nor “Resolved”

Note: A single conversation can contain one or more analytics sessions.
Note: Conversations that are not in the “Engaged” state (conversations in the “Unengaged” state) will be marked as “Not Engaged”

This time, I investigated how to record “analytics session outcomes” (referred to as “outcomes” below).

Preliminary Setup

To ensure our prepared topics are reliably called, we’ll turn off the generative AI responses.
Screenshot showing the generative AI response settings turned off in Copilot Studio

The “End Conversation” Node Alone Doesn’t Result in “Resolved” Status

For example, if you create a topic that calls the “End Conversation” action as shown below:
Topic configuration with End Conversation action
When you end the conversation using only this topic:
Conversation flow ending with the End Conversation action
The result will be marked as “Abandoned” (neither resolved nor escalated).
Analytics showing Abandoned outcome status

This happens because the conversation ended without explicitly specifying an outcome such as “Resolved” or “Escalated” within the topic (session), and the session subsequently timed out.

Below, I’ll introduce two methods to specify these outcomes.

Method 1: Redirect to the “End Conversation” Topic

The first method is to use the system topic “End Conversation”.
This is likely the standard approach, as officially documented:

Properly ending conversations to measure outcomes It’s important to end conversations with the End Conversation topic, which allows users to confirm whether their issue was resolved (and if escalation might be needed). When the agent confirms success, a CSAT survey is presented to the user and a score from 0-5 is collected.
If the conversation outcome is certain based on your topic logic, you can either directly flag it as success-confirmed or redirect to the escalate topic.
Official documentation here

Implementation is simple: when the conversation reaches a natural conclusion (where you want to segment your analytics), select [Topic Management] → [Go to another topic], then choose the system topic “End Conversation”.
Note: System topic “End Conversation” ≠ “End Conversation” node
Screenshot showing how to navigate to Topic Management and select Go to another topic
Screenshot showing the End Conversation system topic selection
Once this system topic is called:
Screenshot of the End Conversation system topic flow in action
The outcome will be recorded.
Note: It may take 30 minutes to 1 hour for the results to appear in the analytics tab.
Analytics tab showing the recorded conversation outcome

Method 2: Explicitly Specify conversationOutcome

The second method is to explicitly specify either “Resolved” or “Escalated”.

You can also set the outcome of actions using the conversationOutcome parameter in the action code editor. For example, use conversationOutcome: ResolvedConfirmed for confirmed success, and conversationOutcome: ResolvedImplied for implicit success.
From official documentation

To specify an outcome, first open the topic’s source code:
Screenshot showing how to access the topic source code in Copilot Studio
Then simply specify the conversationOutcome for the node where you want to set the analytics result (in this case, the “End Conversation” node).
Screenshot showing how to add the conversationOutcome parameter to the End Conversation node
When this topic is called:
Screenshot of the conversation flow using the modified topic
The outcome will be marked as “Resolved”.
Analytics showing the Resolved outcome status
Similarly, you can create a topic that ends with an escalation:
Screenshot showing the creation of an escalation topic
Specify “Escalated” for the conversationOutcome:
Screenshot showing how to set the conversationOutcome to Escalated
When this topic is called:
Screenshot of the conversation flow using the escalation topic
The “Escalated” count increases by one in the analytics.
Analytics showing the increased Escalated outcome count

Note: The values that can be specified are as follows:

conversationOutcome: Escalated
conversationOutcome: ResolvedImplied
conversationOutcome: ResolvedConfirmed
conversationOutcome: Abandoned

As such, when using “Analytics” to improve Copilot Studio, you need to pay attention to how conversations are ended.

Bonus: The System Topic “End Conversation” Also Sets conversationOutcome

The system topic “End Conversation” also sets conversationOutcome. If you click [Open Code Editor] to view the source:
Screenshot showing how to access the code editor for the End Conversation system topic
You can see that “Resolved” is configured.
Screenshot showing the ResolvedConfirmed conversationOutcome setting in the End Conversation topic code
Incidentally, if the user is not satisfied with the answer, the system topic “Escalate” is called:
Screenshot showing the Escalate system topic being called when a user is not satisfied
Looking at the source code of this system topic:
Screenshot showing how to access the code editor for the Escalate system topic
You can see that conversationOutcome is set to “Escalated”.
Screenshot showing the Escalated conversationOutcome setting in the Escalate topic code

Bonus 2: How to Check Session Outcomes

1. From Copilot Studio

To check from Copilot Studio, go to the [Analytics] tab, click [View details], then [Download sessions] to download a CSV file.
Screenshot showing how to download session data from Copilot Studio analytics
You can view the session outcomes and conversation content.
Screenshot of the downloaded CSV file showing session outcomes and conversation data

2. From Power Apps (Dataverse)

Copilot Studio conversation history is stored in the “ConversationTranscript” table:
Screenshot showing the ConversationTranscript table in Dataverse
By referencing this table, you can view detailed data such as the reason for ending (outcomeReason), number of events (turnCount), and other granular information.
Screenshot showing detailed conversation data in the Dataverse table

コメント

Copied title and URL