In this article, lets learn how to embed a Power BI Dashboard in a Model Driven App (MDA). We will cover:
- Setting up report parameters in Power BI Desktop.
- Publishing the report to a Power BI Workspace.
- Configuring the report refresh cadence.
- Sharing the report with your team.
We use the Copilot Agent Kit (CAK) Conversation KPI report as our example. The same steps work for any Power BI report you want to embed in your own MDA.
The Copilot Agent Kit (CAK) is a comprehensive set of capabilities designed to augment Microsoft Copilot Studio. CAK has Conversation KPI feature designed to help makers track and analyze the performance of their custom agents.
What is the Conversation KPI dashboard?
- A sample Power BI report bundled with Copilot Studio Kit.
- Reads aggregated KPI records from Dataverse (Users, Sessions, Conversations, CSAT, Resolution rate and more).
- Embedded inside the Kit Model Driven App (MDA) on the “Conversation KPI” page.
- Values in the report are auto-generated twice per day and can be triggered on demand.
Lets learn how to configure the Power BI dashboard and render it as an embedded report inside the Copilot Agent Kit model-driven app (MDA).
The steps in this article apply to any Power BI report you want to embed in an MDA.
Prerequisites
- Copilot Agent Kit installed in your environment. Follow Install Copilot Agent Kit if not done yet.
- Conversation KPIs.pbit file downloaded from the Kit GitHub release.
- Power BI Desktop installed on your machine.
- A Power BI Pro or Premium Per User (PPU) license (needed to publish and to consume the embedded report).
Once the prerequisites are in place, lets proceed with opening the report template in Power BI Desktop.
Configure the Power BI template with your Dataverse environment
- Launch Power BI Desktop and sign in with your Power Platform account.

- If a “Sign in to Power BI” dialog appears asking about the cloud, click Continue.
- GlobalCloud is the standard commercial Microsoft 365 cloud.

- Open the downloaded Conversation KPIs.pbit file.

- On some machines the template opens without prompting for the Environment URL parameter. In that case, every visual shows “Error fetching data”. That is expected because the Dataverse URL is empty.

- To set the Dataverse Environment URL parameter, click Home > Transform data > Edit parameters.

- Enter your Copilot Agent Kit Dataverse Environment URL without the
https://prefix and without a trailing slash. Click OK.

- Now that the parameter is set, lets refresh the data.
- Click Home > Refresh

- You will be asked to authenticate to the Dataverse OData feed. Select Organizational account in the left pane and click Sign in.

- Complete the sign-in with your Power Platform account, then click Connect.

- The refresh begins. First run pulls a lot of rows and can take a few minutes.

- Once the refresh completes, all visuals populate with real data.

Note: If the refresh fails with a “queries are blocked” Formula Firewall error, jump to the Troubleshooting section at the end, apply the fix, and come back here.
Now we have the report bound to Dataverse and rendering locally. Next lets create a Power BI workspace and publish the report.
Set up a Power BI workspace
- Head to https://app.powerbi.com. In the left nav, click Workspaces > + New workspace.

- Give the workspace a name (for example
CopilotStudioKit). Under Advanced > Workspace type select Power BI Premium Per-User (PPU). Click Apply.

Note: PPU is recommended because it supports scheduled refresh and embedded reports. Every user who later consumes the embedded dashboard also needs a PPU license, or the workspace has to sit on a Fabric or Premium capacity.
Workspace is ready. Lets publish the report to it.
Publish the report to the workspace
- Back in Power BI Desktop, save the file locally with Ctrl+S (this converts the .pbit into a .pbix).
- Then on the Home ribbon click Publish.
- Pick your
CopilotStudioKitworkspace as the destination and click Select.

- Wait for the “Publishing to Power BI…” progress to complete.

- Open the Power BI Workspace in the browser. You will see two new items, one Report and one Semantic model, both named “Conversation KPIs”.

Report is in the service. Before it can refresh on its own, the Semantic Model needs valid credentials.
Configure connections on the semantic model
The publish uploads the queries, but the semantic model in the service does not carry the Desktop credentials. We need to sign in again from the service.
- Click the Conversation KPIs row of type Semantic model. From the ellipsis (…) select Settings.

- Expand Data source credentials. You will see a “Failed to test the connection…” warning and three OData rows. Click Edit credentials on the first row.

- In the dialog set Authentication method to OAuth2 and Privacy level to Organizational.

- Click Sign in.
- Ignore the “You need to use SSL” banner. Click ‘Sign in’ again.

- Repeat the same for the second and third OData rows. All three should end up with green checks and the warning banner disappears.

Credentials are configured. Lets set a refresh schedule so the KPIs stay current.
Schedule the data refresh:
- Still on the semantic model Settings page, expand Refresh.
- Pick your local Time zone. Toggle Configure a refresh schedule to On and set Refresh frequency to Daily.
- Click Add another time and pick a slot (for example
6:00 AM). Click Apply.

- You should see a “Next refresh:” timestamp near the top of the Settings page. That confirms the schedule is saved.
Refresh is scheduled. Next lets capture the identifiers we need to wire the report into the Kit.
Get the workspace and report identifiers
- Open the published Conversation KPIs report by clicking the report row in the workspace.

- Look at the browser URL. It follows this shape:
https://app.powerbi.com/groups/<WORKSPACE-GUID>/reports/<REPORT-GUID>/...
- Copy both GUIDs. You will also need the display names, which are already known:
- Workspace name:
CopilotStudioKit - Report name:
Conversation KPIs
- Workspace name:
Keep these four values handy. We paste them into the Kit’s environment variable next.
Configure the report into the Copilot Agent Kit
- Open the Copilot Agent Kit model-driven app from Power Apps > Apps.
- On the Home, click on the Setup Wizard.

- In the Configure Environment Variables step, find Conversation KPIs Report. Paste the Power BI Workspace GUID, Name, Report details we captured previously:
{"group":{"id":"<WORKSPACE-GUID>","name":"<WORKSPACE-NAME>"},"component":{"id":"<REPORT-GUID>","name":"<REPORT-NAME>","type":"Report","embedUrl":"https://app.powerbi.com/reportEmbed"}}
For example:
{"group":{"id":"5b768f51-d723-475e-a219-2b9ce0a7d18c","name":"CopilotStudioKit"},"component":{"id":"1cd1a5fe-efd4-4866-a4cc-d46c4f42124e","name":"Conversation KPIs","type":"Report","embedUrl":"https://app.powerbi.com/reportEmbed"}}

- Click Next and complete the steps in wizard.
Environment variable is now set. Lets verify the report renders inside the MDA.
Open the dashboard inside the model-driven app
- Back in the Copilot Agent Kit MDA, click Conversation KPI in the left nav.
The report may not render as earlier environment variable value might have cached. Close all MDA tabs. Open a new InPrivate window. Sign in and reopen the Conversation KPI page
- The report renders with your real data.

Report is live. Last step is to give the rest of your team access.
Share the report with your team
Since the Power BI Workspace has been configured by you, by default, your teammates may not have access to the report. To share the report with others:
- Open the
CopilotStudioKitPower BI workspace, click Manage access > + Add people or groups. - Add an Entra security group (recommended) or individual users with the role Viewer. Click Add.

That completes the end-to-end configuration. Before we recap, here is one common error you may run into during the first refresh in Power BI Desktop.
Troubleshooting
- On the first refresh in Power BI Desktop, you may see: “13 queries are blocked by the following errors: Query ‘X’ references other queries or steps, so it may not directly access a data source. Please rebuild this data combination.”

- This is the Power Query Formula Firewall. It blocks queries that combine data across sources with mismatched privacy levels.
Note: Privacy Level settings are a Power Query safety feature. Relaxing them for the Kit template is safe because both the parameter and the OData source come from the same Dataverse environment.
To fix it:
- In the Power BI Desktop, go to File > Options and settings > Options.
- Under GLOBAL > Privacy pick Always ignore Privacy Level settings.
- Under CURRENT FILE > Privacy pick Ignore the Privacy Levels and potentially improve performance.
- Click OK and refresh again.

Summary
Here is what we did in this walkthrough:
- Opened the
Conversation KPIs.pbittemplate and bound it to the Dataverse Environment URL. - Refreshed the data with an Organizational OData connection and worked around the Formula Firewall.
- Created a dedicated Power BI workspace and published the report to it.
- Fixed the OData credentials on the semantic model and set a daily refresh schedule.
- Captured the Workspace and Report GUIDs and pasted them into the
Conversation KPIs Reportenvironment variable. - Verified the embedded dashboard inside the Copilot Agent Kit MDA (via InPrivate) and shared workspace access with the team.
For the official reference see Install Copilot Agent Kit – Configure the embedded Conversation KPI dashboard.
🙂



Leave a Reply