Daily nudge for stale incident follow-ups
Chase open incident follow-ups every weekday: file Linear tickets for engineering work, ping owners on Slack, keep nothing forgotten.
Build me an agent workflow that chases stale incident follow-ups every weekday at 10am, files Linear tickets for the ones that need engineering work, and nudges owners on Slack when something has been sitting too long.
Trigger: cron, Monday through Friday at 10am in my workspace timezone.
On every run, the agent should:
1. Use incident.io List Follow-ups to pull every open follow-up for the organisation. Page through results until exhausted.
2. For each follow-up, check the external_issue_reference field. If it already points at a Linear issue, skip it. The native incident.io to Linear export will have populated this for anything already converted, so we never want to double-file.
3. For the remaining follow-ups, decide whether the work belongs on an engineering team's backlog. Use judgement on the follow-up text and the parent incident: things like infra changes, code fixes, monitoring/alerting improvements, runbook automation, and post-incident hardening should become tickets. Pure process items ("schedule a retro", "update the status page"), comms tasks, and customer outreach should not.
4. For each follow-up that warrants a ticket, pick the right Linear team based on the incident title and follow-up text (for example payments incidents go to the Payments team, auth issues go to Identity, infra issues go to Platform). If you're not confident which team owns it, default to the team I configure as the fallback. Then call Linear Create Issue with a clear title, a description that includes the follow-up text and the incident URL, and a sensible priority. If the parent incident was high severity, bump the priority accordingly.
5. Write the new Linear issue identifier back onto the follow-up in incident.io. Use Edit Incident (or the follow-up update path if available) to drop the Linear URL into the follow-up description so the link is visible inside incident.io. If you need extra context on a specific follow-up before deciding, you can call incident.io Show Follow-up.
6. Separately, find every open follow-up whose assignment is older than 14 days and has not progressed (no recent updates, no linked ticket movement). For each one, send a direct, polite Slack message to the owner using Slack Send a Message. The nudge should list the follow-up, name the incident it came from, link to it, and ask for a quick status update. Keep the tone respectful and human, never spammy or robotic. Track which follow-ups you've already nudged and stop after two reminders for the same item so people are not pestered indefinitely.
At the end of the run, post a short summary to a channel I specify so I can see what was filed, what was nudged, and what was skipped.
This is an agent workflow because picking the right Linear team, deciding which follow-ups warrant a ticket, and writing nudges that sound human rather than canned all require judgement that a fixed code path cannot encode.
Additional information
What does this prompt do?
- Pulls every open follow-up from incident.io each weekday morning and skips any that already have a Linear ticket linked.
- Decides which remaining follow-ups need engineering work and files a Linear issue in the right team, with the incident details and a link back to the source.
- Writes the new Linear ticket ID back onto the follow-up in incident.io so the two systems stay in sync.
- Sends a polite, human-sounding Slack nudge to the owner of any follow-up that has been sitting untouched for more than two weeks, and stops after two reminders so people are not spammed.
What do I need to use this?
- An incident.io account where you can create API keys with permission to read and edit follow-ups.
- A Linear workspace where you can create issues across the teams that pick up incident follow-up work.
- A Slack workspace so the workflow can message follow-up owners directly.
How can I customize it?
- Change the schedule, for example run it twice a week or at a different time of day.
- Adjust how long a follow-up sits before it counts as stale, or how many reminders you allow before the workflow goes quiet.
- Tell the agent which Linear teams it should choose between, or hard-code certain follow-up types to a specific team.
Frequently asked questions
Does this duplicate incident.io's built-in Linear export?
Will my team get spammed with reminders?
How does the agent pick which Linear team gets the ticket?
What if the follow-up already has a Linear ticket?
Can I send the nudges to a shared channel instead of a direct message?
Stop letting incident follow-ups rot.
Connect incident.io, Linear, and Slack once, and Geni quietly chases stale follow-ups every weekday morning.