Playbook · Native refund / cancel mail

Shopify refund or order cancelled email not sending — after the money already moved.

Written for a Shopify DTC owner who already uses native Shopify notifications, refunded or cancelled an order (or thought they did), waited, and the buyer still has no refund or cancellation email. This is a native-notifications playbook for Order refund and Order cancelled, not Order confirmation, not Shipping confirmation, and not a Klaviyo copy rewrite. Native tools first. Honest limits. No ticket-cut number, no recovered-revenue claim, no invented case studies.

Nico at Latch AI Ops · Sep 2, 2026 · ~9 minute read

Buy the 72-hour install — $997Order confirmation not sendingShipping confirmation not sendingMerchant FAQ

01

Native Shopify, not Klaviyo, not order confirmation, not shipping confirmation.

Four products can send mail after a sale. They do not share a toggle or a send log. Native order confirmation fires when a paid order exists — that playbook is order confirmation email not sending. Native shipping confirmation fires when a fulfillment exists — that playbook is shipping confirmation email not sending. This page is the later event: the buyer already paid, then you refunded, cancelled, or both, and the native “your order was cancelled / refunded” mail never landed. Those templates live in Shopify admin: Settings → Notifications → Customer notifications → Order cancelled and Order refund. Klaviyo refund mail lives in a Klaviyo flow on Refunded Order (or Cancelled Order). If the missing mail is a Klaviyo flow that looks live, that is Klaviyo flow not sending, not this page.

Six ordinary reasons that template never lands: it is still off, Notify customer was unchecked on the refund or cancel dialog, the money moved at Stripe / PayPal / a returns app and never as a Shopify refund, you tested order confirmation not a refund, you cancelled when you meant to refund (or the reverse), or sender / spam hid a send that did fire. Walk them in that order. You already pay for Shopify. You do not need a returns-email app to read the notification list.

02

Order refund / Order cancelled template is off.

Open Settings → Notifications → Customer notifications. Find Order cancelled. Find Order refund. Read the on/off state of each, not the subject line, not a preview, not Order confirmation or Shipping confirmation next to them. Disabled does not send. A staffer who turned native mail off “so Klaviyo can own it” and then never published the Klaviyo refund flow leaves a hole that looks like Shopify is broken.

They are two templates. Cancel without a refund can fire Order cancelled and never Order refund. A refund that leaves the order open can fire Order refund and never Order cancelled. A cancel-and-refund in one dialog can fire both, one, or neither depending which boxes you left on. Order edited, Payment receipt, and Return created (if your shop uses Shopify Returns) are also different templates — they fire on later or adjacent events, not on this refund.

Turn Order cancelled and Order refund on only if native Shopify is supposed to send them. If Klaviyo or a returns app (Loop, Returnly, Redo, Narvar) is supposed to send instead, leave these templates off on purpose and go fix that product. Do not leave both off. Do not leave both on unless you want two emails for one refund.

03

Notify customer was unchecked on refund or cancel.

The template can be on and still not send. Open the order → Refund (or Cancel). Shopify’s refund and cancel dialogs have a checkbox: Notify customer / Send a notification to the customer. Unchecked means no email, even with a live template and a real refund on the payment. Staff who refund “quietly” so they can email later often never email later.

This is the support-desk trap. Someone refunds twenty orders at 4pm with the box off, then never sends. A saved browser that remembers the last refund state will keep it off. A cancel dialog also asks separately whether to restock and whether to refund — restock is inventory, refund is money, notify is mail. Checking restock does not send the refund email.

For the next test: pick one paid live order (not a draft), issue a small partial refund or a cancel-and-refund with Notify customer on, to an inbox you control, wait a minute, then read that inbox — not the order timeline alone. The timeline can show “Refunded” without “Order refund email sent to…”.

04

Refund happened outside Shopify.

Native refund and cancel mail fires on a Shopify refund or a Shopify cancel, not on money that moved in another tab. A refund from the Stripe, PayPal, Shop Pay, or Shopify Payments dashboard that never wrote a refund on the Shopify order leaves the order Paid. Paid does not send Order refund. The gateway receipt is not Shopify’s template.

Returns apps, POS returns, Amazon / Facebook Shop, and some wholesale invoice tools also refund or restock without creating the native Shopify notification event. Open the order. If there is no Refunded event and no Cancelled event on the timeline, native mail has nothing to send. Confirm the returns app is set to create Shopify refunds (and, separately, to notify — many default off so they do not double-email).

A gift-card refund, store-credit app, or “we’ll sort it in Slack” note is not a Shopify refund. Issue the refund on the order, or fix the app that is supposed to. Then re-read section 03 — the notify box on that new refund.

05

You tested order confirmation, not a refund or cancel.

Placing a test order proves Order confirmation, not Order refund or Order cancelled. Preview in the notification editor and Send test email prove the template renders. They do not prove a live refund fires it. A staff email on the order is not the customer. An unpaid draft cannot refund.

Honest test: checkout from a phone that is not logged into admin, pay, then refund or cancel that order with Notify customer on, to an inbox you own that is not the store’s staff address. Wait. Then search that inbox and spam for the store name. If Order confirmation arrived and the refund or cancel mail did not, the bug is template / notify box / refund path — not “Shopify email is down.”

Shopify Flow “send internal email” is staff mail. It is not this template. If what you built is a Flow workflow that never runs, that is Shopify Flow not running, not a refund-email bug. Missing customer email on the order has nowhere to send — same as order confirmation, different event.

06

Partial refund vs cancel vs return.

A partial refund on a still-open order is Order refund, not Order cancelled. The order stays open; shipping confirmation can still fire later. A full cancel without refunding payment (COD, draft invoice, already-voided auth) is Order cancelled, not Order refund. A buyer who got “cancelled” and nothing about money, or money back with no cancel, is often the correct native behavior — you picked one action.

A return is not a refund. Shopify Returns, a returns portal, or a warehouse restock can create a return without refunding. The customer asked “where is my refund email” while Shopify only has a return request. Refund when the money actually moves, then the Order refund template has an event. Do not debug refund mail on a return that is still pending.

Chargebacks, voids, and authorization reversals also skip or replace this path. POS exchanges, gift-card only refunds, and “refund to original payment” vs “refund as store credit” each write a different timeline event. Name the event on the order before you buy a second returns-email app.

07

Sender, BCC, and spam hid the send.

Shopify can send and the customer still reports nothing. Open Settings → Notifications and read the sender email. A custom from-address without authenticated DNS (SPF / DKIM for the domain Shopify tells you to add) lands in spam, or is dropped. A shared @shopifyemail.com from-address also gets filtered on some inboxes. BCC to the owner is not proof the customer got it — BCC can arrive while the To: line bounced.

On the order timeline, look for a notification sent event, not just Refunded or Cancelled. If Shopify says it sent, have the customer search spam, promotions, and the exact from-address. If Shopify does not say it sent, go back to template / notify box / refund path — do not buy a deliverability app for a mail that never left.

Do not install a second refund-email app to “make sure it fires.” You will double-email the next customer who was never the bug. Shopify Email (marketing campaigns) is also not this template — mixing them is how you pay for two products and still send none.

08

When to stay DIY vs pay $997.

Stay DIY if you can spend one afternoon on the list above: templates on, notify box on, refund or cancel in Shopify, real paid order, right event (refund vs cancel vs return), sender/spam. Refund one live order from a phone. Read the inbox. That is the whole playbook. No agency required. Short answers also live on the merchant FAQ. Related troubleshooting: order confirmation not sending (the checkout template), shipping confirmation not sending (the fulfill template), Klaviyo flow not sending, Klaviyo + Shopify notifications.

Pay for help when the work is not the notification toggle — it is connecting the stack you already have so refund mail is one live path instead of a native template plus a Klaviyo draft plus a returns app you forgot, lead capture is not dying in DMs, and exceptions show up in a channel you already check. That is the Latch AI Ops install.

What $997 USD one-time buys: lead capture on the live store, ops alerts in a channel you already check, and a checkout-ready workflow. 72 hours after collaborator access, not after payment. One live Shopify store. Access plus a delivery thread. Store URL collected at checkout. Not a SaaS seat, not a notification rebuild, not a Klaviyo rebuild, not a Gorgias implementation, not a support VA, not a brand or theme job.

Other shops’ public ranges, not testimonials: a Shopify Flow or recovery-app install typically runs $500–$2,500. A Klaviyo-only flow rebuild typically runs $2,000–$5,000.$997 is the cheap end of that work, sold as a 72-hour install of three systems — not as a ticket-cut number or recovered checkout revenue.

What it does not buy: fewer WISMO tickets, recovered checkout revenue, a lift in conversion, or a case study. Latch AI Ops has not published customer proof because there are no customers yet. You are buying the install.

Checkout is on Whop. Operator is Nico. United States offer. You can revoke collaborator access after handoff. We do not take owner passwords.