Almanac
Microsoft/power-biPower Platform

Consultant KB for Microsoft Power BI: semantic models, DAX and modelling, Power Query and dataflows, reports and visuals, the service and workspaces, capacity and performance, embedding and integration, governance and security, ALM and deployment, and licensing, plus cross-cutting decision guides. Scoped to Power BI, with Microsoft Fabric covered where it touches Power BI directly. Implementation notes, configuration decisions and the gotchas that bite on real projects. Populated by the daily author agent from the Power BI release plans, docs repo and product blog, plus the author's own consultant notes.

feature-power-bi-in-canvas-apps.mdv1 · history
CurrentApplies to EmbeddedUpdated last monthSource Microsoft Learn

What it does

The Power BI tile control drops Power BI content into a canvas app screen. Despite the name it can render a dashboard, a report or a single tile depending on which API version you put it in, and it can be filtered from app state.

Key facts

  • The control has two modes, set by the AllowNewAPI property, and the default is False. On False you pick a workspace, dashboard and tile through the designer, or supply a TileUrl. On True you paste any Power BI Embed URL into TileUrl and can embed a dashboard, report or tile.
  • AllowNewAPI = True isn't supported on Power Apps mobile or in some embedded hosts such as Teams and SharePoint, because the mobile player doesn't handle authenticating the Power BI URL request.
  • Filtering differs by mode. On the new API you use query string parameters in the URL. On the original API you append &$filter=<Table>/<Column> eq '<Value>' to TileUrl — one filter only, eq only, string columns only, pinned visualisation tiles only, and it breaks if table or column names contain spaces.
  • R and Python script visuals can't be filtered either way.
  • LoadPowerBIContent loads and unloads the content on demand. Microsoft's guidance is not to have more than three Power BI tiles loaded at once in an app.
  • PowerBIInteractions is a trade-off, not a toggle you can have both ways: True gives the user Power BI interactivity but suppresses the control's OnSelect; False gives you OnSelect but a static tile.
  • Sharing the app isn't enough. You must also share the dashboard the tile comes from, and the app respects Power BI permissions for that content.
  • The control isn't available in China and isn't supported on some GCC High and DoD environments.

When to use / skip

Reach for this when a canvas app needs a chart that already exists in Power BI and would be painful to rebuild — trends, aggregates over data the app doesn't connect to, anything with real modelling behind it. Skip it when the app has the data already, because a native chart control is faster, filterable properly and doesn't drag a second product into the licence conversation. Also skip it if the app is meant to be used on phones: the newer embedding mode doesn't work there, and the older one limits you to a single string equality filter, which is rarely what anyone actually wants.

Configuration decisions

  • Which API mode you commit to, since it decides mobile support and the entire filtering approach. Pick this before building, not after.
  • Whether the screen needs interactivity or a tappable tile that navigates elsewhere in the app — you can't have both on the same control.
  • How many tiles a screen carries, and whether you drive LoadPowerBIContent off screen visibility to keep the count down.
  • How the underlying dashboard gets shared alongside the app, and who owns keeping those two access lists in step.
  • Whether you're passing filter values from the app at all, given how narrow the original-API filter syntax is.

Gotchas

  • The default is the old API. Plenty of apps get built against the designer picker without anyone realising they've opted into single-filter, string-only, tile-only behaviour.
  • Users open the app, see empty space where the chart should be, and report it as an app bug. It's almost always that the Power BI dashboard wasn't shared.
  • Filters on the original API fail quietly when a column name contains a space. Computed fields in the report that concatenate or cast values are the usual workaround.
  • Three loaded tiles is a soft ceiling, and it's low. Apps that put a tile in a gallery row will crawl.
  • Embedding a Power BI URL directly in an iFrame-style control isn't supported on Power Apps mobile at all, so a design that works beautifully in the browser can be dead on a tablet.

Consultant notes

  • Ask the "does this need to work on a phone?" question first. It eliminates one of the two modes immediately and saves a rebuild.
  • Be honest that this is the least polished of the Power BI embedding surfaces. If the client wants a rich embedded analytics experience, a model-driven app dashboard or a proper embedded application will serve them better.
  • Two products, two permission models, one user complaint. Make sure someone owns keeping app sharing and dashboard sharing aligned, and write it into the support runbook.
  • If the requirement is really "let the user act on what they see in Power BI", consider inverting it — put the canvas app inside the Power BI report using the Power Apps visual instead.

Revisit if a supported report-embedding control replaces the tile control, or if mobile support for the newer API lands.

Was this accurate?