Skip to content

Every 15 minutes

Send a short recap when an incident is resolved

Once an incident closes, stakeholders get a plain summary of what happened, built from its updates.

Runs
Every 15 minutes
Apps
incident.io
AI
Yes, uses the built-in AI allowance
Access
read

Send this to your assistant

Create a ClickRuntime automation: when an incident.io incident is resolved, summarise its timeline of updates in five bullet points and email it to leadership@acme.com.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

An incident is resolved after three hours, and the Slack channel holds 400 messages, half of them logs and guesses. The CEO, support lead and account managers want to know what happened, what was affected and whether it is fixed, but none of them will read the channel. The responder who could explain it is exhausted and has a post-mortem to prepare, so stakeholders get a rushed one-liner or nothing.

Every 15 minutes, ClickRuntime checks incident.io for incidents that were newly closed, fetches their updates and timeline, and has built-in AI write a short recap in plain language. It emails the recap to the people you choose, covering what happened, the impact and how it was resolved.

It is built for teams where stakeholders outside engineering need a clear closing note on every incident.

What you get out of it

  • Stakeholders get closure, not silence

    After a stressful incident, people who were affected want to hear that it is over and why. A recap sent soon after resolution prevents a day of follow-up questions. That cuts down on the chasing messages that responders otherwise answer one at a time right after resolving an outage.

  • Responders skip a chore after a long night

    Writing a good summary after a three-hour incident is the last thing anyone wants to do. Producing a first draft from the recorded updates takes that task off the responder, who can rest or start on the review.

  • Consistent wording across incidents

    Hand-written summaries vary by author and mood. Recaps generated the same way have the same shape every time, so readers know where to find impact and cause, and quickly compare one incident with another.

  • Customer messages start from a good draft

    Support teams can reuse the recap when writing to affected customers. Having accurate facts about duration and impact in hand avoids vague apologies and contradictory statements from different people. That is how the support lead can send a clear message the same afternoon, rather than waiting for the post-mortem.

  • Post-mortems start with facts in order

    A recap built from the incident's own updates gives the review a timeline to check and correct. The meeting starts with agreed facts instead of arguing about the sequence of events.

How it works

What happens, step by step

  1. Every 15 minutes ClickRuntime checks incident.io for incidents that have just closed.

  2. It gathers all the updates posted during each incident.

  3. AI turns those updates into a short, plain summary of what happened and how it was fixed.

  4. The recap is emailed to your stakeholders, once per incident.

Before it runs live

  • Connect incident.io

What you get

RunsEvery 15 minutes
Send a short recap when an incident is resolvedtoday, 9:00Succeeded
Email · Incident recapIncident recap: Checkout payments failing for EU customers - A card-network timeout change caused 12% of EU payments to fail for 2h

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Act only on the items that match your own rules, and skip the rest
  • Change what the AI looks for, or how it writes the result
  • Add another app, for example also send it to Slack
  • Combine it with other incident.io steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
get_an_ai_recap_of_each_closed_incident.pyexample
from clickruntime import on_trigger, credentials, http, notify, state, report_fetched, ai

IO = "https://api.incident.io"

def io(path, **params):
    resp = http.get(f"{IO}{path}", params=params, headers={"Authorization": f"Bearer {credentials.secret('INCIDENT_IO_API_KEY')}"})
    resp.raise_for_status()
    return resp.json()

@on_trigger
def run(event):
    incidents = io("/v2/incidents", page_size=50, **{"status_category[one_of]": "closed"})["incidents"]
    done = state.get("recapped")
    new = [i for i in incidents if done is not None and i["id"] not in done]
    report_fetched(len(new))
    if done is not None and not new:
        return {"recapped": 0}
    for i in new:
        updates = io("/v2/incident_updates", incident_id=i["id"], page_size=100)["incident_updates"]
        timeline = "\n".join(f"{u['created_at'][:16]} {u['new_incident_status']['name']}: {u.get('message') or ''}" for u in reversed(updates))
        recap = ai.generate(f"Incident: {i['name']}\nSummary: {i.get('summary') or ''}\nTimeline:\n{timeline[:12000]}",
                            system="Summarise this incident in exactly five bullet points for leadership.", max_output_tokens=300).text
        notify.email_me(f"Incident recap: {i['name']}", f"{recap}\n\n{i['permalink']}")
    state.set("recapped", list(set(done or []) | {i["id"] for i in incidents})[-500:])
    return {"recapped": len(new)}

FAQ

Common questions

How does the AI know what happened in the incident?
It reads the updates posted on the incident in incident.io, such as status changes and the messages responders wrote, and summarizes them. If responders recorded little, the recap will be brief, so it is only as detailed as the incident record.
Should I send the recap to customers directly?
It is written for internal stakeholders, so review it before anything goes outside the company. It can contain internal names or technical detail you may not want to share. Treat it as a draft for a customer-facing note, not a final one.
Will it recap an incident more than once?
No. Once an incident has been recapped, its ID is remembered, so later runs skip it. If an incident is reopened and closed again it is treated as the same incident, so you would not receive a second recap unless you asked for one.
What permissions does it need?
read. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Send a short recap when an incident is resolved” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.