What it does
Contact Center historical analytics now sits on the Shared Analytics Platform: a dimensional model of aggregate, fact and dimension tables that feeds the Conversation, Queue, Agent and Voice dashboards. Microsoft has also documented four ways to build on it: use the built-in reports, restyle them with the embedded Power BI editor, customise the Power BI data model, or shortcut the processed tables into Microsoft Fabric. You pick the least complex option that covers the requirement.
Key facts
- An admin turns historical analytics on in Copilot Service admin center under Operations > Insights > Report settings > Contact Center historical analytics. Voice has its own Add historical analytics for voice option on the same page. Dashboard data arrives within 24 hours of enabling.
- Roles that can enable it: System Administrator, Omnichannel Administrator, Omnichannel Supervisor or CSR Manager.
- The model has three table types. Aggregate tables hold preaggregated counts for dashboards (
AggConversation,AggQueuePerformance,AggAgentPerformance,AggAgentAvailability,AggAgentCapacity,AggVoiceConversationInsights,AggBotSession). Fact tables hold the detail (FactConversation,FactSession,FactQueueSegmentand so on). Dimension tables supply filters and grouping. - Fact and aggregate tables are partitioned by date. Timestamps are UTC, and
DimTimeZonehandles local-time conversion. - Visual-only changes (pages, charts, filters, themes) need the Analytics Report Author role and apply organisation-wide once published.
- Power BI data model customisation provisions managed workspaces, a default semantic model and editable copies of the Conversation, Agent, Queue and Voice reports. It is opt-in, and you need a separate customer workspace per Dynamics 365 environment.
- A Fabric shortcut gives you tables only: no relationships, no measures, no report copies. Creating one needs separate entitlement and onboarding for the processed analytics tables, plus a customer-owned workspace and lakehouse.
- A Dataverse shortcut (via Link to Fabric, optionally with a service principal) brings source tables such as
incidentinto Fabric. It does not give you the processedAgg*tables. - Link to Fabric consumes Dataverse storage, and synchronised tables show as
entityName-Analyticsin capacity details.
When to use / skip
Stay on the built-in dashboards until someone can name a measure they can't get. Restyle with the visual editor if the problem is presentation. Move to the Power BI data model only when you need your own DAX or extra data in a composite model. Go to Fabric when a data engineering team genuinely wants the tables for notebooks, SQL or a customer-owned semantic model, and accept that you're now owning the whole downstream solution.
Configuration decisions
- Which of the four routes, and who owns it afterwards. The lifecycle of anything beyond the built-in reports is yours: access, capacity, refresh, testing and updates.
- Customer workspace layout: one per environment, with the managed semantic model treated as read-only and custom measures kept downstream.
- For Fabric: workspace identity or service principal for the connection. Workspace identity avoids a client secret to rotate, which is the better default.
- Which source Dataverse tables to link, since each one costs storage.
Gotchas
- The enabled toggle and the customisation option are different things. Seeing the customisation option doesn't mean anything has been provisioned.
- A Fabric shortcut isn't created by the Power BI customisation setup. They're separate capabilities with separate permissions.
- The expanded bot dashboard model references tables and columns (
AggConversationBotOutcome,AggCustomerSupportJourney,BotTopicKeyand others) that the baseline pipeline schema doesn't generate. Confirm what your environment actually exposes before building anything against them. - Participation counts in the bot model aren't additive across bots or topics. Use the model's routed conversation measures.
- Microsoft can update the managed semantic model underneath you. Source schema changes also flow through a shortcut into downstream queries.
- Deleting the Entra app registration doesn't remove the Dataverse application user. Clean up both, and track the client secret expiry.
- Moving a report between environments means repointing it to the destination's managed semantic model first. Check lineage view.
Consultant notes
- Clients ask for "the data in Fabric" in week one of the project. Ask what question they can't answer today. Nine times out of ten the Conversation and Queue dashboards already answer it, and nobody has looked.
- If you do go the Power BI customisation route, agree the workspace, security group and capacity owner before go-live. The usual failure is a perfectly good custom report with nobody licensed or empowered to refresh it.
- Fabric shortcuts are read-only and schema changes flow through. Put a compatibility test in the release checklist, otherwise a Microsoft update breaks a finance dashboard and you hear about it from the CFO.
- Budget Dataverse storage for Link to Fabric early. Linking everything "just in case" is how capacity warnings turn up three months later.
Revisit when the processed analytics tables become generally available for Fabric shortcuts, or when the expanded bot tables join the baseline schema.