✍️ 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.
0Reviews
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.