PagerDuty Major-Incident Stakeholder Status Page
When a PagerDuty incident is flagged business-impacting, the flow publishes and updates a status entry on a SharePoint status page, emails subscribed stakeholders at each state change, and posts to a Teams customer-comms channel. On resolution it posts the all-clear. Keeps non-technical stakeholders informed without pulling responders off the incident.
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 keeps non-technical stakeholders informed during business-impacting PagerDuty incidents - without pulling responders off the incident to write status updates. On a schedule it pulls all PagerDuty incidents, keeps only the business-impacting ones, regenerates a branded HTML status page in SharePoint, and emails subscribed stakeholders whenever an incident's state changes (new, update, or a resolved all-clear). A Dataverse ledger remembers each incident's last known state so emails fire only on a genuine change.
Why it matters: During major incidents the response team should focus on the fix. Automating the public status page and the subscriber comms keeps executives, operations, and customers informed with consistent, timely messaging that is driven entirely from PagerDuty state. Built and verified (Flow Checker 0 errors / 0 warnings). Ships Off as a FlowLibs reference implementation - going live requires only authorizing the four connections and setting the environment variable values.
Use Case
A team needs reliable stakeholder/customer communications during major incidents, driven from PagerDuty, with no manual status writing. Business-impacting is configurable (by PagerDuty urgency and/or priority), the status page lives in SharePoint where it can be surfaced to a wider audience, and a subscriber list is emailed at each state transition. Typical audiences: Executives and Operations who need at-a-glance incident status, and customer-comms teams who maintain a status page.
Flow Architecture
Recurrence
Recurrence (every 5 min)Poll PagerDuty and refresh the status page on a schedule.
Initialize Correlation Id + Run Timestamp
Initialize Variableguid() stamped on every ledger row, plus utcNow() for the page footer and ledger.
Initialize config variables (3-10)
Initialize VariableSite Url, Library Path, Status File Name, Public Url, Stakeholder Emails, Business Urgency, Business Priorities, Company Name (from env vars).
Get Incidents
PagerDuty GetIncidentsRetrieve all incidents (no server-side filter params; filtered in-flow).
Filter Business Impacting + Active
Filter array (Query)Keep incidents whose urgency matches or whose priority is in the configured list; the active subset becomes the current incidents on the page.
Compose Status Page Html
Select + ComposeMap active incidents to HTML rows and assemble the full branded HTML status page (or an all-systems-operational banner).
Publish Status Page
SharePoint CreateFilePublish (overwrite) the HTML status page to a document library.
Foreach Impacting Incident
Apply to each (concurrency 1)Per incident: look up the ledger by incident id and detect status change.
Condition Status Changed
Condition (If)Act only when current status differs from the last recorded status.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_SharePointSiteURL | String | https://your-tenant.sharepoint.com | SharePoint site hosting the status page (reused shared var). |
| flowlibs_StatusPageLibraryPath | String | /Shared Documents | Server-relative document library path for the status page file (must be an existing library). |
| flowlibs_StatusPageFileName | String | pagerduty-incident-status.html | File name of the published status page. |
| flowlibs_StatusPagePublicUrl | String | https://your-tenant.sharepoint.com/Shared%20Documents/pagerduty-incident-status.html | Full URL of the page, linked inside stakeholder emails. |
| flowlibs_StatusStakeholderEmails | String | alerts@yourcompany.com | Semicolon-separated subscriber/stakeholder recipients. |
| flowlibs_BusinessImpactUrgency | String | high | PagerDuty urgency value treated as business-impacting. |
| flowlibs_BusinessImpactPriorities | String | P1,P2 | Comma-separated PagerDuty priority names treated as business-impacting. |
| flowlibs_StatusPageCompanyName | String | yourcompany | Company/brand name shown on the status page and in emails. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| PagerDuty | shared_pagerduty | GetIncidents |
| SharePoint | shared_sharepointonline | CreateFile |
| Office 365 Outlook | shared_office365 | SendEmailV2 |
| Microsoft Dataverse | shared_commondataserviceforapps | ListRecords CreateRecord |
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.
- Severity scoping
- Adjust flowlibs_BusinessImpactUrgency and flowlibs_BusinessImpactPriorities to control what counts as business-impacting (e.g. only P1 to reduce noise).
- Templated messaging
- Edit the Compose Email Subject / Body and Compose Status Body actions for standard per-state phrasing (investigating / identified / monitoring / resolved).
- Public status page
- Surface the SharePoint document (or a Power Pages page reading the same library) to a public audience; point flowlibs_StatusPagePublicUrl at the externally reachable URL.
- Polling cadence
- Change the Recurrence interval (default 5 minutes) to balance freshness against run volume.
- Add a Teams customer-comms channel
- Add a PostMessageToConversation action inside the state-change branch to mirror the email into a comms channel.
- Subscriber management
- flowlibs_StatusStakeholderEmails is a simple semicolon list a business owner can edit; for larger audiences point it at a distribution list.
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.01Business-impact gate
Keep incidents matching the urgency or priority list.
EXPR.02Active-for-page filter
Non-resolved subset shown as current incidents.
EXPR.03Incident lookup ($filter)
Find the ledger row for this incident.
EXPR.04State-change gate
Notify only when status actually changed.
EXPR.05State-aware email prefix
Subject prefix driven by the transition.
Customize & download
Generate a ready-to-import copy of this solution with your environment-variable values baked in — available on Base, Pro, or Team.
Upgrade to customize
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.