Custom analytics strategy
Copilot Studio provides comprehensive out of the box analytics that allow customers to understand a copilot's usage and key performance indicators.
Customers can view reports related to the following analytics:
- Performance and usage
- Customer satisfaction
- Session information
- Topic usage
- Billed sessions
However, there are often scenarios where you need to create or use custom analytics.
For example, you might need to:
- Share analytics with stakeholders or users.
- Report on conversation transcripts data for a period longer than the default last 30 days.
- Design a report not covered by out-of-the-box analytics.
There are a few ways you can take the analytics data recorded by Copilot Studio and use it in customized reports.
Copilot Studio analytics sample template report
To create custom analytics, our recommended approach is to start with the Copilot Studio analytics sample template report. The sample template report is a set of open-source assets, distributed through GitHub, which accelerates the time it takes to create a report that renders in Power BI.
Warning
The solution isn't part of the core Copilot Studio offering and requires configuration.
The sample report isn't supported by Microsoft, but you can raise issues in the GitHub repository to get help from the community.
Dataverse
Conversation transcripts data
The analytics shown in the Copilot Studio portal come from a data service residing within Copilot Studio. Usage data is also written to the associated Dataverse environment, in the conversation transcripts table.
Retention periods
By default, both sources have a data retention of 30 days, but customers can change the retention period for conversation transcripts in Dataverse.
Copilot Studio Dataverse tables
Copilot Studio uses the following tables for custom analytics in Dataverse:
- Chatbot (
Bot
). This table includes details of each copilot in an environment. The details are often a small amount of data. - Chatbot Subcomponent (
BotComponent
). This table lists the topics, entities, and dialogs associated with the copilot in your environment. The details are often a small amount of data. - Conversation Transcripts (
ConversationTranscript
). This table contains detailed conversation data for all the copilots in your environment. The size of the data in this table is related to the use of the copilot and can be large.
Azure Synapse Link for Dataverse (Azure Data Lake Storage Gen2)
When there's need to retain conversation transcripts longer than the default retention period, build custom metrics or dashboards. Our recommended approach is to export raw conversation transcripts data to a more cost-effective data store like Azure Data Lake Storage Gen2 using the Azure Synapse Link for Dataverse feature.
The export creates an incremental sync of configured Dataverse tables in the Azure data lake, using the Common Data Model format.
There are more steps you need to take, including what's configured in the base template:
- Create an Azure Data Lake Storage Gen2 and connect it to Dataverse.
- During configuration, select the ConversationTranscript table (Chatbot and Chatbot Subcomponent don't support incremental sync).
- Follow the guidance for setting up Power BI dataflows to process the incoming data.
Warning
By default, Azure Synapse Link for Dataverse mirrors the configured table data from Dataverse to the Azure data lake. Therefore, any record that gets deleted in Dataverse (for example, by the recurring bulk delete job that deletes conversation transcripts older than 30 days by default) will also be removed from the Azure data lake. To work around this, you can create copies or snapshots of your data in the Azure data lake, or you can configure the synchronization to use the append-only mode.
Power BI
The custom analytics solution template includes a Power BI report that processes the raw transcript data (using Power Query) into a report that matches the Copilot Studio default analytics.
In addition, users of the report have access to the following information:
- Data for all copilots in an environment.
- Data as far back as the feed provides (in Dataverse or in the Azure Data Lake Storage Gen2).
- Raw data tables extracted from the Conversation Transcript table data – which can be used to create custom reports.
- A transcript viewer, allowing users to see the actual conversations that occurred.
Warning
This a complex report that performs significant transformations on the base data. Customers with Conversation Transcript tables greater than 80 MB should look to use the Azure Synapse Link for Dataverse and Power BI dataflows version of the report.