Why does Shopify keep sending its own abandoned cart email on top of Klaviyo's?
When Shopify's built-in abandoned checkout email and a marketing app's automation both fire for the same cart, customers get hit twice. Here's how to figure out which system to keep and how to turn the other one off.
What's going on
A customer abandons their cart, and shortly after, two nearly identical come-back-and-finish-checking-out emails land in their inbox: one from Shopify, one from Klaviyo, Omnisend, Attentive, or whatever email platform is connected to the store. Sometimes they arrive within the same hour, sometimes a day apart, but either way it looks sloppy, can trigger spam complaints, and occasionally leaves customers wondering if something is wrong with their order.
This happens because Shopify has its own native abandoned-checkout email, and it runs independently of any third-party email or SMS app installed on the store. When a merchant connects an ESP and turns on that app's own abandoned-cart flow, nothing in Shopify automatically disables the native one, so both keep firing off the same trigger: an abandoned checkout event.
Why it happens
Shopify treats its native abandoned-checkout email as an independent, always-available feature that doesn't detect or defer to third-party marketing apps hooking into the same event through webhooks or the API. Installing and configuring an app's recovery flow doesn't touch Shopify's own setting at all, so both keep running on separate tracks against the same checkout data.
Shopify has also been shifting some of its native email and messaging tools into newer automation-style interfaces over time. Merchants who set up an app's flow a while ago may not realize Shopify has since added, moved, or re-enabled an equivalent native email during a platform update, quietly reintroducing the overlap without any change on the merchant's part.
It's also common for the duplication to involve more than two systems: a cart-drawer app, a loyalty app, or an SMS app can each ship with their own bundled abandoned-cart reminder turned on by default, so merchants troubleshoot the obvious pair (Shopify plus their main ESP) without realizing a third app is also emailing the same customer.
5 ways to fix it
Turn off Shopify's native abandoned checkout email if an app already owns recovery
In Shopify admin, go to Settings, then Checkout, and find the abandoned checkout email setting; if you've been moved onto Shopify's newer marketing automation tools, look for an equivalent abandoned-checkout automation there instead. Turn off whichever one is Shopify's native version the moment you activate an app's recovery flow, so the two never fire for the same cart again.
Or pause the app's abandoned-cart automation and rely on Shopify's built-in email
If your email or SMS app's recovery message isn't meaningfully better than Shopify's default, it's often simpler to pause that automation inside the app (most platforms, including Klaviyo, document how to disable a specific flow) and let Shopify's native, no-extra-cost email handle recovery alone.
Split ownership by email type instead of an all-or-nothing switch
Rather than fully disabling one platform, decide which system owns which trigger: let the app run multi-step, segmented abandoned-cart nurture sequences while Shopify's native email (or another transactional tool) handles simpler recovery, or vice versa. Write down which system owns which trigger somewhere your team can see, so a future hire or a newly installed app doesn't quietly re-enable the overlap.
Check every other app for a hidden recovery automation, not just your main ESP
Duplicate sends often trace back to more than one culprit: a cart-drawer, upsell, loyalty, or SMS app can ship with its own bundled cart-reminder automation turned on by default. Review your notification settings and each installed app's own automation list for anything resembling a checkout-recovery or cart-reminder email, and disable all but the one you've designated as the owner.
Send yourself a test abandoned checkout before calling it fixed
After changing settings, abandon a cart yourself with a secondary email and wait out the full recovery window to confirm only one message arrives. Automation settings can take a little time to propagate, so verify with a real test rather than assuming the change applied immediately.
Bottom line
This is a configuration and ownership problem, not a bug, and it's solvable with the settings you already have access to, no extra purchase required. If your store runs several apps and you'd rather not hunt through each one's automation settings individually, a Shopify agency or a lightweight audit can map out every app sending customer emails in one pass, but for most stores this is a short admin fix.
Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.