Playbook · Abandoned checkout email not sending
Abandoned checkout email not sending — Shopify Email or Klaviyo, after you already think it is on.
Written for a Shopify DTC owner who already pays for Shopify Email or Klaviyo, left a checkout, waited, and got nothing. This is a missing-mail playbook, not a copy rewrite. Native tools first. Honest limits. No recovered-revenue number, no conversion lift, no invented case studies.
Nico at Latch AI Ops · Sep 1, 2026 · ~10 minute read
Buy the 72-hour install — $997Abandoned checkout playbookKlaviyo + ShopifyMerchant FAQ
01
Missing is not late, duplicate, or copy.
If the reminder never arrived, do not start inside the template. Late, duplicate, and missing are three different bugs. The longer playbook for late and duplicate mail is the abandoned-checkout guide. This page is only the case where nothing sent.
Seven ordinary reasons a Shopify store sends nothing: native toggle off, Klaviyo flow still draft, trigger is Checkout Started instead of Abandoned Checkout, the customer already placed the order, you tested from an admin session, the delay is so long it looks dead, or duplicate suppression ate the send. Walk them in that order. You already have an ESP. You do not need a third recovery app to find a toggle.
02
Native Shopify Email toggle is off.
Shopify’s own abandoned-checkout emails live with checkout settings, not in the marketing app you opened first. Settings → Checkout. Look for abandoned checkout emails. The wording moves around. The toggle is still there. If it is off, native mail will not send. No amount of template editing changes that.
Note the delay while you are there. Then decide who owns the event. If Klaviyo is supposed to own checkout abandoned, leave native off on purpose — and prove Klaviyo is live. If Klaviyo is a draft, turn native on so something actually fires. One owner. Two systems both off is the gap that looks like “Shopify is broken.”
Overlap between Shopify Email and Klaviyo is a different page: Klaviyo + Shopify notifications. Here the failure is silence.
03
The Klaviyo flow is still a draft.
Open Flows. Find anything named abandoned checkout, abandoned cart, checkout started, or a Shopify recovery template. Read the status, not the name. Draft does not send. Manual does not send to a real customer who left checkout at 2pm. Live is the only status that counts.
A Sunday setup that never hit Live is the most common “Klaviyo is not sending” ticket. The canvas looks finished. The metric looks right. Nobody pressed Live. Or someone set it to manual so they could review the first ten, then never came back.
If you are not ready to maintain a Klaviyo flow, do not leave a draft sitting next to a native toggle that is also off. Turn Shopify Email on, or publish the flow. A checkout-ready workflow is one live sequence, not a pretty canvas.
04
Wrong trigger: checkout started vs abandoned.
Names lie. Triggers do not. A flow titled “Abandoned checkout” that listens to Checkout Started is waiting on the wrong event, or firing at the wrong time, or waiting for a person who never abandoned. Shopify native recovery fires on abandoned checkout: the customer reached checkout and left. Checkout Started is earlier — they opened checkout. Abandoned cart is earlier still.
Open the flow trigger. It must be the abandoned-checkout metric you actually want — usually Checkout Abandoned / Shopify Abandoned Checkout, not Checkout Started, not Added to Cart, not Placed Order. If the trigger is Checkout Started plus a long “has not placed order” wait, that can work, but only if that wait is set and the profile actually qualifies. A Started trigger with no wait looks like a burst of mail the moment someone opens checkout, or like nothing if other filters kill it. Confirm the metric. Then rename the flow so the name matches.
Mixing cart and checkout is how stores send two emails or none. If you only have budget for one sequence, run checkout abandoned. Details sit in the abandoned-checkout playbook.
05
They already placed the order.
Recovery mail is supposed to skip a customer who finished the purchase. Shopify native does this. A sane Klaviyo flow does this with a Placed Order filter or a “has not placed order since starting checkout” condition. If your test was: start checkout, pay, wait for the abandoned email — you tested the skip, not the send.
Same for a customer who abandoned, then bought from a different tab or a Shop Pay sheet before the delay elapsed. The sequence did its job. It did not fail. Look at the checkout and the order list before you rebuild the flow. An order confirmation in the same inbox is the tell.
If the filter is inverted — “has placed order” instead of “has not” — the live flow will look healthy and still send nothing to abandoners. Read the filter twice.
06
You tested from an admin session.
A checkout started while you are logged into Shopify admin, theme preview, or a staff account is not a customer checkout. Shopify and Klaviyo both treat some of those sessions as internal. The abandoned-checkout event never qualifies. Your inbox stays empty. The toggle looks “broken.”
Test from a phone that is not logged into admin. Use a real email you control, not the store owner address if that profile is excluded. Start checkout, enter an address, do not pay, close the tab. Walk away for the delay you think you set. Then look at the inbox, the spam folder, and — if Klaviyo owns it — the flow analytics / profile activity. The admin toggle is not the proof. The inbox is.
Preview / “send test email” from the template editor also does not prove the trigger. That only proves the template can render. A test send is not an abandoned-checkout event.
07
The delay is too long to look like “not sending.”
Shopify and Klaviyo templates often default the first email to 10 hours, 24 hours, or “next day.” You left checkout at 2pm, checked at 4pm, and declared it dead. That is a late-mail bug wearing a missing-mail costume. Read the delay. Wait that long, or temporarily set the first step to one hour for the test, then put a sane production delay back.
A reminder about an hour after abandon is a reminder. The next morning is a different person with a different tab. You do not need a new app to move a number from 24 to 1. Timing belongs in the abandoned-checkout playbook. Check it here so you stop debugging a send that has not been scheduled yet.
08
Duplicate suppression ate the send.
ESPs try not to email the same person the same message twice. That is useful until it hides a real abandon. Common skips:
- You already sent a test, a preview, or an earlier flow email to that address. Smart sending / frequency capping holds the next one.
- The profile is suppressed, unsubscribed, bounced, or marked as never send. Abandoned checkout does not override a suppression list.
- Shopify Email and Klaviyo both think they own the event, so one of them backs off — or both do, if a recovery app is also in the stack. The customer gets nothing. That overlap is covered in Klaviyo + Shopify notifications.
- The same checkout was already in a flow. A second abandon on the same cart does not always re-enter.
In Klaviyo, open the profile → activity / skipped. “Smart Sending,” “duplicate,” “already in flow,” or “unsubscribed” is the answer. Use a fresh address for the next test. Do not keep abandoning from the store owner inbox.
09
When to stay DIY vs pay $997.
Stay DIY if you can spend one afternoon on the list above: native toggle, flow status, trigger metric, already-placed-order skip, phone test off admin, delay, suppression. Send one real abandoned checkout. Click the link. That is the whole playbook. No agency required. Short answers also live on the merchant FAQ.
Pay for help when the work is not the email template — it is connecting the stack you already have so checkout follow-up is one live workflow instead of a draft in Klaviyo plus a native toggle 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 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 recovered checkout revenue.
What it does not buy: recovered checkout revenue, a lift in conversion, a percent of carts saved, 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.