5.1.4. The Copilot Studio Monitor Page in Detail
💡 First Principle: Every number on the Monitor page is the output of a definition, not a measurement. "Resolution rate" is not an opinion about whether the user went away happy — it is a specific state a session lands in under specific conditions. Architects who never learn the definitions misread the dashboard, and the exam tests the definitions directly.
Note on naming: this surface was called the Analytics tab and is now the Monitor page, reached from the top menu bar of an agent. Older training material (and some exam-prep content) still says "Analytics." They are the same surface; expect either name in a scenario.
Page anatomy:
| Section | What it contains |
|---|---|
| Summary | An AI-generated bulleted digest of key insights for the period, including a customer comments summary (preview) that clusters feedback and filters low-value comments |
| Overview | Headline KPIs, including average daily active users (DAU) and monthly active users (MAU) |
| Savings | Time and cost savings attributed to the agent and its tools |
| Custom metrics | Up to three business-specific metrics you define in natural language, tracked across sampled sessions |
| Effectiveness | Conversation outcomes, reactions (thumbs up/down), customer satisfaction, sentiment (preview), and a child/connected Agents list with call volume and success rate |
| Use | Themes, generated answer rate and quality, tool use, and knowledge source use |
Session states and outcomes — the definitions that get tested:
A session begins Unengaged the moment a user interacts with the agent or the agent sends a proactive message. It becomes Engaged only when real work starts, and what counts as "real work" depends on the orchestration mode:
| Orchestration mode | A session becomes Engaged when… |
|---|---|
| Classic | A custom topic is triggered directly by the user, or the Escalate, Fallback, or Conversational boosting topic fires |
| Generative AI | The user directly triggers a plan that includes a nonsystem topic, the Escalate or Fallback topic, a knowledge source, or a tool |
An engaged session then resolves to exactly one outcome:
| Outcome | Sub-type | Condition |
|---|---|---|
| Resolved | Resolved confirmed | The End of Conversation topic triggers and the user confirms success |
| Resolved implied | Classic: End of Conversation triggers and the user lets the session time out without confirming. Generative: the session times out with no remaining active plans | |
| Escalated | System intended | An automatic business rule the maker deliberately set fires (e.g. a transfer above $25,000) — expected, not a defect |
| System unintended | A maker-set failure threshold is exceeded (e.g. escalate after three failed attempts) — the user was stuck | |
| User requested | The user explicitly asked for a human | |
| Abandoned | — | An engaged session times out after 30 minutes without reaching Resolved or Escalated |
⚠️ Common Misconception: Abandoned means "the user gave up on the agent." It does not. Abandoned applies only to sessions that already reached the Engaged state — a user who opened the chat and typed nothing produces an Unengaged session, not an abandoned one. This is why abandon rate and drop-off are different numbers, and why a scenario describing "users leaving immediately" is an engagement problem, not an abandonment problem.
⚠️ Exam Trap: A session counts as Escalated when the Escalate topic triggers or a Transfer to agent node runs — whether or not a human ever picks up the conversation. An architect who reads escalation rate as "conversations a human handled" will overestimate contact-center load. Note also that System intended escalations are working as designed; only System unintended signals a broken experience. Lumping the three sub-types together is the single most common misreading of this dashboard.
Retention and latency — the operational constraints:
| Property | Value |
|---|---|
| Metric/analytics data retention | 360 days |
| Session details and transcripts | 28 days (downloadable within 29 days) |
| Delay before a completed session appears | Up to 1 hour |
| Conversation timeout | 30 minutes of inactivity (Telephony channel: 3 minutes after an End Conversation event) |
| Time zone | All timestamps are UTC |
⚠️ Exam Trap: Metrics live for 360 days but transcripts only 28. A scenario where an incident from four months ago must be investigated at the transcript level has no good answer after the fact — the correct response is a forward-looking one (export transcripts to Dataverse on a schedule), not "retrieve them from Monitor."
Two configuration gotchas that silently produce empty charts:
- Active user metrics (DAU/MAU) require authentication. They only populate if the agent is set to require authentication under Settings → Security → Authentication. An anonymous public agent will show no active-user data, and nothing on the page explains why.
- Test panel activity is excluded. Conversations you have with the agent in the Copilot Studio test pane never appear in Monitor. A team that "tested it all week" and sees an empty dashboard has not found a bug.
Access control — two roles, not one:
| Role | Grants |
|---|---|
| Analytics Viewer (agent sharing role) | View-only access to the Monitor page. Can be shared with individuals only, not groups |
| Bot Transcript Viewer (security role) | Access to the underlying conversation transcripts, user comments, and session drill-downs |
⚠️ Exam Trap: Granting Analytics Viewer alone lets a stakeholder see the charts but not read a single transcript, comment, or session drill-down. A scenario where an analyst "can see the dashboard but not investigate the failures" is describing a missing Bot Transcript Viewer role, not a licensing problem.
Two more distinctions worth holding:
- Topic-level Monitor is classic-mode only. The per-topic panel (Topic outcomes, total topic use, satisfaction trend) is available for agents in classic mode. Agents using generative orchestration have no per-topic view — you use conversation outcomes and themes on the Monitor page instead. A scenario asking how to find the worst-performing topic in a generatively orchestrated agent is testing exactly this.
- Satisfaction is a 5-point survey score, where 1–2 map to Dissatisfied, 3 to Neutral, and 4–5 to Satisfied. Sentiment (preview) is a different metric entirely — an AI analysis of a sample of sessions, reported as the percentage of sessions with negative sentiment. A rising sentiment number is bad news; a rising satisfaction score is good news.
Answer quality is likewise AI-assessed on a sample, labelling responses Good or Poor against completeness, relevance, and groundedness, with a reason attached to each Poor rating. Because it is sampled rather than exhaustive, it is a trend instrument, not an audit.
Transcripts are downloadable from Dataverse via the Power Apps portal, or as session chat transcripts in the Copilot Studio web app — but not from the Copilot Studio app in Teams. Tools can also set their own outcome explicitly with the conversationOutcome parameter in the tool code editor (for example conversationOutcome: ResolvedConfirmed), which is how a maker corrects an outcome the platform would otherwise infer wrongly.
Troubleshooting Scenario: An operations lead reports that their agent's dashboard shows a 62% resolution rate, but the contact-center team insists almost every conversation reaches a human. Both are right. The agent's Resolved implied count is inflated: under generative orchestration a session is marked Resolved implied whenever it times out with no active plans — including sessions where the user simply stopped replying after an unhelpful answer. The fix is to instrument explicitly: use the conversationOutcome parameter on tools that genuinely complete a task, add an End of Conversation confirmation step, and compare against the Escalated sub-type split rather than the headline resolution number.
Reflection Question: An agent shows a high abandon rate and a low engagement rate in the same period. Which of the two is the more urgent problem, and why does the definition of "Engaged" make the abandon rate the less informative of the two numbers here?