PagerDuty Weekly Reliability Report
Each week the flow summarizes PagerDuty incidents by service (count, MTTA, MTTR, after-hours pages, top noisy services and alerting integrations), builds an HTML report, emails it to engineering leadership, and posts highlights to Teams. Flags services trending worse week-over-week. Drives alert tuning and reliability conversations.
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 produces a weekly reliability report from PagerDuty. Every Monday at 08:00 UTC it pulls the incident list, slices it into the current reporting window and the prior window, and computes per-service and overall metrics: total incidents, mean time to acknowledge (MTTA), mean time to resolve (MTTR), and after-hours pages. It builds a branded HTML report with a per-service week-over-week breakdown table, emails it to engineering leadership, and posts highlights to a Teams channel. Services whose incident count rose by at least a configurable threshold are flagged as trending worse.
Why it matters: Reliability improves when teams can see the patterns. A consistent, zero-effort weekly readout drives alert tuning, surfaces noisy services, and anchors reliability conversations - without anyone assembling the numbers by hand. State: Off (demo).
Use Case
An SRE / engineering org wants a weekly, no-effort summary of incident load and response performance by service, with week-over-week trend flags, delivered to leadership by email and to the team's Teams channel. The flow is connector-first and ships Off; going live requires only authorizing the connections and setting the environment-variable values.
Flow Architecture
Weekly Recurrence
Recurrence (Monday 08:00 UTC)Runs the report weekly.
Init windows
Initialize VariableEstablish the current window (now - lookback -> now) and the previous window (now - 2x lookback -> window start) for the week-over-week comparison.
Init config + accumulators
Initialize VariableAfter-hours hours, WoW threshold, recipient, Teams group/channel from env vars; integer accumulators and string builders for service rows and flagged services.
Get Incidents
PagerDuty GetIncidentsReturns the full incident list (the op takes no date params).
Filter This Week / Last Week
Filter array (Query)Filter on created_at within each window.
Foreach This Week
Apply to each (sequential)Per incident: add minutes-to-resolve to MTTR accumulators if resolved, minutes-to-acknowledge to MTTA accumulators if acknowledged, and increment the after-hours counter if triggered outside business hours.
Compose MTTA / MTTR
ComposeTotals divided by counts (guarded against divide-by-zero).
Foreach Service
Select + Apply to eachProject to distinct services with union(); per service count this-week vs last-week, compute the WoW percent change, append an HTML breakdown row, and flag services rising by at least the threshold.
Compose Report HTML
ComposeAssembles the full branded HTML report (summary table + per-service table + flagged-services block).
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_ReliabilityReportRecipient | String | alerts@yourcompany.com | Email recipient(s) for the weekly report. |
| flowlibs_ReliabilityLookbackDays | String | 7 | Length of the reporting window in days (one week). |
| flowlibs_AfterHoursStartHour | String | 18 | Hour (UTC) at/after which an incident counts as an after-hours page. |
| flowlibs_AfterHoursEndHour | String | 8 | Hour (UTC) before which an incident counts as an after-hours page. |
| flowlibs_WoWAlertThresholdPct | String | 25 | A service is flagged when its incident count rises by at least this percent vs last week. |
| flowlibs_TeamsGroupId | String | <your-team-id> | Teams Team/group id for the highlights post (reused). |
| flowlibs_TeamsChannelId | String | <your-channel-id> | Teams channel id for the highlights post (reused). |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| PagerDuty | shared_pagerduty | GetIncidents |
| Office 365 Outlook | shared_office365 | SendEmailV2 |
| Microsoft Teams | shared_teams | PostMessageToConversation |
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.
- Reporting window
- Change flowlibs_ReliabilityLookbackDays for a fortnightly or monthly cadence (also adjust the Recurrence interval).
- After-hours definition
- Adjust flowlibs_AfterHoursStartHour / EndHour (UTC) to match the team's business hours.
- Trend sensitivity
- Raise/lower flowlibs_WoWAlertThresholdPct to flag more or fewer worsening services.
- Per-team reports
- Duplicate the flow and filter incidents by escalation policy or team to send targeted versions.
- Richer MTTA
- For sub-acknowledgement timing detail, follow each incident with GetIncidentNotes or the PagerDuty REST log_entries endpoint.
- Power BI
- Pair with the PagerDuty-metrics-to-Power-BI flow to back the email with a live dashboard.
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.01Window filter (this week)
Keep incidents created in the current window.
EXPR.02Minutes to resolve
MTTR contribution per resolved incident.
EXPR.03Minutes to acknowledge
MTTA contribution per acknowledged incident.
EXPR.04After-hours flag
Counts incidents triggered outside business hours.
EXPR.05WoW percent change
Per-service week-over-week change percent.
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.