✍️ Writing

Service Outage Apology Email with Status Timeline

Write a customer outage apology with a minute-by-minute timeline from your notes. No invented root cause, SLAs, or credits.

0.0
0Reviews
P
August 25, 2026

Prompt

Act as a customer communications lead for a SaaS incident. You write an apology email and a status-page timeline from Inputs only. You do not invent root cause, affected percentages, credit amounts, or "will never happen again".

Inputs:
- Product and what broke: [Product]
- Customer-visible symptom: [Symptom]
- UTC start, detect, mitigate, resolve (or unknown): [Times]
- Who is affected, as we can actually slice it: [Scope]
- What we know vs guess: [Known]
- What we tried: [Actions]
- Current status: [Status]
- Credits or contract language we are allowed to mention: [Credits]
- Support path: [Support]
- Legal / brand review notes: [Review]
- Tone: [Tone]
- Audience: [Audience]

Generate:
1. Fact table: start, detect, mitigate, resolve in UTC. Blank stays UNKNOWN. Do not fill from vibes.
2. Severity one-liner for the status page (external). No internal severity names unless Review allows.
3. Email: subject (2 options), from-name suggestion, body. Structure: apology, what you saw, timeline, what we know, what we do not know, what you can do now, next update time only if Inputs have one.
4. Status-page timeline: timestamped bullets. Each bullet is an action or an observation, not a theory.
5. Root-cause policy: if Known does not include RCA, write "RCA not ready" and refuse to name a vendor or engineer as the villain.
6. Credits paragraph: only if Credits has language. Else "no credit language provided; do not promise a token".
7. Internal vs external: 5 phrases to keep internal (hostnames, Slack, employee names).
8. Follow-up email stub for when RCA exists: headings only, no fake findings.
9. Compliance: quote any drafted line that promises uptime, names a person, or invents a percent. Cut.

Constraints:
- Times in UTC. Label local only if Inputs gave it.
- Never invent a percentage of customers.
- Do not name on-call staff in the customer email.
- Do not blame a cloud provider unless Known names them with permission in Review.
- Tone matches Tone. If Tone is plain, no "we know this is frustrating" spam more than once.

Instructions

Replace every [bracket] with your details before running. Works on ChatGPT, Claude, and Gemini.

Examples

Example Input

Product: Relaydesk, inbound email-to-ticket
Symptom: new inbound mail not creating tickets; existing tickets readable; send from the app worked
Times UTC: start ~14:10 (first customer tweet, we have no earlier probe). Detect 14:22 (on-call dashboard, queue depth). Mitigate 15:03 (failover to the backup parser). Resolve 15:41 (primary parser taking traffic, error rate back to pre-incident on our dashboard; we will not quote the rate). Next update: none promised yet.
Scope: customers whose mail flows through parser pool A. We cannot honestly say a percent. US region. EU pool looked fine on the dashboard screenshot (internal).
Known: parser pool A stuck on a bad deploy of parser 1.18.2 at 14:05. Rollback to 1.18.1 at 15:03. Guess (do not ship): memory leak. RCA not done.
Actions: paused 1.18.2, failed over, drained a 38-minute mail backlog (that number is from our queue UI, ok to use), notified status page at 14:28
Status: resolved 15:41 UTC 25 Aug 2026
Credits: do not mention credits in this email; CS will handle per contract in a later note
Support: existing tickets still work; inbound delayed mail should appear without customers resending; if a message is still missing after 16:30 UTC, reply to this email with the Message-ID
Review: do not name the on-call. Do not name AWS. Do not say "never again".
Tone: plain, short paragraphs
Audience: admins who got a "mail is delayed" banner

Example Output

1. Fact table (UTC, 25 Aug 2026)
Start: ~14:10 (first public report; no earlier probe in Inputs) UNKNOWN before that.
Detect: 14:22.
Status page: 14:28.
Mitigate: 15:03 (failover, rollback 1.18.2 -> 1.18.1).
Backlog drain: 38 minutes (queue UI).
Resolve: 15:41.
Next customer update: not promised.

2. Status one-liner
Inbound email-to-ticket delayed for parser pool A; resolved 15:41 UTC. Existing tickets stayed readable.

3. Email
Subject A: Relaydesk inbound mail delay, resolved 15:41 UTC
Subject B: Inbound tickets were delayed today; you should not need to resend
From: Relaydesk Status
Body:
We delayed creating tickets from inbound mail today. Existing tickets stayed readable. Sending from the app was not the break.
What you saw: new inbound mail did not become tickets for customers on parser pool A (US). We are not giving a percentage; we do not have an honest one.
Timeline (UTC): ~14:10 first report; 14:22 we saw queue depth; 14:28 status page; 15:03 failover to the backup parser and rollback of parser 1.18.2 to 1.18.1; 38-minute backlog drain; 15:41 primary parser taking traffic again.
What we know: a bad parser 1.18.2 deploy at 14:05 on pool A. What we do not know: full RCA. We will not guess a memory leak in this email.
What you should do: do not resend yet. If a message is still missing after 16:30 UTC, reply to this email with the Message-ID. Support path is this thread.
Credits: not in this email.
We are sorry we delayed your inbound mail.

4. Status-page timeline
14:10 UTC Investigating: inbound mail not creating tickets (first report).
14:22 UTC Identified: queue depth on parser pool A.
14:28 UTC Update: status page posted.
15:03 UTC Monitoring: failover to backup parser; 1.18.2 rolled back to 1.18.1.
15:41 UTC Resolved: primary parser taking traffic. Backlog drain was 38 minutes.

5. Root-cause policy
RCA not ready. Do not ship "memory leak". Do not name a person. Do not name AWS.

6. Credits
No credit language in this send. CS follows contracts later. Do not promise a token.

7. Keep internal
On-call name. AWS. Slack channel. "EU pool looked fine" screenshot as a flex. Internal error-rate number (author forbade quoting). Hostnames.

8. Follow-up stub (headings only)
What happened. Customer-visible window. Trigger (deploy). Detection gap. Mitigations that worked. What we still do not know. What changes in parser deploy. How we will tell you. No findings filled.

9. Compliance
Cut: never again; percent of customers; credit amounts; cloud-vendor blame; on-call names; invented SLA. 38 minutes only as queue UI backlog drain. 1.18.2/1.18.1 only as deploy/rollback facts.

Reviews (0)

Please login to leave a review.
Loading reviews...