Custom visuals are great — until they break, get deprecated, or you need to know which reports actually depend on them. I built a small Fabric notebook that gives you a tenant-wide answer in seconds.
Big thanks to Steinick Sibarani for the nudge that pushed me to put this together quickly — the conversation around custom-visual governance in his community thread was exactly the spark this needed.

What it does
Custom Visuals Inventory uses semantic-link-labs to list every custom visual used across one workspace, a list of workspaces, or your entire tenant. You get:
- A flat table: workspace, report, visual name, visual GUID
- Top visuals by report count (where is TRUECHART actually used?)
- Heaviest reports by custom-visual count
- A PBIR-format inventory (PBIR vs. PBIRLegacy) — because only PBIR reports can be scanned
One MODE switch flips between current, list, and all workspaces. That’s it.
Notebook on GitHub: PBI-Tools / Notebook Gallery · also published in the Fabric Community Notebook Gallery.
Why this matters for FUAM
FUAM is the go-to solution for tenant-wide Fabric monitoring — workspaces, capacities, activities, refreshables, git connections, tenant settings. But there is one thing it does not ship today: a custom visuals inventory per report.
This notebook fills the gap as a standalone companion — same scope (tenant-wide), same stack (Fabric notebook + Direct Lake friendly output).
If you run a Fabric tenant with more than a handful of reports, this is one notebook you want in your back pocket the next time a custom visual gets deprecated.