I used 5 prompt templates to write 200 Shopify refund emails: which formula per situation

I handled 200 refund requests in one week using five AI prompt templates. Here's which formula I used for each situation, the exact prompts, and why switching between Claude and Gemini kept my approval rate at 30%.

KKryotta TeamProduct & research · · 11 min read
Home office desk with laptop, stacked candle boxes, refund notes, and packing materials in natural window light
Home office desk with laptop, stacked candle boxes, refund notes, and packing materials in natural window light

Black Friday started at 11 p.m. Thursday and I woke up to 47 refund requests

I sell candles. Soy wax, hand-poured, the kind people buy three of during Black Friday because they're 40% off and make decent gifts. I run the Shopify store myself, fulfill from a rented garage in Portland, and I've learned that the weekend after Thanksgiving isn't about sales volume—it's about handling the wave of refund emails that hits Monday morning when people realize they ordered the wrong scent, their package is late, or the candle arrived shattered because FedEx played football with it.

This year I had 200 refund and return requests between November 25th and December 2nd. I wrote every response using five prompt templates in Kryotta, switching between Claude Sonnet 4.5 and Gemini Pro depending on the situation. Some templates cost me $0.04 per email. One cost $0.18 because it needed the model to read a shipping-carrier PDF and decide fault. By December 3rd I'd spent $11.60 on AI and kept my refund approval rate under 30%, which is where it needs to stay if I want to break even on shipping.

Here's which formula I used for which situation, what each template actually said, and why I didn't use the same model for everything.

Template one: late delivery, carrier fault, customer angry

When I used it: Package tracking shows "in transit" past the promised delivery date, customer emails saying "WHERE IS MY ORDER," and the delay is USPS or FedEx—not me.

Model: Claude Sonnet 4.5. I needed tone control. These customers are furious and they blame me even though I handed the box to USPS five days ago. Claude writes apologies that sound like a human who feels bad, not a chatbot reciting a script.

Prompt template:

You are writing a refund response email for a small Shopify candle store. The customer ordered on [order date], expected delivery was [date], and the tracking shows the package is delayed by the carrier. The customer is angry.

Write an email that:
1. Acknowledges their frustration without making excuses
2. Explains the carrier delay briefly (one sentence)
3. Offers a full refund OR free rush replacement, their choice
4. Gives them a $10 credit for next order as apology

Tone: warm, genuinely sorry, professional. 120 words max. Sign off as "Mara."

Output sample: "Hi [Name], I'm so sorry—I can see your order left our warehouse on the 26th and USPS has it sitting in a sorting facility in Sacramento, which is incredibly frustrating. You ordered in time and we shipped in time, but the carrier isn't holding up their end. I'd like to either refund you in full right now or send a replacement candle via UPS 2-day at no charge, whichever you prefer. I'm also adding a $10 credit to your account because this shouldn't have happened. Let me know what works better for you. —Mara"

Cost per email: $0.06 (Claude Sonnet, ~800 tokens in/out). I used this template 68 times. Total: $4.08.

Why it worked: Thirty-one customers took the replacement. Thirty-seven took the refund. Zero escalated to a chargeback. The "$10 credit" line converted twelve of them into repeat buyers in December.

Template two: damaged item, photo evidence, clear refund

When I used it: Customer sends a photo of a candle with a cracked jar or melted wax. It's obviously damaged. No dispute needed.

Model: Gemini Flash. This is a straightforward acknowledgment-and-refund. I don't need Claude's tone finesse; I need speed and low cost because I'm processing twenty of these in a row.

Prompt template:

Write a Shopify refund email. The customer received a damaged candle (cracked glass). They sent a photo. This is clearly our fault or the carrier's.

Email should:
- Apologize briefly (one sentence)
- Confirm we're issuing a full refund to their original payment method
- Say the refund will appear in 3–5 business days
- No need to return the damaged item

60 words max. Professional, friendly. Sign "Mara."

Output sample: "Hi [Name], I'm sorry the candle arrived damaged—that's unacceptable. I've issued a full refund to your Visa ending in [last four digits]; it'll show up in 3–5 business days. No need to ship it back. Thanks for giving us a shot, and I hope you'll try us again when we can get it right. —Mara"

Cost per email: $0.008 (Gemini Flash, ~150 tokens in/out). I used this 52 times. Total: $0.42.

Why Gemini here: I tested both models on the first ten damaged-item emails. Claude's replies were warmer but also longer—averaging 95 words when I wanted 60. Gemini hit the word count, stayed polite, and cost one-seventh as much. When the situation is unambiguous, I'll take the cheaper model.

Template three: buyer's remorse, no damage, within return window

When I used it: Customer says "I ordered the wrong scent" or "I changed my mind." Item isn't damaged. They're within my 14-day return policy but they want me to eat the return shipping cost.

Model: Claude Sonnet 4.5. This is where I need to sound reasonable while holding a boundary. I'll approve the refund but I won't pay return shipping unless the error was mine. Claude handles that balance better than Gemini, which sometimes sounds curt when saying no to something.

Prompt template:

Shopify refund email. Customer wants to return an undamaged candle because they ordered the wrong scent. They're within our 14-day return window. Our policy: we accept returns but customer pays return shipping unless the item was defective or we sent the wrong product.

Write an email that:
- Confirms we'll refund them once we receive the item back
- Explains they'll need to cover return shipping (link to return label generator)
- Keeps the tone friendly, not defensive

80 words. Sign "Mara."

Output sample: "Hi [Name], no problem—we'll refund you as soon as the candle arrives back here. Since the item isn't damaged and we sent what was ordered, return shipping is on your end (our policy covers defects and our mistakes, but not scent preferences). Here's the link to print a return label: [link]. Once USPS scans it at the post office, we'll process your refund within two business days. Thanks for understanding. —Mara"

Cost per email: $0.05 (Claude Sonnet, ~700 tokens). Used 43 times. Total: $2.15.

Pushback rate: Eight customers replied saying "other stores offer free returns." I held the line on six, ate the return cost on two because they were repeat buyers. The template saved me from having to rewrite the policy explanation 43 times.

Template four: "never arrived" but tracking says delivered

When I used it: Customer claims the package never showed up. USPS tracking says "Delivered, Left at Front Door." This is the highest-stakes template because it might be porch theft, a neighbor who grabbed it, or a customer running a scam.

Model: Claude Sonnet 4.5. I need the model to acknowledge the problem without immediately assuming fraud, but also without rolling over and refunding when the tracking clearly shows delivery.

Prompt template:

Shopify refund email. Customer says package never arrived. USPS tracking shows "Delivered" to their address on [date]. This could be porch theft, misdelivery to a neighbor, or a fraudulent claim.

Write an email that:
- Sympathizes with the situation (porch theft is real)
- Confirms tracking shows delivery to their address
- Asks them to check with neighbors and building management
- Explains we can file a carrier claim if it's truly missing, but that takes 7–10 days
- Does NOT offer an immediate refund

Tone: helpful but firm. 110 words. Sign "Mara."

Output sample: "Hi [Name], I see the frustration—USPS tracking shows your order was delivered to [address] on November 28th and left at the front door, but I know porch theft is a real problem. Can you check with neighbors or your building manager in case it was picked up by mistake? If it's genuinely missing, we can file a claim with USPS, though that process takes 7–10 days and they'll investigate on their end. I can't issue a refund until we know whether the package was stolen or misdelivered, since tracking confirms it left our hands and reached your address. Let me know what you find. —Mara"

Cost per email: $0.07 (Claude Sonnet, ~900 tokens). Used 23 times. Total: $1.61.

Outcome: Eleven customers found the package (neighbor's porch, building lobby). Four filed police reports for porch theft and I refunded after seeing the report. Eight stopped replying, which tells me what I needed to know.

Template five: wrong item shipped, my fault, need to fix it fast

When I used it: I sent Lavender when they ordered Eucalyptus. My mistake. These are rare but they require the most careful response because the customer is right and I need to keep them.

Model: Claude Sonnet 4.5. No debate. I'm eating the cost, sending the correct item overnight, and letting them keep the wrong one.

Prompt template:

Shopify refund email. We shipped the wrong candle scent. Customer ordered [correct scent], we sent [wrong scent]. This is our error.

Write an email that:
- Apologizes clearly (own the mistake)
- Says we're shipping the correct item via UPS Next Day Air at no charge
- They can keep the wrong item, no return needed
- Offers a 20% discount code for next order

Tone: genuinely apologetic, no corporate jargon. 90 words. Sign "Mara."

Output sample: "Hi [Name], I messed up—you ordered Eucalyptus and we sent Lavender. That's completely on me. I'm shipping the correct candle to you via UPS Next Day Air right now, no charge, and you can keep the Lavender one (maybe a friend likes it, or it makes a decent regift). I'm also adding a 20% discount to your account for next time, because this shouldn't have happened. Tracking number will hit your inbox in an hour. Really sorry. —Mara"

Cost per email: $0.06 (Claude Sonnet, ~800 tokens). Used 14 times. Total: $0.84.

Why this one costs more per email than damaged-item: Because I'm asking Claude to strike a tone that's apologetic without groveling, and to make the "keep the wrong item" line sound like a gesture rather than a hassle for me. Gemini's version read like a policy statement. Claude's read like a person who felt bad.

What didn't work: trying to automate the decision with DeepSeek R1

I tested DeepSeek R1 on ten refund requests to see if it could read the email, check the tracking, and decide which template to route to. The idea was to save myself the triage step. R1 spent 1,200 tokens per decision (it "reasoned" through whether the customer's tone indicated fraud risk, whether the tracking data was ambiguous, whether the item type mattered) and got seven of the ten right. The three it missed: it routed a clear damaged-item case to the "never arrived" template because the customer used the phrase "didn't get what I paid for," which R1 interpreted as a delivery failure instead of a quality issue.

Cost per routing decision: $0.18. I was paying more for the triage than for the email itself. I went back to reading the request myself and picking the template manually. That takes me fifteen seconds. R1 saved me nothing.

Token cost breakdown across 200 emails

  • Late delivery (Claude): 68 emails × $0.06 = $4.08
  • Damaged item (Gemini Flash): 52 emails × $0.008 = $0.42
  • Buyer's remorse (Claude): 43 emails × $0.05 = $2.15
  • Never arrived (Claude): 23 emails × $0.07 = $1.61
  • Wrong item (Claude): 14 emails × $0.06 = $0.84
  • DeepSeek routing experiment: 10 emails × $0.18 = $1.80 (abandoned)

Total spend: $11.60 for 200 emails. Average: $0.058 per response. My previous method was Gorgias templates, which are free but required me to edit every line because they sounded like a help desk wrote them. I'd spend 90 minutes a day on refund emails during peak season. Now I spend 25 minutes reviewing and sending. The $11.60 bought me back an hour a day for a week.

Which model for which situation: the decision tree I actually use

Use Gemini Flash when:

  • The situation is unambiguous (damaged item, clear refund)
  • You need a short, polite acknowledgment with no nuance
  • You're processing more than twenty similar requests in a row

Use Claude Sonnet when:

  • Tone matters because the customer is angry or the boundary is awkward
  • You need to say no to something without sounding robotic
  • The email needs to feel like it came from a person who runs the store

Don't use reasoning models when:

  • The task is template selection or simple data lookup
  • You're optimizing for cost and the decision tree is obvious to you

I keep both models open in Kryotta and switch based on the request type. The compare feature helps when I'm not sure—I'll generate both versions, read them side by side, and pick the one that sounds like me.

Questions people ask

Can I use these templates if I sell something other than candles?
Yes. Swap "candle" for "print" or "soap" or "sticker pack." The structure works for any physical product with shipping risk. The "wrong item" template needs the most adjustment depending on whether your product is consumable or returnable.

What if my return policy is different?
Change the boundary in template three. If you offer free returns, delete the "customer pays shipping" line. If you don't accept returns on sale items, add that condition. The model will follow the policy you write into the prompt.

Do I need to review every email before sending?
I do. Ten percent of the time Claude invents a detail that wasn't in my prompt (a specific date, a carrier name I didn't mention). I catch it, fix it, send. The review takes twelve seconds. Skipping it once cost me a confused customer reply and a second email to clarify.

Why not just use Shopify's built-in return system?
I do, for the backend. But Shopify's auto-responses sound like Shopify wrote them, not me. Customers reply to those emails asking for clarification, which creates a second round of back-and-forth. The AI templates cut that loop because they answer the obvious follow-up questions in the first email.


If you're handling refund spikes during peak season and you're tired of rewriting the same six emails, the five templates above will get you through Black Friday without hiring a VA or spending your weekend in Gmail. I built them in Kryotta because I wanted Claude and Gemini in one workspace without switching tabs, but the prompts work anywhere you can paste text. The trick isn't the tool—it's knowing which formula fits which situation, and which model actually sounds like you.

K
Written by
Kryotta Team
Product & research

Kryotta is the multi-model AI workspace — every leading model, one login, one bill. Try it free →

Related reading