AI for major incident communication: one story on every channel

Rama Adi
Written by

Rama Adi

Katelin Teen
Reviewed by

Katelin Teen

Last edited October 30, 2026

Expert Verified
Hand-drawn support agent at a laptop and a colleague with a tablet, with an AI assistant in a speech bubble sending an alert, a note and an email out to different channels
TL;DR

AI for major incident communication works when you keep one verified incident record and let every channel answer from it: the status page, the ticket replies, your agents' macro, the emails to big accounts, and the internal channel. AI drafts each update, a named person (your incident lead or comms owner) approves anything public, and an update goes out every 30 minutes, the target incident.io sets for major incidents.

The AI that answers tickets on its own should only touch tickets matched to a declared incident, and only with words copied from the last approved update. No invented ETAs, no root cause guesses, no "your data is safe". Then plan for the second wave after you resolve: "is it really fixed?" replies, report requests, and SLA credit asks.

I build eesel's helpdesk integrations, and the AI helpdesk teammate I work on does this inside Zendesk, Freshdesk and Gorgias: it tags outage tickets, drafts replies from the approved update, and hands outages and data loss straight to a person, the way Qontro runs it on Freshdesk. Plans start at $299 a month for 500 credits.

Why do customers hear different things during an outage?

Because each person answers from what they know right now, and they all know different things. An agent on ticket #4012 read the status page ten minutes ago. An account manager heard something in a Slack thread. An engineer told a big customer "should be fixed in an hour". The status page itself hasn't moved since the first post. None of them are lying. They're just answering from different snapshots.

Freshdesk's own help center describes it well. In its linked tickets guide, it notes that during downtime different customers get updates at different intervals, "based on the persistence of the customer and the workload of the agent." The customer who emails four times gets four updates. The one who emails once gets silence.

The slow first update makes it worse. incident.io's good incident management report found that companies with 250 to 1,000 employees took a median of 33 minutes from declaring a major incident to their first status page post, slower than both smaller and larger companies. That half hour is when the tickets pile in and the stories split.

Bar chart of median minutes from a major or critical incident being declared to the first status page update: 11 minutes under 250 employees, 33 minutes for 250 to 1,000, and 24 minutes over 1,000, as taken from incident.io's good incident management report
Bar chart of median minutes from a major or critical incident being declared to the first status page update: 11 minutes under 250 employees, 33 minutes for 250 to 1,000, and 24 minutes over 1,000, as taken from incident.io's good incident management report

The people running the incident feel it from the inside too. One SRE asked Reddit for help with exactly this:

Reddit

"When stuff is finally resolved, I have to parse through slack to see what happened when, ignore the "what's the status" slacks sent by 15 different random people, build a timeline with my investigation steps, etc."

So the fix is not "write faster". It is giving everyone one place to read from, and letting AI do the rewriting for each audience. I'd also read my guide to AI support during SaaS outages alongside this one: that post covers the ticket flood, my guide to AI for status page updates covers the status page itself, and this one covers what you say on every channel and who says it.

What should every channel answer from?

One incident record, written in plain words, that a person owns and updates. Not the engineering Slack channel, not the war-room call, not someone's memory. Keep it to four fields:

  • What's affected: the product areas, regions, or customer groups, in your customers' words ("checkout on the web app"), not service names ("payments-api-v2").
  • Verified facts: only what engineers have confirmed. "Some card payments fail" is a fact. "A bad deploy caused it" is a guess until someone confirms it.
  • What we're doing: one line. "Rolling back the 14:10 release" is enough.
  • Next update at: a clock time, every time.

That record can live in your incident tool (incident.io, PagerDuty, Jira Service Management) or on the status page itself. Where it lives matters less than the rule that every message to anyone gets rewritten from it, never from a side conversation.

Hand-drawn hub diagram with one incident record card in the middle listing what's affected, verified facts, what we're doing and next update at, with arrows out to the status page, matched tickets, agents' macro, big accounts, the internal channel and social
Hand-drawn hub diagram with one incident record card in the middle listing what's affected, verified facts, what we're doing and next update at, with arrows out to the status page, matched tickets, agents' macro, big accounts, the internal channel and social

The arrows only point outward on purpose. If a customer on a ticket reports something new ("it's also broken on mobile"), that goes to the comms owner, who checks it and adds it to the record. It doesn't jump straight into another customer's reply. That one rule is what keeps channel number six from drifting away from channel number one.

Who owns incident comms, and where does AI fit?

A person who is not fixing the problem. Engineers debugging production should not be wordsmithing an apology. This came up again and again when I read through how operators handle it:

Reddit

"Someone not directly working the incident owns comms. gets updates from the team, tracks timelines, and updates the dedicated status page/notification channels."

incident.io's report gives the same advice in plainer terms: "Assign communications roles," so it's clear who owns status page updates. The AI fits in below that person, not beside them. It turns the record into five versions for five audiences, and the comms owner reads and approves. That is human in the loop in its simplest form, and incident.io's own communication guide draws the same line: AI should assist with drafting rather than send external messages without a person reviewing them.

Hand-drawn three-column chart: AI drafts status updates, ticket replies, account emails and internal summaries; a person approves anything public, anything to big accounts and the first reply on a new incident; AI never says an ETA engineers didn't give, a root cause guess, your data is safe, or it's fixed before it is
Hand-drawn three-column chart: AI drafts status updates, ticket replies, account emails and internal summaries; a person approves anything public, anything to big accounts and the first reply on a new incident; AI never says an ETA engineers didn't give, a root cause guess, your data is safe, or it's fixed before it is

The right column is the part I'd print out. Each of those four lines is a sentence a language model will happily write if the prompt nudges it, because they are exactly what an anxious customer wants to hear. An AI hallucination in a normal ticket costs one customer. The same sentence in an incident reply goes to hundreds of people at once, and it's the line they screenshot later.

How often should you send incident updates?

Every 30 minutes for a major incident, even when nothing has changed. That's the target in incident.io's report, which says to "aim to share status page updates every 30 minutes during major and critical incidents." Its data shows most teams land close to it.

Bar chart of median minutes between status page updates for major or critical incidents: 24 minutes under 250 employees, 29 minutes for 250 to 1,000, and 30 minutes over 1,000, as taken from incident.io's good incident management report
Bar chart of median minutes between status page updates for major or critical incidents: 24 minutes under 250 employees, 29 minutes for 250 to 1,000, and 30 minutes over 1,000, as taken from incident.io's good incident management report

incident.io's guide calls the empty update the "heartbeat" rule: "We're still investigating. No new information. Next update in 30 minutes." It reads like nothing, but it does real work. A customer who knows the next update lands at 15:30 doesn't open a ticket at 15:20. Its communication guide suggests scaling the rhythm by severity: every 20 to 30 minutes for a SEV1, every 4 hours for a SEV2, and business-hours updates for a SEV3.

This is the easiest job to give AI. The heartbeat update is boring, it's the one people forget at minute 45 of a bad incident, and it carries almost no risk because it says nothing new. Let AI draft it from the record and nudge the comms owner when it's due. The plan below shows what each severity needs, so you can agree on it before the next incident instead of during it.

Incident comms plan by severity
Pick a severity to see who hears, how often, and what AI is allowed to do.
Declare it, post first, then keep the 30-minute heartbeat.
Who hearsPublic status page, every matched ticket, big accounts by email, execs and support in the internal channel, social if customers are posting there.
First updateAim for about 10 minutes at a small company and 20 at a large one (incident.io's "good" bar). "Investigating" is a fine first post.
CadenceEvery 20 to 30 minutes until resolved, with the next update time in every post.
AI draftsStatus update, the agent macro, account emails, the internal summary, and replies to matched tickets.
AI sends aloneOnly replies on tickets matched to this incident, using the last approved wording. Big accounts and data-loss reports go to a person.
Person approvesEvery public post and every email to a big account.
Tell the people affected, skip the megaphone.
Who hearsCustomers who wrote in, the affected component on the status page if you show one, and support plus account managers internally.
First updateA reply to the first matched tickets and a note in the internal channel with the workaround.
CadenceEvery 4 hours, plus one when the workaround or fix changes.
AI draftsThe workaround reply, the macro, and the internal summary.
AI sends aloneThe workaround reply on matched tickets, once the comms owner has approved it the first time.
Person approvesThe first version of the workaround reply, and any status page change.
Handle it in the queue.
Who hearsOnly the customers who report it, and the team channel.
First updateA normal reply in business hours.
CadenceBusiness-hours updates, and one note when it's fixed.
AI draftsThe reply and a tag so the tickets can be found later.
AI sends aloneIts usual replies, plus the "known issue, we're on it" line from your macro.
Person approvesNothing new. Check the tag count once a day in case it's bigger than it looked.
Cadences and first-update targets from incident.io's report and communication guide. The AI rules are my recommendation.

How do you keep agents and the AI on the same script?

Give the support desk the same words the status page uses, and make it easy to find every ticket about the incident. Both big helpdesks already have the plumbing for the second part. What they each do with it is worth knowing in detail, because I've seen teams assume more than the feature actually does.

Zendesk problem and incident tickets. In Zendesk's docs, you create one problem ticket for the outage, set every related ticket's type to incident, and link them. When you solve the problem ticket, every linked incident ticket is solved, and the comment you write on the problem ticket is added to the incident tickets that are still open. Two catches from the same page: "Customers are not notified using the messaging channel," and "AI agent tickets can't be linked to problem and incident tickets." So if half your outage traffic comes through Zendesk's own bot, the bulk close won't reach it. My walkthrough of incident and problem tickets covers the setup, and bulk status updates fill the gaps.

Freshdesk linked tickets. Freshdesk links related tickets to a master ticket called a tracker. Comments on the tracker go to every linked ticket as a broadcast, but the setup guide says the "internal broadcast message will be visible only to agents of the helpdesk." Customers don't see it. Each agent still sends the actual reply. And resolving the tracker doesn't resolve the linked tickets by default. Linked tickets need the Pro or Enterprise plan.

That's the gap AI fills well. The helpdesk feature gives you a list of every ticket about the outage. AI turns the latest approved update into a reply on each one, in the customer's language, without anyone copy-pasting 300 times. Tagging matters here too: one operator on r/sre summed up the basic move.

Reddit

"support tools like zendesk allow you to add tags to tickets related to the same issue via a "master" ticket"

A tag like incident-2026-10-30-checkout on every matched ticket is what lets you close them all later, count them for the post-incident report, and spot the customers who wrote in three times. If you haven't set up AI ticket tagging yet, an outage is a painful place to discover you need it. The same goes for ticket deduplication, since outage tickets arrive in bunches from the same people.

Update the macro your human agents use at the same time as the status page. An AI macro that still says "we're investigating" an hour after the fix shipped is how a customer gets two different answers in one afternoon.

When should the AI reply on its own during an incident?

Only when three things are true: someone has declared the incident, the ticket clearly matches it, and the reply uses wording a person has already approved. If any one is missing, the AI drafts and a person sends. That's the whole rule, and it covers almost every case.

Here's how I'd sort incoming tickets during a major incident:

The ticketWhat the AI doesWhy
Matches a declared incidentReplies with the latest approved update and the next update time, tags it, links itThe words were already checked once
Looks like an outage, nothing declared yetLeaves an internal note and flags it to the on-call team, doesn't confirm anythingIt might be the first sign of a real incident, or one customer's Wi-Fi
From a big account or names a contractHands it to the account owner with a summaryThese customers expect a person, and an escalation path
Reports data loss, a security worry, or money taken twiceStraight to a person, no replyOne wrong line here is a legal problem
Not about the outageNormal queueDon't let the incident swallow everything else

Two of these come straight from real setups. Qontro, an ERP company on Freshdesk, drafts a reply on every new ticket (190 in a month) but sends outages, data loss and billing questions straight to a person, and when a ticket doesn't have enough in it to answer confidently, the agent says so instead of guessing. SE Ranking runs eesel across 4,650 Zendesk conversations a month and tags every ticket it touches with ai_handled, so the team can count exactly what the AI did. Its handover rule also fits incident days well: the agent tells customers to expect a reply in one or two business days and never says someone is joining now.

That last point is a scar for me. I've watched a bot tell customers it was handing them to a person when the transfer never actually happened, at a web-hosting company on Zendesk. During an outage, that kind of empty promise doubles the anger. So whatever your AI says about next steps has to be something your system really does. My handoff best practices post covers how to test that before you need it, and simulation testing lets you replay last quarter's outage tickets against new rules first.

One more trap: incident replies from the AI should stop the moment a person takes over the thread. ClutchLoop runs its agent on Gorgias with exactly that rule, if a team member is already replying in a thread, the agent stays out. For big accounts with an account manager on the ticket, that's the behavior you want.

What do the incident and helpdesk tools' AI actually do?

Most of the AI in incident tools is aimed at the engineers: summaries, timelines, post-mortems. Fewer features touch customer messages, and the ones that do are drafting tools with a person reviewing. Here's what each vendor's own pages say, with their prices.

ToolAI for incident commsStatus pagePrice (vendor page)
Atlassian StatuspageNone listed on the pricing pageYes, the core productFree (100 subscribers), Hobby $29, Startup $99, Business $399, Enterprise $1,499 a month
incident.ioAI features including Scribe and Suggestions, plus an AI-native post-mortem editor on Pro and Enterprise1 public page on Basic, Team and Pro, customer pages on EnterpriseBasic free, Team $19 per user a month, Pro $25, plus on-call $10 to $20 per user
PagerDutyAI Status Updates drafts internal and external updates, responders review before sendingExternal page on Professional (250 subscribers) and upProfessional $21 per user a month annual, AI as an add-on; Starter $2,800 a year with 1,000 AI actions
Jira Service ManagementRovo agents from Standard; AI incident creation and post-incident review drafts on PremiumEnterprise plan onlyStandard $21.50, Premium $55.28 per agent a month
ZendeskCopilot (summaries, merge suggestions, similar tickets), AI agents billed per automated resolutionNoSuite Team $55, Professional $115 per agent a month annual; Copilot $50 per agent a month
FreshdeskFreddy AI Agent (500 sessions included, then $49 per 100), Copilot $29 per agent a monthNoGrowth $19, Pro $55, Enterprise $89 per agent a month annual
eeselDrafts or sends replies inside your helpdesk, tags and links tickets, approvals per actionNo, reads yours$299 a month for 500 credits, one ticket is one credit

A few details that matter more than the price column. PagerDuty's docs say AI Status Updates can draft external updates only from Slack; in Microsoft Teams and the web app it's internal updates only. In Jira Service Management, "incident stakeholder communication" (inviting and emailing internal and external stakeholders) is a Premium feature, so the Standard plan doesn't include it. More on that in my JSM pricing breakdown and the post on AI post-incident reviews.

On the helpdesk side, neither Zendesk Copilot nor Freddy AI knows about your incident unless someone tells it. They work from tickets and help articles, and your incident record lives in a different tool. Wiring the two together is the actual job.

Full plan details are in my Zendesk pricing and Freshdesk pricing guides.

How do you wire the incident record into the helpdesk?

Send every status update from your incident tool to the AI that answers tickets, as data. This is the part I spend my days on, so here's the plain version of how it works.

Statuspage can send each incident update to a URL. Its webhook notifications are HTTP POST requests carrying the incident or component update, and they're available from the Startup plan ($99 a month) up. Here's the kind of update those payloads carry:

A Statuspage incident page titled Errors in the admin portal, with a Subscribe to updates button and an Investigating update reading we are aware of errors in the admin portal and will post more updates shortly, as taken from Atlassian's Statuspage docs
A Statuspage incident page titled Errors in the admin portal, with a Subscribe to updates button and an Investigating update reading we are aware of errors in the admin portal and will post more updates shortly, as taken from Atlassian's Statuspage docs

On the eesel side, a webhook automation gives you a private URL that any service can POST JSON to, and the agent wakes up with that data and follows the instructions you wrote for it. So you point the Statuspage webhook at that URL, and tell the agent: "When an incident update arrives, save the latest approved text as the current incident status. On new tickets that match it, reply with that text and the next update time, add the incident tag, and leave everything else for a person." The same works from incident.io or PagerDuty through their own webhooks or Zapier. eesel doesn't have a native Statuspage integration, so the webhook is the route.

Inside Zendesk, the eesel actions that matter on an incident day are: draft ticket reply (held until a person approves), leave internal note, add tags, search tickets, and update fields like status or priority. Each action can be set to run on its own, need approval, or be off. On day one I'd put "Send ticket reply" on approval and "Add tags" and "Leave internal note" on auto.

The eesel dashboard showing an approval request, Allow eesel to use Leave public reply, with the drafted reply above Approve, Always Allow and Deny buttons, as taken from eesel's docs
The eesel dashboard showing an approval request, Allow eesel to use Leave public reply, with the drafted reply above Approve, Always Allow and Deny buttons, as taken from eesel's docs

Approvals don't have to happen in the dashboard. If the run started from Slack, the approval card lands in that thread, so your comms owner can approve replies from the same channel they're already watching. If your incident lead lives in a terminal, the eesel CLI does the same job: eesel approvals lists what's waiting, and eesel approvals approve <id> sends it. That also means a coding agent like Claude Code or a script in your incident runbook can check the queue for you. Nothing about the agent changes between the dashboard, Slack and the terminal. It's the same teammate with the same permissions.

A Zendesk ticket where eesel AI has posted a drafted reply as an internal note, signed Left by eesel AI with a link to view it in the dashboard, as taken from eesel's Zendesk docs
A Zendesk ticket where eesel AI has posted a drafted reply as an internal note, signed Left by eesel AI with a link to view it in the dashboard, as taken from eesel's Zendesk docs

What happens after the incident is resolved?

A second wave of tickets, and most teams don't plan for it. The status page flips to resolved and everyone exhales, and then the inbox fills with a different kind of message.

Hand-drawn timeline starting at Resolved with four stops: is it really fixed, point to the final update; close linked tickets, one final note to each; report requests, send the post-incident report; SLA credit asks, route to a person; with hours marked near the first stop and days near the last
Hand-drawn timeline starting at Resolved with four stops: is it really fixed, point to the final update; close linked tickets, one final note to each; report requests, send the post-incident report; SLA credit asks, route to a person; with hours marked near the first stop and days near the last

Here's what comes in, roughly in order:

  • "Is it really fixed?" These arrive within hours, often from customers who never saw the resolved post. The AI can answer them with the final update text and a line inviting them to reply if they still see the problem. A real "still broken for me" goes to a person, since it might mean the fix didn't reach everyone.
  • Closing every linked ticket. Send one final note to every ticket tagged with the incident, not only the ones still open. In Zendesk, solving the problem ticket does most of this. In Freshdesk, you resolve the linked tickets yourself or have the AI post the final note on each. Watch your reopen rate for the next few days, since it tells you if the "fixed" message landed.
  • Post-incident report requests. Bigger customers ask for the write-up, often for their own compliance. Keep a list of who asked during the incident (the tag makes this easy) and send the report to all of them when it's published. Don't let the AI summarize root cause before your engineers publish it.
  • SLA credit asks. These are contract questions with money attached. Route them to a person with the customer's plan and the incident's start and end times attached, the same way I'd handle billing disputes.

The wave is also where you learn the most. Count the tagged tickets, how many came before the first status post, and how many asked "any update?". Those three numbers tell you whether your first post was slow, whether your cadence held, and where to start next time. AI support reporting can pull them for you.

Getting this right matters past the day itself. As one founder on r/SaaS put it:

Reddit

"if you wait until an outage to figure this out it’s already chaos, so even a simple status page plus a prewritten we’re investigating template and one owner for updates goes a long way because trying to debug while replying to tickets in real time is how small issues turn into trust problems fast"

Trust is also why I'd connect this to your churn work. The customers who wrote in during an outage are the ones most likely to be weighing a switch afterwards, and a personal follow-up from their account manager a week later costs very little.

How do you set it up before the next outage?

Do it on a quiet Tuesday, not at 2am. Here's the order I'd go in:

  1. Name the comms owner rota. One person per shift who isn't on engineering duty. Write it next to your on-call schedule.
  2. Write the incident record template. The four fields: what's affected, verified facts, what we're doing, next update at.
  3. Pre-approve the wording. "Investigating", "identified", "monitoring", "resolved" posts, plus a ticket reply and an account email for each. incident.io's report recommends pre-approved templates for common incidents for exactly this reason.
  4. Turn on ticket linking. Problem and incident tickets in Zendesk, or linked tickets in Freshdesk, plus one tag format for every incident.
  5. Connect the AI with approvals on. Set public replies to need approval, tags and internal notes to auto, and connect the status page webhook. Review a week of drafts on real tickets before moving any reply to auto.
  6. Run a drill. Fake a SEV2 in a test brand. Check the first post goes out inside your target, the heartbeat fires, the macro updates, and every tagged ticket gets the final note.

If your team works across shift changes or covers weekends thinly, step 1 matters most. An outage at 3am with nobody on the comms rota is how the status page sits on "investigating" for four hours.

Try eesel for your incident days

If your support queue runs on Zendesk, Freshdesk or Gorgias, eesel's AI helpdesk teammate joins it like a new agent who already read your help center and past tickets. On an incident day it tags every outage ticket, replies on matched tickets with the update your comms owner approved, and hands big accounts, data loss and billing straight to a person, the setup Qontro runs on Freshdesk. Connect your status page through a webhook and every reply stays on the same story as the status page.

eesel working a Zendesk ticket: it reads the customer's data, updates the ticket fields, tags it, and writes the reply

It's free to start with 100 credits, then $299 a month for 500, with one ticket counting as one credit however many updates it gets. Set it up on Zendesk or Freshdesk before your next outage, not during it.

Try eesel

Frequently Asked Questions

What is AI for major incident communication?
It is AI that drafts the updates your team sends during an outage (status page posts, ticket replies, emails to big accounts, internal summaries) from one verified incident record, so every channel says the same thing. A person on your team approves anything public before it goes out. It pairs well with AI support during outages, which covers the ticket flood itself.
Can AI write status page updates during an outage?
Yes, as drafts. PagerDuty's AI Status Updates and incident.io's AI both draft updates from the incident data, and PagerDuty's docs say responders review before anything is sent. Keep it that way for anything public, and let the AI fill in the routine 'still investigating, next update at' posts so the 30-minute rhythm never slips. My guide to approval workflows covers how to set the review step up.
How often should you update customers during a major incident?
Every 30 minutes is the target incident.io sets for major and critical incidents, and its own data puts the median between 24 and 30 minutes. Post on schedule even when nothing changed, and always say when the next update will come. A predictable rhythm is what stops customers opening 'any news?' tickets and protects your SLA numbers.
Should an AI agent reply to customers automatically during an outage?
Only on tickets matched to an incident someone has already declared, and only with wording copied from the latest approved update. It should never guess an ETA, a root cause, or say data is safe. Everything else, including big accounts and anyone reporting data loss, goes to a person through a clean handoff.
How much does AI for major incident communication cost?
It depends on where the AI sits. PagerDuty's Professional plan is $21 per user a month on annual billing, with AI Status Updates as an add-on. incident.io's Team plan is $19 per user a month and Pro is $25. Zendesk Copilot is $50 per agent a month on annual billing. eesel starts at $299 a month for 500 credits, where a ticket is one credit however much work goes into it.
What should happen after the incident is resolved?
Expect a second wave: 'is it really fixed?' replies, requests for the post-incident report, and SLA credit asks. Close every linked ticket with one final note, send the report to everyone who asked, and route credit requests to a person. Tag them all so you can count the wave in your support reporting.

Share this article