1. Purpose
To provide repeatable steps for developers to identify:
-
Which Power Apps in an environment use Dataverse.
-
Which apps/flows depend on a specific Dataverse table.
This SOP covers:
-
UI-based checks (Power Apps & Dataverse)
-
PowerShell-based discovery
-
(Optional) Python + Dataverse Web API for deeper dependency mapping
2. Scope
Applies to:
-
Power Platform environments where Dataverse is used
-
Canvas apps and model-driven apps
-
Dataverse tables (standard & custom)
3. Prerequisites
3.1 Permissions
-
Environment Admin or System Admin or
-
Sufficient rights to:
-
View apps in the environment
-
View Dataverse tables and solutions
-
Call Dataverse Web API (for Python path)
-
3.2 Tools (per method)
For UI method
-
Browser access to:
-
https://make.powerapps.com -
https://admin.powerplatform.microsoft.com
-
For PowerShell method
-
PowerShell 5+ or PowerShell Core
-
Ability to install modules:
-
Microsoft.PowerApps.Administration.PowerShell -
Microsoft.PowerApps.PowerShell
-
For Python method (optional)
-
Python 3.9+
-
requestsandmsallibraries installed -
An Azure AD app registered with API permissions to Dataverse
4. Procedure A – UI: Quick Check via Dataverse & Power Apps
Use this when you know the table name and just want to see what’s using it.
4.1 Identify Apps Using a Specific Table (Dataverse UI)
-
Go to Power Apps Maker Portal
-
Open:
https://make.powerapps.com -
Select the correct environment in the top-right.
-
-
Open Dataverse → Tables in the left navigation.
-
Find and select the table of interest
-
Use the search bar if needed.
-
-
In the table’s page, look for:
-
Related / Dependencies or “Uses this table” / “Dependent components” (exact label may vary slightly).
-
-
Review the dependency list:
-
Canvas apps
-
Model-driven apps
-
Flows
-
Forms, views, business rules, etc.
-
-
Capture the list:
-
Export to Excel (if possible) or
-
Screenshot / copy names into your documentation.
-
Outcome: You have a list of apps/flows that directly depend on that Dataverse table.
4.2 Identify Dataverse Usage Per App (Canvas Apps via UI)
Use this when you suspect a specific app is using Dataverse.
-
In make.powerapps.com, go to Apps.
-
Find the Canvas app → click the three dots (…) → Edit.
-
In the left panel, open the Data pane (database icon).
-
Review the Dataverse tables listed under “Data sources”.
Outcome: You confirm whether a particular app connects to Dataverse and which tables it uses.
5. Procedure B – PowerShell: List Apps Using Dataverse Connectors
Use this when you want an environment- or tenant-wide list of canvas apps that use Dataverse.
5.1 Install Required Modules (one-time)
Run in PowerShell:
5.2 Sign In
Follow the interactive login.
5.3 Get All Apps Using Dataverse
What this does:
-
Scans all apps.
-
Filters only those that have a Dataverse/CDS connector.
-
Displays app name + environment.
5.4 Inspect Connection References Per App (Optional Detail)
Outcome: You get a programmatic list of all canvas apps using Dataverse across environments.
6. Procedure C – Python + Dataverse Web API (Advanced Dependency Mapping)
Use this when you need a deeper, per-table dependency inventory, including model-driven app components, forms, views, etc.
6.1 One-time Setup
-
Register an Azure AD app
-
Grant it application permissions to Dataverse (e.g.
user_impersonation/ Dataverse APIs via your environment’s “server-to-server” auth).
-
-
Capture:
-
tenant_id -
client_id -
client_secret -
org_url(Dataverse URL, e.g.https://org123456.crm6.dynamics.com)
-
-
Install Python packages:
6.2 Script Template – Find Dependencies for a Table
Save as
find_dataverse_dependencies.pyand adjust the config.
6.3 How Developers Use This
-
Update the config section:
-
tenant_id,client_id,client_secret,org_url,table_logical_name.
-
-
Run:
-
Use
dependentcomponenttype+dependentcomponentobjectidto:-
Look up corresponding rows in tables like
appmodules,systemforms,savedqueries, etc. -
Build a “dependency report” if needed.
-
Outcome: A detailed list of all Dataverse components that rely on a given table (including things not obvious in the UI).
7. Recommended Usage Pattern
For day-to-day tasks:
-
Need a quick answer for a single table?
→ Use Procedure A (Dataverse UI dependencies). -
Need an inventory of apps using Dataverse in an environment/tenant?
→ Use Procedure B (PowerShell) and export results. -
Need a formal dependency report for governance / impact analysis?
→ Start with A + B, and if needed, extend with Procedure C (Python).