Weekly Flow Health Dashboard Email
Compile success/failure rates, average durations, and top failing flows into a formatted email sent to the CoE team weekly.
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
This flow generates a comprehensive weekly health dashboard for all Power Automate cloud flows in your environment. Every Friday at 8:00 AM ET, it inventories every flow, categorizes them by state (Active, Stopped, Suspended), and sends a beautifully formatted HTML email to the CoE (Center of Excellence) team with summary statistics and a complete flow inventory table.
Suspended flows are highlighted in a dedicated alert section so admins can take immediate action on flows that need attention.
> Tip: This flow is delivered in a Stopped (Off) state. Turn it on when you're ready to start receiving weekly reports.
Use Case
IT administrators and CoE teams need visibility into the health of their Power Automate environment. This flow replaces manual checks by automatically delivering a weekly snapshot of every cloud flow's state, flagging anything that needs admin attention, and providing a sortable inventory for review.
The flow is ideal for teams that:
- Counting total, active, stopped, and suspended flows
- Flagging suspended flows that require admin intervention
- Providing a sortable inventory of every flow with its last modified date
- Delivering the report via email on a consistent weekly schedule
Flow Architecture
Recurrence - Weekly Friday
RecurrenceTriggers every Friday at 8:00 AM Eastern.
Initialize varNotificationEmail
Initialize variableSets the recipient email from the flowlibs_NotificationEmail environment variable.
Initialize varEnvironmentName
Initialize variableSets the PA environment ID from the flowlibs_PAEnvironmentName environment variable.
Initialize varTotalFlows
Initialize variableCounter for total flows (integer, starts at 0).
Initialize varActiveFlows
Initialize variableCounter for active/started flows.
Initialize varStoppedFlows
Initialize variableCounter for stopped flows.
Initialize varSuspendedFlows
Initialize variableCounter for suspended flows.
Initialize varFlowTableRows
Initialize variableString accumulator for the HTML inventory table rows.
Initialize varSuspendedFlowsList
Initialize variableString accumulator for the suspended flows alert table.
List My Flows
Power Automate Management - ListMyFlowsCalls the Power Automate Management connector to retrieve all flows in the target environment.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_NotificationEmail | String | admin@your-tenant.onmicrosoft.com | Email recipient for the weekly dashboard. Set to any mailbox or distribution list. |
| flowlibs_PAEnvironmentName | String | <your-tenant-id> | The Power Automate environment ID to query (format: default-{tenant-guid}). |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Power Automate Management | shared_flowmanagement | ListMyFlows (Lists all flows in the target environment) |
| Office 365 Outlook | shared_office365 | SendEmailV2 (Sends the dashboard email) |
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 the recipient
- Update the flowlibs_NotificationEmail environment variable value in the solution to any email address or distribution list.
- Change the schedule
- Edit the Recurrence - Weekly Friday trigger to change the frequency, day of week, or time. The default is every Friday at 8:00 AM Eastern.
- Add more columns to the inventory table
- Edit the Append Flow Row action inside the loop. Each flow object returned by ListMyFlows exposes properties.displayName, properties.state, properties.lastModifiedTime, properties.createdTime, and properties.createdBy.
- Target a different environment
- Update the flowlibs_PAEnvironmentName environment variable to the target environment's ID (format: default-{tenant-guid}).
- Customize the email styling
- Edit the Compose Dashboard HTML action. The entire email is a self-contained HTML document with inline CSS — the stat cards use a flexbox grid and the tables use standard HTML table styling.
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.01Read the flow state
Gets the flow state (Started, Stopped, Suspended) from the current loop item.
EXPR.02Read the flow display name
Gets the flow display name from the current loop item.
EXPR.03Format last modified timestamp
Renders the flow's last modified time for the inventory table.
EXPR.04Conditionally render the suspended-flows section
Only emits the suspended-flows alert block when at least one suspended flow was found.
EXPR.05Report generation timestamp
Friendly date/time stamp shown at the top of the dashboard email.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.