Automate a weekly uptime and incident report from status pages
Vendor outages are easy to miss and hard to reconstruct later. A scheduled agent reads the public status pages of your dependencies each week, lists incidents and affected components, and drafts a short report that its department head reviews and you approve.
What you’ll set up
Connections
Works from public sources: Public status pages and their JSON incident feeds (for example a Statuspage-hosted page's incidents.json)
Upgrades
Digest delivery (channel or inbox)
Delivers the approved report to your channel or inbox.
Inputs
Status page URLs · Required
List, no default
Lowest impact to include · Optional
Choice of minor, major, or critical, default minor
Ready by · Required
Time, default 09:00
Brief · Required
Text, prefilled and editable during setup.
Runs
Runs every Monday at 08:00
Done by Research analyst
You approve before anything goes out.
You approve every report · Free to start
How it runs
One agent does the work. Its department head reviews it, then you approve.
- 1Research analyst
Runs every Monday at 08:00 and prepares the report from your connected sources.
- 2CTO · Review
The department head reviews the report before it reaches you.
- 3You
You approve before anything goes out.
What you get
Sample, not live data. The services, times and incidents are invented.
Dependency incidents, week of 26 Oct (sample)
3 incidents across 2 services.
| Service | Incident | Impact | Duration | Components |
|---|---|---|---|---|
| Code host | Delayed webhooks | minor | 1h 40m | Webhooks |
| Code host | Actions queue delays | major | 2h 05m | Actions |
| Email API | Elevated send errors | minor | 35m | API |
Worth checking (needs your approval)
- Retry failed deploy hooks from Tuesday 14:00-15:40.
Why vendor outages go unrecorded
When a payment provider or code host has a bad afternoon, your own dashboards show symptoms, not the cause. The vendor posts an incident, marks it resolved, and the page moves on. A week later nobody remembers whether the error spike matched an outage. A weekly record fixes that: which dependency, which component, how long, and how bad. It also helps you decide which vendors deserve a fallback.
How the scheduled job works
You add the job and list the status pages that matter to you. Pages hosted on Statuspage publish public JSON endpoints, including a list of the 50 most recent incidents and a list of components with states such as operational or major_outage. Each week a scheduled agent reads those feeds, keeps incidents whose dates fall in the last seven days, and records impact, duration and affected components. Where a page has no feed, it reads the page itself and says so. It reports what vendors published and does not guess at causes.
Review and approval
The CTO agent, as department head, reviews the report before it goes out: do durations add up, is each incident from the right service, is a suggested action safe. Then you approve, edit or skip it, and nothing is sent until you do. Start with the three or four services whose outages hurt most, and compare the report with your own memory of the week.
Reading the report well
A status page is the vendor's own account, so treat durations as approximate and impact labels as the vendor's judgement. Use the report to spot patterns: the same component failing three weeks running is a reason to add retries, a fallback or a second provider. Keep the list of pages short and tied to real customer-facing paths, and drop a page from the job once you no longer depend on that service. A report that stays short gets read, and a read report is what lets you answer a customer who asks what happened on a given afternoon.
Questions
Related jobs
Connects to: GitHub repository (read Actions) (required)
Automate a daily CI failure digest from GitHub Actions
One daily digest of yesterday's failed Actions runs, grouped by workflow and failing step.
Connects to: GitHub repositories (read pull requests) (required)
Automate a weekly pull request digest
A weekly digest of what merged, grouped by what changed for users and checked against each pull request.
Connects to: GitHub repositories (read pull requests) (required)
Stale pull requests
A daily list of pull requests gone quiet, who is blocking each one, and a nudge drafted for your approval.