incident.io process hygiene board for weekly reviews

Grade every recent incident against your own process checklist, fix the gaps in place, and walk into the weekly review with an agenda already written.

App
incident.ioSlack BotEngineeringOperationsMeeting Workflows
PromptCreate

Build me an internal app that I open before our weekly incident review, so we can see whether we actually followed our own incident process rather than just how many incidents we had. It reads from incident.io and can post to Slack using the Slack Bot integration. Everything is read fresh from incident.io when I load the board. The only things the app stores itself are my configuration and the agendas it generates.

The main view is a hygiene board. Each row is an incident from the selected period, pulled with List Incidents, showing its reference, name, severity, incident type, current status and when it was reported. Every column after that is a process check scored green, amber or red: severity set, lead assigned, required custom fields filled in, status updates posted often enough for that severity, resolved timestamp recorded, and follow-up actions logged. Clicking any cell explains why it scored the way it did, so nobody has to take the colour on faith.

Build the checks from these reads. Severity set compares the incident's severity against the list from List Severities and scores red when nothing is assigned. Lead assigned uses List Incident Roles to find the built-in lead role and checks whether the incident has anyone in that seat, scoring red when it is empty. Required custom fields uses List Custom Fields for the definitions plus the incident's own field values, scoring green when every field I marked required is filled, amber when only some are, and red when none are. Resolved timestamp uses List Incident Timestamps to find the resolved timestamp definition and checks whether the incident has a value for it, scoring red for a closed incident with no resolved time and showing not applicable while the incident is still open. Follow-up actions logged uses List Actions and List Follow-ups filtered to the incident, scoring green when at least one is logged, amber when they are logged but nobody owns them, and red when there are none at all.

The update cadence check is the one that needs real computing. Pull the incident's status updates with List Incident Updates, sort them by time, and measure the gap between each consecutive update, plus the gap from when the incident was reported to the first update and from the last update to resolution. Compare the largest gap against a target I configure per severity, for example every 30 minutes for a SEV1 and every 2 hours for a SEV3. Score green when every gap is within target, amber when the worst gap is up to a tolerance multiple of the target that I can set, and red beyond that or when there were no updates at all. Show the worst gap in the cell so I can see how badly it slipped rather than just that it did.

Let me filter the board by severity, by incident type from List Incident Types, and by date range, defaulting to the last seven days. Above the board show a summary strip: how many incidents in the period are clean on every check, and a count per check of how many incidents failed it, so the gaps that keep repeating are obvious at a glance.

Clicking a row opens a detail panel with the full incident from Show Incident, a timeline of its status updates with the gaps marked, and its outstanding actions and follow-ups. From the row or the panel I can fix gaps in place: backfill a missing severity, assign a lead, or fill in a required custom field using Edit Incident, applied straight from the board and reflected in the row without a full reload. I can also nudge the incident lead with the Slack Bot Send a Message action, which prefills a short message naming the incident and the specific gaps and lets me edit it before it goes.

Add a Prep the review button that runs a background agent over the currently selected period and filters. The agent reads each incident in scope with Show Incident, its status updates with List Incident Updates, and its outstanding work with List Actions and List Follow-ups, then writes a meeting agenda back into the app: which incidents need real discussion and why, which are clean enough to skip, and which process gaps keep repeating across the period. Show the agenda in its own view with the period it covers and when it ran, keep past agendas so we can tell whether the same gaps keep coming back week after week, and let me copy it or post it to a Slack channel with Send a Message.

Give me a settings view for the parts that are opinions rather than data: the update cadence target for each severity, the tolerance multiple that separates amber from red, and which custom fields count as required. Store those in the app so they persist between sessions, and seed the severity list from List Severities so I am configuring against our real severities. Every team sets its own communication expectations, so none of these thresholds should be hardcoded.

What does this prompt do?

  • Lists every recent incident as a row and grades it green, amber or red against six process checks: severity set, lead assigned, required fields filled in, status updates posted often enough, resolved time recorded, and follow-up actions logged.
  • Works out whether your updates actually kept pace by measuring the gaps between them against the target you set for each severity, so a SEV1 is held to a tighter standard than a SEV3.
  • Lets you fix gaps without leaving the board: backfill a missing severity, lead or field on the spot, or send the incident lead a Slack nudge that names exactly what is missing.
  • Adds a Prep the review button that hands the whole period to a background assistant and gets back a written agenda naming which incidents need real discussion, which are clean enough to skip, and which process gaps keep repeating.

What do I need to use this?

  • An incident.io account, with access to create an API key from your settings.
  • A Slack workspace, if you want to nudge incident leads or post the finished agenda to a channel.
  • A few weeks of incidents already in incident.io, so the board has something to grade.
  • A rough idea of your own process expectations, such as how often a SEV1 should get a status update.

How can I customize it?

  • Set the update cadence target for each severity, for example every 30 minutes for a SEV1 and every 2 hours for a SEV3, plus how much slippage counts as amber before it turns red.
  • Choose which custom fields count as required, so the board only grades the fields your team actually agreed to fill in.
  • Change the default date range and filter by severity or incident type to match how your review meeting is run.

FAQs

How is this different from the reporting already in incident.io?
The built-in analytics are about volume and speed: how many incidents you had, how fast you acknowledged them, how fast you resolved them. This board asks a different question, which is whether each incident actually followed the process you agreed on. It grades the individual incidents rather than charting the totals, which is usually what a weekly review ends up arguing about.
What makes a check green, amber or red?
Green means the check passed cleanly. Red means it clearly failed, such as no severity set, no lead assigned, or no status updates at all. Amber is the middle ground you can tune, for example some required fields filled but not all, or updates that slipped past your target but not by much. Clicking a cell shows you why it scored the way it did.
Can I fix problems from the board, or do I have to go back into incident.io?
You can fix the common gaps straight from the row. Backfilling a missing severity, assigning a lead, or filling in a required custom field all happen in place and are written back to incident.io. For anything that needs a person rather than a data fix, you can send the incident lead a Slack message that names the incident and the specific gaps.
Does it change anything in incident.io on its own?
No. The board only reads your incidents until you click something. Backfilling a field or sending a Slack nudge happens because you chose to, and you can edit the message before it goes out.
Our team has different update expectations for each severity. Does that work?
Yes, and that is the point of the settings view. You set a separate cadence target per severity, seeded from the severities you actually use, so nothing is hardcoded to someone else's idea of a good response time.

Related templates

Klaviyo campaign calendar and draft studio for marketing teams

Plan every email and SMS send on one calendar, see how past campaigns performed inline, and let an assistant write and file the next draft in Klaviyo.

Klaviyo
Slack Bot
App
Turn any influencer campaign into a client-ready report

Open any campaign, pick this month versus last, and have a written client report drafted into Google Docs and posted to their Slack channel.

Later
Google Docs
Slack Bot
App
Approve every Jotform enquiry before it reaches HubSpot

Work every form enquiry from one queue that already tells you who is new, who is a duplicate and who has a deal open, then push only what you approve.

Jotform
HubSpot
Slack Bot
App
Run cold email domain rotation on one drag-and-drop board

See every sending domain as Active, Reserve or Retiring, watch your bench against the 20 to 25 percent target, and refill it before a domain burns.

InfraForge
Smartlead
Slack Bot
+1
App
Launch console for cold email domains and mailboxes

Pick a client, get ranked domain suggestions with live prices, and buy domains and mailboxes in one confirmed step instead of juggling tabs and a spreadsheet.

InfraForge
Smartlead
Slack Bot
+1
App
One analytics board across every Jotform form you own

See submissions, 30 and 90 day trends, and forms that are live but taking nothing, then let an agent tell you which questions to cut.

Jotform
Slack Bot
App

Walk into the incident review with the answers already on screen.

Grade every incident against your own process checklist, fix the gaps in place, and get the agenda written before the meeting starts.