Difficult support emails are difficult for a predictable reason: two goals are in tension. You need to protect the business (the policy, the margin, the precedent) while keeping the customer from walking. Most bad support emails fail by picking one goal and abandoning the other, either caving instantly or hiding behind policy-speak.
The customer service email examples below are built for the tension. Each template acknowledges the specific problem, states the decision or facts plainly, and ends with exactly one next step. Copy them, replace the [placeholders], and adjust the warmth to your brand. If you’re unsure how warm is right for you, our customer support tone guide covers that calibration.
One habit worth stealing: verify every date, amount, and order number before sending. Templates fail loudest when the boilerplate is perfect and the refund amount is wrong. Teams on Replydesk skip the copy-paste step entirely — paste the thread and internal notes in, and the draft comes back with the specifics already merged — but the templates work fine by hand too.
Delays and mistakes
1. Shipping delay
Use when an order is late and you have (or can get) a real updated ETA. The mistake to avoid is apologizing without new information; customers write in for facts, not sympathy.
Hi [Name], I’m sorry your order is late. I know you expected it by [original date]. I’ve checked with the carrier: order [#number] is currently at [location/status], and the updated delivery estimate is [new date]. I’ll monitor the tracking and email you if anything changes. If it hasn’t arrived by [new date + 1 day], reply here and I’ll [escalate / reship / refund shipping] right away.
2. Outage apology
Use after service disruption, once you know the cause. Send it even to customers who didn’t complain: the proactive version earns trust, the reactive version merely repairs it.
Hi [Name], between [start time] and [end time] on [date], [product] was [down / degraded] due to [one-sentence plain-language cause]. During that window you may have experienced [specific impact]. The issue is resolved, and we’ve [concrete prevention step] to keep it from recurring. I’m sorry for the disruption. If it affected [data / billing / a deadline] on your end, reply here and we’ll make it right.
3. Apology for a late reply
Use when a ticket sat too long. Own it in one line and move immediately to the answer; an extended apology delays them a second time.
Hi [Name], I’m sorry for the slow reply. Your message deserved an answer sooner, and that’s on us. To your question: [full, complete answer; resolve everything in this email if at all possible]. Again, apologies for the wait. Anything else, I’m on it today.
4. Double charge
Use when billing charged twice and you’ve confirmed it. Admit fault in the first sentence and tell them they don’t need to do anything. That’s what prevents the chargeback.
Hi [Name], you’re right: you were charged twice for [order/subscription], and that’s our error. I’ve already issued a refund for the duplicate charge of [amount]; it should appear on your statement within [3–5] business days, depending on your bank. You don’t need to file anything on your end. If it hasn’t shown up by [date], reply here and I’ll escalate it with our payments team directly.
Money and “no”
5. Refund approved
Use for a clean approval. Keep it short: the only things that matter are the amount, the method, and the timeline.
Hi [Name], done. I’ve refunded [amount] to your [original payment method]. You should see it within [3–5] business days. I’m sorry [product/order] didn’t work out, and thanks for giving us the details we needed to sort it quickly. If there’s anything else, just reply here.
6. Refund denied
Use when the request falls outside policy and you’re holding the line. State the no early, give the concrete reason, then pivot to what you can offer. Never write “unfortunately, as per our policy”; say the actual policy.
Hi [Name], thanks for the details. I’ve reviewed the order, and because it was [purchased / delivered] on [date], it falls outside our [30]-day refund window, so I’m not able to issue a refund for it. What I can do is [store credit for the full amount / a replacement / X% off your next order]. If you’d like that, reply here and I’ll set it up today.
7. Price increase notice
Use before renewals at a new price. Lead with the number and the date. Customers forgive increases and do not forgive burying them.
Hi [Name], I’m writing ahead of your renewal on [date]: the price of [plan] is changing from [old price] to [new price] per [month/year]. Your current rate stays in place until then. The change reflects [one honest sentence, e.g. expanded features or rising costs]. If the new price doesn’t work for you, you can [switch to a lower plan / cancel] anytime before [date], and I’m happy to help you pick the right option.
8. Feature request: saying no
Use when the answer is a real no (not “someday”). A clear no with reasoning respects the customer more than a fake “we’ve passed it to the team.”
Hi [Name], thanks for the thoughtful request. I can see exactly why [feature] would help your workflow. I want to be straight with you: it’s not on our roadmap, because [honest reason, e.g., we’re focused on X this year]. Rather than leave you hoping, I’d suggest [workaround / alternative approach] in the meantime. If our direction changes, I’ll come back to this thread and tell you.
Hard conversations
9. Angry escalation
Use for the genuinely furious customer, usually after multiple failures. Don’t match energy, don’t be a doormat: name the failure precisely, then show what happens next and who owns it. If this escalates internally, write the incoming agent a proper brief; our guide to escalation and handoff notes covers what that should contain.
Hi [Name], you’re right to be frustrated: [summarize their experience specifically: three contacts, two missed promises, still unresolved]. That’s not the experience we want anyone to have, and I’m sorry. Here’s what I’ve done: I’ve taken ownership of this ticket personally, [concrete action taken now], and I’ll update you by [specific day/time] whether or not it’s fully resolved. If you’d rather talk it through, I’m available at [channel/time].
10. Asking for more information
Use when you genuinely can’t proceed without details. Ask for everything at once; nothing infuriates a customer like four rounds of “one more thing.”
Hi [Name], I want to get this fixed on the first pass, so I need three things from you: [1: a screenshot of the error], [2: the email on the account], and [3: roughly when it last worked]. Once you send those, I can [expected resolution] within [timeframe]. Anything you can’t get, just say so and we’ll work around it.
Endings
11. Closing an inactive ticket
Use after two or more unanswered follow-ups. Leave the door visibly open; a closure that feels like a door slam earns a bad review from someone who was just busy.
Hi [Name], I haven’t heard back since my message on [date], so I’m going to close this ticket for now to keep our queue tidy. Nothing is lost: if this is still unresolved, just reply to this email. It will reopen the ticket with the full history, and you won’t have to explain anything twice.
12. Cancellation request
Use when a customer asks to cancel. Process the request without friction first, then make exactly one relevant offer. Fighting the cancellation loses both the customer and the goodwill; a clean exit is how they come back later.
Hi [Name], done. I’ve scheduled your cancellation: your [plan] stays active until [end date], and you won’t be charged again after that. Before you go, one honest question: was there a single thing that would have kept you? If [a lower plan / pausing for a couple of months] would work better than leaving entirely, I can set that up instead, just reply here. Either way, your data stays available for [X days] in case you change your mind.
Making templates work at scale
Templates solve the blank-page problem; they don’t solve the merging problem. The slow part of support isn’t finding words, it’s weaving this customer’s order number, dates, and history into them without errors. That’s mechanical work, which is why it’s the part worth handing to AI: paste the thread and your internal note into Replydesk and the draft arrives with the specifics already in place, ready for a human read and send. If you’re testing that workflow, the free tier covers 20 drafts a day.
However you produce the email, the checklist before sending stays the same: is the decision stated plainly, is every number verified, and is there exactly one next step? Those three questions catch nearly every support email that would otherwise come back angrier.