Customer complaint response email templates for stores
A four-part structure for complaint replies (acknowledge, answer, fix, follow up) and six templates for the complaints a small online store meets most: damaged, late, wrong, disappointing, slow service and a missing refund.
By Max Lindberg · · 7 min read
A good reply to a customer complaint does four things, in this order: it acknowledges the specific problem, answers it with facts from the order, says what you will do to fix it and by when, and follows up when you said you would. Everything else, including most of the apology, is optional.
Below is that structure, six templates for the complaints a small store gets most, and the lines to keep out of a complaint reply. Words in double braces, like {{order_number}}, are blanks: fill each one from the order, never from memory.
The four parts of a complaint reply
| Part | What it does | Example line |
|---|---|---|
| Acknowledge | Shows you read their email, not just the subject line | "Your {{product_name}} arrived with a cracked {{part}}." |
| Answer | Gives the facts you checked | "I can see it left us on {{ship_date}} and was delivered on {{delivery_date}}." |
| Fix | Says exactly what happens next, and when | "A replacement leaves us on {{replacement_ship_date}}." |
| Follow up | Closes the loop | A short second email when the fix has happened. |
If you can only do the first two today, send them and give a date for the third. A complaint reply that promises a fix you haven't checked is the one that turns into a second complaint.
Before you reply: check the order
Open the order in your Shopify admin before you type anything. Check:
- Which order it is. A customer with more than one order may be writing about a different one than you assume, or about two at once.
- What happened to it. Fulfilment status, tracking, delivery date, any refund already issued.
- What has already been said. Earlier emails, and any note a colleague left.
- What your policy says. Your returns and refund policy, word for word, if the fix depends on it.
Then record the complaint where the next person will see it. In Shopify you can add a comment to the order's Timeline: open the order, click Leave a comment..., write what the customer reported and what you promised, and click Post. Shopify says Timeline comments on an order can only be read by you and other staff, and you can also comment on the customer record.
Template 1: the item arrived damaged or faulty
Hi {{first_name}},
Thank you for the photos — I can see the {{product_name}} from order {{order_number}} arrived {{what_is_wrong}}. I'm sorry; that's not how it should have reached you.
{{fix_offered}}. {{what_customer_needs_to_do}}
I'll email you again on {{follow_up_date}} to confirm it's done.
{{your_name}}
Fill {{fix_offered}} from your policy: a replacement, a refund, or the customer's choice. For the full set of damaged, wrong and missing item replies, see damaged item email templates.
Template 2: the order is late
Hi {{first_name}},
You're right to chase this. Your order {{order_number}} {{current_status}}, and it should have reached you by {{promised_date}}.
{{what_happens_next}}. If you'd rather not wait, reply and I'll {{alternative_offered}}.
{{your_name}}
{{current_status}} is what the tracking actually says today, such as "left us on {{ship_date}} and is with {{carrier_name}}". If it hasn't shipped, use a shipping delay email instead; if the parcel has gone quiet in transit, use a where is my order reply.
Template 3: wrong item or missing item
Hi {{first_name}},
I'm sorry — your order {{order_number}} should have contained {{item_ordered}}, and {{what_arrived_instead}}. That was our mistake.
I've arranged {{fix_offered}}, and it will leave us on {{ship_date}}. {{return_instructions_or_keep_it}}
{{your_name}}
Say whether they need to send the wrong item back before you promise anything. If you don't want it back, say so in the same email, so they aren't left holding it and waiting.
Template 4: the product isn't what they expected
The item isn't faulty; the customer just doesn't like it. Don't argue about whether they should like it. Point them to what your policy allows.
Hi {{first_name}},
Thank you for telling us — I'm sorry the {{product_name}} wasn't what you hoped for{{specific_point_they_raised}}.
You can return it within {{return_period}} of delivery for {{refund_or_exchange}}. {{how_to_start_a_return}}
If it would help, I'm happy to suggest {{alternative_product}} instead.
{{your_name}}
{{return_period}} comes from your published returns policy. If the customer is in the EU or UK, they may have a statutory right to cancel that doesn't depend on your policy: see the EU right of withdrawal and UK refund rules for online orders.
Template 5: they're complaining about your service
Slow replies, a colleague who got it wrong, an email that went unanswered. Own it without blaming the person.
Hi {{first_name}},
You're right, and I'm sorry: you wrote to us on {{first_contact_date}} and didn't get a proper answer. That isn't the service we want to give.
On your actual question: {{answer_to_original_question}}.
{{your_name}}
The second paragraph matters more than the first. A service complaint is usually still about the original problem.
Template 6: the refund hasn't arrived
Hi {{first_name}},
I've checked order {{order_number}}: we refunded {{refund_amount}} to {{refund_method}} on {{refund_date}}.
Banks usually take {{refund_processing_time}} to show a refund on a statement. If it isn't there by {{check_again_date}}, reply to this email and I'll look into it with you.
{{your_name}}
Fill {{refund_processing_time}} from your payment provider, not from a guess. If the refund was never issued, say so plainly and issue it before you reply.
The follow-up email
The fourth part of the structure is the one that gets skipped. Send it when the fix has happened, not before.
Hi {{first_name}},
A quick update on order {{order_number}}: {{what_was_done}}, on {{date_done}}.
If anything still isn't right, just reply to this email.
{{your_name}}
What to leave out of a complaint reply
| Don't write | Why |
|---|---|
| "As per our policy..." as the first line | It answers a question they didn't ask. Lead with their problem; quote the policy where the fix depends on it. |
| A date, tracking number or amount you haven't checked | A wrong fact in a complaint reply creates a second complaint. |
| "This has never happened before" | They don't care, and you probably can't prove it. |
| Blame on the courier or a supplier, without facts | If the courier lost it, say what the tracking shows. Otherwise the problem is yours to fix. |
| A promise someone else has to keep | If the refund needs the owner's approval, say you are checking, not that it's done. |
| A partial refund presented as final, when the customer asked for a full one | It may not close the matter (see below). |
Why a complaint reply matters later
A complaint that isn't resolved by email can come back as a chargeback. Among the practices Shopify lists for keeping a chargeback rate low is to "respond promptly to customer inquiries and complaints". For a dispute about an unacceptable product, the evidence Shopify suggests submitting includes "any messages where the customer described the issue, and your responses offering resolution".
Two more points from Shopify's help pages are worth knowing before you settle a complaint with money:
- When you partially refund an order, the customer can still open a chargeback for the full value of the order.
- Once a chargeback has started, you can't refund that order's payment through Shopify.
So write every complaint reply as if the customer's bank may read it one day, because it may. For the dispute itself, see the chargeback email to a customer.
When AI drafts the complaint reply
Complaint replies are where a confident wrong fact does the most damage: a made-up delivery date or a refund nobody approved. Corresso drafts a reply to every incoming email from documents your store approved, such as your returns policy and shipping page, and each fact in the draft cites the document it came from. Rules written in code hold any draft that promises a refund or replacement without citing a document allowed to offer one, and any draft with an order number, tracking number or date the AI wrote itself. With Shopify connected, the person answering fills those blanks from the order beside the email in one click. A person always reads the draft and presses Send. See how it works.