Why doesn't Shopify's "Customer left online store" trigger ever catch my abandoned carts?
Shopify's "Customer left online store" trigger and its cart abandonment automation cover two different events with different identity requirements — mixing them up is why your recovery emails never seem to fire.
What's going on
You set up what you thought was a classic abandoned cart email using the "Customer left online store without making a purchase" trigger, but it barely ever fires, or fires for the wrong people. Meanwhile you know for a fact customers are adding items to their cart and vanishing before checkout. It feels like the automation is broken or badly named.
It isn't broken, and the name is genuinely misleading. "Customer left online store" is a Shopify Flow trigger that watches for a shopper who viewed a product or added to a cart and then left the site entirely, but it only has someone to email if that visitor is already identifiable, meaning they're logged into an account or otherwise have an email on file. The moment a shopper is anonymous, which is most first-time site traffic, there's no address to send to, so the trigger effectively never fires for them.
What most merchants actually mean by cart abandonment, someone who got as far as checkout, typed in their email, and left before paying, is a separate Shopify feature built specifically for that: the abandoned checkout automation. It's tied to an incomplete checkout with a captured email rather than to browsing behavior, which is why it's the one built for cart-recovery emails.
Why it happens
The root cause is that Shopify treats an anonymous browsing session and an identified checkout session as two separate events, each with its own trigger and its own data requirements. "Customer left online store" depends on an existing customer identity; if Shopify has never captured contact details for that visitor, the trigger has no one to send to and quietly does nothing, which reads to merchants as "it doesn't work" rather than "it has no recipient."
Cart abandonment, by contrast, is tied to the checkout itself, which typically has an email address as soon as a shopper starts filling in their details, even before choosing shipping or paying. That's why it's the trigger built specifically for cart-recovery emails, and why it's also affected by things like marketing consent and the abandonment delay window you set.
5 ways to fix it
Use Shopify's native abandoned checkout automation instead
Turn on Shopify's built-in abandoned checkout automation (available through Shopify Email or as a Flow template) instead of building your own around the "Customer left online store" trigger. It's designed specifically for cart recovery: it fires once a shopper enters an email at checkout and doesn't complete payment within your chosen delay. Delivery depends on the customer having given marketing consent, so if volume looks low, check your consent and opt-in settings first.
Reserve "Customer left online store" for on-site browsing signals, not cart recovery
Keep the Flow trigger for what it's actually built for: flagging or tagging customers who browsed or added to cart but never reached checkout, when an email address already exists on file, such as a logged-in customer or newsletter subscriber. It has no way to reach anonymous first-time visitors who never gave you contact information, since no on-platform trigger can email someone Shopify has no address for.
Add an email-capture step earlier in the funnel
If most of your "lost" traffic is anonymous browsing rather than checkout abandonment, the real fix is capturing an email earlier: a newsletter popup, a discount offered in exchange for an email, or an account-creation prompt. That turns anonymous sessions into identifiable customers who become eligible for automation later. This is a store-design change, not an automation setting, and can be done with Shopify's native popup and signup tools.
Combine both triggers in one Shopify Flow workflow if you're comfortable with Flow
If you want a single "recover the visit" sequence, build a custom Shopify Flow workflow that listens for both the abandoned checkout event and the on-site browsing event, tags customers differently depending on which one fired, and sends a different follow-up for each case. This takes more setup and requires access to Shopify Flow, which isn't available on every plan, but it stops you from expecting one trigger to do both jobs.
Audit consent and timing settings before assuming the platform is broken
A lot of "my abandoned cart emails don't fire" reports turn out to be a consent problem, where the customer never opted into marketing, or a delay window that doesn't match your traffic pattern, rather than a platform bug. Before switching tools, confirm you're collecting marketing consent at checkout and that your abandonment delay lines up with when carts are actually abandoned.
Bottom line
Shopify doesn't have one trigger that means "recover any lost sale" — "Customer left online store" and cart abandonment are two different events with different identity requirements, and the mismatch is almost always a setup choice rather than a bug. Turning on the native abandoned checkout automation and treating "Customer left online store" as a separate on-site engagement signal solves this for most stores without installing anything.
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.