Embedded Power BI Reports in a Model-Driven App
Embedding Power BI reports directly into Dynamics 365 model-driven apps brings rich analytics into the applications where your teams already work. Instead of switching between CRM and BI tools, users can view interactive dashboards, drill into data, and make data-driven decisions without leaving their Dynamics 365 environment. At EPC Group, we have implemented embedded Power BI in model-driven apps for sales teams, service desks, and operations managers across Fortune 500 enterprises, delivering contextual analytics that drive measurable improvements in productivity and decision quality.
Why Embed Power BI in Model-Driven Apps?
Model-driven apps in Dynamics 365 (Sales, Customer Service, Field Service, etc.) are the primary workspace for many business users. These apps manage customer records, opportunities, cases, work orders, and other operational data. By embedding Power BI reports directly into these apps, you eliminate the context switching that occurs when users must navigate to a separate BI tool to understand trends, performance metrics, or anomalies related to the records they are working with.
The business impact is significant. Sales representatives can see pipeline analytics, win/loss trends, and customer engagement scores directly on the account or opportunity form. Customer service agents can view case resolution metrics, SLA compliance dashboards, and customer satisfaction trends alongside the case they are working. Operations managers can monitor KPIs on their main dashboard without opening a separate browser tab. This contextual analytics approach increases report consumption by 3-5x compared to standalone Power BI deployments.
Embedded Power BI reports in model-driven apps also inherit the security context of the app. Row-level security in Power BI can be configured to match Dataverse security roles, ensuring users only see data relevant to their business unit, team, or territory. This alignment between app security and BI security simplifies governance and eliminates the risk of data leakage through analytics.
How to Embed Power BI Reports: Step-by-Step
Microsoft provides native integration between Power BI and model-driven apps through several embedding methods. The most common approaches are:
Method 1: Power BI Dashboard Control on Forms. Add a Power BI report directly to an entity form (e.g., the Account form or Opportunity form). In the model-driven app designer or the classic form editor, add the Power BI control to a section of the form. Configure the control with the Power BI workspace and report IDs. The report renders inline on the form, filtered by the current record when configured with appropriate filter parameters.
Method 2: Power BI Dashboard on the Main Dashboard. Create a system dashboard or personal dashboard in Dynamics 365 that includes Power BI tiles or full reports. Navigate to Dashboards, create a new dashboard, and add Power BI visualizations from your workspaces. This provides a centralized analytics view that users see when they open the app, ideal for executive summaries and operational KPIs.
Method 3: Power BI Embedded via PCF Control. For advanced scenarios, build a PowerApps Component Framework (PCF) control that uses the Power BI JavaScript API to embed reports with custom interactivity. This approach provides the most control over the embedding experience, including programmatic filtering, event handling, and custom UI integration. Our developers use this method for complex enterprise implementations where standard embedding does not meet requirements.
Method 4: Power BI Tab in Model-Driven App. Use the app designer to add a dedicated Power BI page as a tab in your model-driven app's navigation. This creates a full-page Power BI experience within the app, similar to opening Power BI Service but without leaving the Dynamics 365 context. This is ideal for comprehensive analytics pages that do not need to be filtered by a specific record.
Filtering Reports by Record Context
The most powerful aspect of embedding Power BI in model-driven apps is contextual filtering. When a user opens an Account record, the embedded Power BI report can automatically filter to show only data for that specific account. This requires proper configuration of the filter connection between the Dataverse record and the Power BI report.
To enable contextual filtering, your Power BI dataset must contain a field that matches the entity's primary key or a unique identifier in Dataverse (such as Account ID, Contact ID, or Opportunity ID). When configuring the Power BI control on the form, map the entity field to the Power BI table and column. The report then automatically applies a filter matching the current record's ID.
For more complex filtering scenarios, such as filtering by related records (show all orders for the current account's contacts) or by calculated fields, use DAX measures in the Power BI dataset that accept filter parameters. The PCF control approach provides the most flexibility for passing multiple filter values from the Dataverse record to the Power BI report.
Our consultants always test filter behavior with edge cases: records with no matching data (the report should display a meaningful empty state), records with very large result sets (the report should perform well), and security boundaries (the report should respect RLS even when filtered by a specific record).
Prerequisites and Licensing Requirements
Successfully embedding Power BI in model-driven apps requires several prerequisites to be in place:
- Power BI Pro or Premium Per User license - Each user who views embedded Power BI content needs a Power BI Pro ($10/user/month) or Premium Per User ($20/user/month) license, unless the content resides in a Premium capacity workspace where free viewers are permitted.
- Power BI integration enabled - A Dynamics 365 system administrator must enable Power BI visualization embedding in the environment settings. Navigate to Settings > Administration > System Settings > Reporting tab and enable "Allow Power BI visualization embedding."
- Same Azure AD tenant - The Power BI workspace and the Dynamics 365 environment must be in the same Azure AD (Microsoft Entra ID) tenant. Cross-tenant embedding is not supported for model-driven app integration.
- Report published to Power BI Service - The report must be published to a workspace in the Power BI Service. You cannot embed reports directly from Power BI Desktop (.pbix files) into model-driven apps.
- Appropriate Dataverse security role - Users need a Dataverse security role that includes access to the entity records and the Power BI visualization privilege.
Best Practices for Enterprise Deployments
Based on our experience deploying embedded Power BI across dozens of model-driven app implementations, we recommend the following best practices:
- Keep embedded reports focused - An embedded report on a form should answer 2-3 specific questions about the current record. Do not try to embed a full analytical dashboard. Use a dedicated Power BI tab in the app for comprehensive analytics.
- Optimize for load time - Embedded reports add to the form load time. Use import mode (not DirectQuery) for embedded reports, minimize the number of visuals on the embedded page, and keep dataset sizes manageable. Aim for sub-3-second load times.
- Align security models - Ensure Power BI row-level security roles match Dynamics 365 business unit and team structures. Users should see the same data scope in embedded reports as they see in the Dataverse views. Misalignment causes confusion and potential data exposure.
- Use bookmarks for state management - Power BI bookmarks can capture specific filter states and visual configurations. Use bookmarks to create predefined views that users can toggle between within the embedded report.
- Monitor performance - Use the Power BI Premium Capacity Metrics app to monitor the performance of embedded report renders. High latency or throttling indicates that the capacity needs scaling or the report needs optimization.
Why Choose EPC Group for Power BI and Dynamics 365 Integration
With 28+ years of enterprise Microsoft consulting experience, EPC Group brings deep expertise in both Power BI analytics and Dynamics 365 platform development. Our consultants understand the Dataverse data model, model-driven app customization, Power BI data modeling, and the integration points between these platforms. This dual expertise is essential for delivering embedded analytics that are technically sound and operationally valuable.
We have implemented embedded Power BI in model-driven apps for healthcare organizations tracking patient outcomes alongside clinical workflows, financial services firms monitoring portfolio performance within their CRM, and manufacturing companies visualizing supply chain metrics on work order forms. Each implementation is tailored to the specific business context and security requirements of the organization.
Need Power BI Embedded in Your Model-Driven App?
Contact EPC Group to design and implement contextual Power BI analytics within your Dynamics 365 environment. Our consultants handle report design, embedding configuration, security alignment, and performance optimization.
Frequently Asked Questions
Does every user need a Power BI license to see embedded reports?
Yes, unless the Power BI content is hosted in a Premium capacity workspace. With Premium, users with a free Power BI license can view embedded content. Without Premium, each user needs a Power BI Pro ($10/month) or Premium Per User ($20/month) license. Since most Dynamics 365 users already need Microsoft 365 licenses, adding Power BI Pro is often a marginal cost increase that delivers significant value.
Can I embed Power BI reports in canvas apps as well?
Yes. PowerApps canvas apps include a native Power BI tile control that embeds Power BI reports and dashboards. The canvas app Power BI control supports filtering by app context, making it possible to build custom apps that combine Power BI analytics with PowerApps functionality. Canvas apps offer more layout flexibility than model-driven apps for the embedded analytics experience.
How do I filter the embedded report to show only the current record's data?
When adding the Power BI control to a form, configure the filter parameter to pass the current record's primary key (e.g., Account ID) to the Power BI report. The report must have a matching field in its dataset (e.g., an AccountID column in a table). Power BI automatically filters the report to show only rows matching the passed value. For the PCF control method, you can pass multiple filter parameters programmatically for more complex filtering scenarios.
Will embedded reports slow down my Dynamics 365 forms?
Embedded Power BI reports do add to form load time, typically 1-3 seconds depending on report complexity and data volume. To minimize impact, optimize the embedded report (reduce visuals, use import mode, keep datasets small), place the Power BI control in a tab that is not the default tab (so it loads only when the user clicks on it), and ensure adequate Power BI capacity. Our consultants performance-test every embedded report to ensure acceptable load times.
Can users interact with the embedded report or is it view-only?
Users can fully interact with embedded Power BI reports, including clicking on data points to cross-filter, using slicers, hovering for tooltips, and drilling down/up through hierarchies. The interactive experience is nearly identical to viewing the report in the Power BI Service. The main limitation is that users cannot enter editing mode or modify the report from within the model-driven app; report editing must be done in Power BI Desktop or the Power BI Service.