Connector Usage Heatmap Data Collector
Scheduled flow iterates all flows via Power Automate Management, extracts the list of connectors each flow uses, and aggregates usage counts per connector into a SharePoint list.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
Scheduled weekly flow that inventories every cloud flow in the target Power Platform environment, extracts the list of connectors each flow uses, and writes one row per flow to a SharePoint list. The resulting dataset powers a Power BI heatmap showing which connectors are most and least used across the tenant — essential for license planning, DLP policy design, and connector governance.
Use Case
IT Admins and COE teams need visibility into which connectors are actually being used across their flow estate. This flow automates the data collection so that a Power BI report can answer questions like: "How many flows use the Azure DevOps connector?", "Which flows have the most connector dependencies?", and "Are there flows using connectors not covered by our DLP policies?"
The flow is ideal for teams that:
- IT Admins planning connector licensing and DLP policies
- Center of Excellence (CoE) teams tracking connector adoption across the tenant
- Governance leads identifying flows that depend on premium or restricted connectors
- Platform owners feeding a Power BI heatmap to visualize connector usage hotspots
Flow Architecture
Recurrence Weekly Monday
RecurrenceFires every Monday at 06:00 UTC to start a fresh weekly scan of the target environment.
Initialize varSharePointSiteUrl
Initialize variableBinds the flowlibs_SharePointSiteURL environment variable to a runtime string variable used by the SharePoint actions.
Initialize varTargetEnvironment
Initialize variableBinds the flowlibs_TargetEnvironmentName environment variable to a runtime string variable — the environment ID that the flow inventories.
Initialize varListGuid
Initialize variableBinds the flowlibs_ConnectorUsageHeatmapList environment variable to a runtime string variable — the GUID of the destination SharePoint list.
Initialize varSnapshotDate
Initialize variableCaptures utcNow() once into a string variable so every row written during this run shares the same snapshot timestamp.
Initialize varFlowCount
Initialize variableInitializes a running counter (integer, default 0) used to total the number of flows processed.
List All Flows In Environment
Power Automate Management — ListFlowsInEnvironment_V2Calls ListFlowsInEnvironment_V2 with the target environment name to retrieve every cloud flow in that environment.
For Each Flow
Apply to eachFor each flow returned by ListFlowsInEnvironment_V2: get its details, extract connector API names and count, write a SharePoint heatmap row, and increment the running counter.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_SharePointSiteURL | String | https://your-tenant.sharepoint.com | Root SharePoint site URL hosting the Connector Usage Heatmap list. Set to the site where the list lives in your tenant. |
| flowlibs_TargetEnvironmentName | String | <your-tenant-id> | Power Platform environment ID (GUID) to scan for flows. Typically in the form 'default-<tenant-guid>' for the default environment, or the environment's unique name for non-default environments. |
| flowlibs_ConnectorUsageHeatmapList | String | <configure> | GUID of the SharePoint list that stores per-flow connector usage rows. Create the list (see Prerequisites) and paste its list GUID here. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Power Automate Management | shared_flowmanagement | ListFlowsInEnvironment_V2 (Lists every flow in the target environment) AdminGetFlow (Retrieves full flow details including connectionReferences) |
| SharePoint | shared_sharepointonline | PostItem (Writes one heatmap row per flow) |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Change scan frequency
- Edit the Recurrence trigger to adjust frequency, interval, or specific days/hours — e.g. daily for fast-moving estates, monthly for stable tenants.
- Target a different environment
- Update the flowlibs_TargetEnvironmentName environment variable current value to the GUID of the environment you want to inventory.
- Use a different SharePoint site
- Update flowlibs_SharePointSiteURL, recreate the heatmap list on the new site with the same column schema, and update flowlibs_ConnectorUsageHeatmapList with the new list GUID.
- Add email notification
- Insert an Outlook SendEmailV2 action after Compose_Scan_Summary to email the scan results to admins each time the flow completes.
- Filter specific flows
- Add a Condition inside the For Each loop to skip flows by name pattern, state (e.g. only Started), or creator — useful when you only want to inventory production flows.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Connector API name extraction
Stringifies the connectionReferences object, strips whitespace and quotes, then splits on the API path prefix to isolate the readable connector names and rejoins them as a comma-separated list.
EXPR.02Connector count
Counts occurrences of "id": in the stringified connectionReferences (each connector contributes exactly one id property) and subtracts 1 because split returns one more piece than the number of delimiters.
EXPR.03Null-safe connector check
Handles flows with no connectors (rare but possible for manual/button-only flows) so the heatmap row records 'None' instead of erroring on the extraction expressions.
EXPR.04Snapshot timestamp
Captured once in Init_varSnapshotDate so every row written during a single scan shares the same timestamp — makes it easy to filter the Power BI heatmap to a specific scan run.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.