Skip to content

Problem

Abandoned cart emails not sending: how to fix it

Recovery emails depend on a chain: an event has to be recorded, it has to be attached to a known email address, the flow has to be live, and the profile has to survive every filter and timing rule between the trigger and the send. Any link can break silently and the reporting looks the same. The fastest route to the answer is to abandon a cart yourself and follow that one profile through each stage.

By CartKernel · Last reviewed 2026-09-07

Does this look familiar?

  • The flow reports very few recipients compared with the number of abandoned carts in the store
  • Some people receive the first message and nobody receives the later ones
  • The flow works for logged in customers and not for new visitors
  • Recipients dropped after a checkout, theme or app change went live
  • Test profiles receive the email but real customers apparently do not
  • The flow shows plenty of profiles entering and almost all skipped

Causes, ranked

Why it happens, most common first

Check them in this order. The first two account for most cases we open.

  • most common

    The profile has no known email address at the moment of abandonment

    A visitor who has never clicked an email from you, never signed up and never reached the step where an address is entered is anonymous. There is nothing to send to. This is the single largest reason a store's recovery volume is lower than its abandonment count.

  • most common

    The trigger event is not being recorded

    Started checkout comes from the store integration, while added to cart usually depends on onsite tracking scripts. A checkout change, a blocked script, a consent tool or a missing integration webhook can stop one or both, and the flow simply has nothing to trigger on.

  • common

    A flow filter is removing the profile

    Filters that skip anyone who placed an order, who is already in another flow, or who does not meet a consent condition are all doing their job. Filters written too broadly, such as excluding anyone who received any email recently, remove far more people than intended.

  • common

    The flow or a message inside it is not live

    A flow left in draft, a single message set to manual, or a message switched off during a promotion and never switched back all produce partial sends. The flow reports profiles entering, which makes it look functional.

  • common

    Sending controls are suppressing the message

    Smart sending windows that prevent a second message within a set period, quiet hours, frequency caps and per profile send limits will hold or skip messages. These are useful protections that become a problem when campaigns and flows compete for the same audience.

  • occasional

    The profile is not subscribed or has been suppressed

    Marketing email can only go to profiles with the right consent status. Anyone unsubscribed, suppressed after a bounce or a complaint, or never opted in will be skipped. Stores that recently cleaned a list see this as a sudden drop in recovery sends.

  • occasional

    Timing rules delay the message past its usefulness

    A delay set too long, a time window that only allows sending during business hours, or a time zone mismatch can push the first message well past the point where the shopper still cares. The email sends, but it is not doing the job it was built for.

The fix

In this order

Each step is something you can do today. Do them in sequence; skipping ahead is how a review fails twice.

Prevent it next time

  • Test the full flow with a real abandonment after every checkout, theme or app change
  • Alert on flow recipients falling below a normal daily range so a silent break is caught quickly
  • Keep one system responsible for abandonment messaging and document which one
  • Review skip reasons monthly rather than only when someone notices the revenue
  1. Abandon a cart yourself and follow the profile

    Use a private window and an address you control, arrive through a link that identifies you if the flow depends on that, add to cart, begin checkout, then stop. Open your own profile in the email platform and check whether the event appears.

  2. Confirm the events are arriving

    Look at the profile's activity feed for the trigger event, and compare the count of those events in the platform against abandoned checkouts in the store admin for the same period. A large gap points at the integration or the tracking script.

  3. Check the flow status message by message

    Open the flow and confirm the flow itself and every individual message are live rather than draft or manual. Read the analytics per message, since a flow with a healthy first send and empty later sends usually has one message left switched off.

  4. Read the skip reasons

    Most platforms record why each profile was skipped. Group those reasons and you will usually find one dominant cause, such as a sending window, a consent status or a filter. That single figure replaces a week of theorising.

  5. Rewrite filters to be narrow and deliberate

    Keep the filter that skips anyone who has since placed an order, since that is essential. Remove blanket exclusions such as anyone who received any email recently, and replace them with a rule limited to the flows that genuinely conflict.

  6. Capture the email address earlier

    Add a signup offer that identifies visitors before checkout, ask for the address at the first checkout step rather than the last, and make sure the platform's identification script runs so returning subscribers are recognised. This raises how many abandonments are addressable at all.

  7. Set timing that matches buying behaviour

    Send the first message within a few hours while the decision is still live, and space the rest over the following days. Check the time zone the delay uses and remove any window that pushes the first message to the next working day.

  8. Reconcile against the store's own recovery email

    If the store platform also sends an abandonment email, decide which system owns the sequence and switch the other off. Two systems sending on the same trigger produces duplicate messages and complaints, or conflicting suppression.

When to get help

Get help when the trigger event has stopped arriving and the integration looks correct, because that usually means a change in how the checkout emits events and it needs tracing across the store, the tracking script and the platform. It is also worth help when abandonment recovery is a meaningful share of revenue and the sequence has never been tested properly, since the gains usually come from identifying more visitors and from the timing and content of each message rather than from any single setting.

Get a Growth Analysis

Free. We reply within one business day.

Questions

Asked alongside this problem

By CartKernel · Last reviewed

Why is my flow reaching far fewer people than my abandoned cart count?

Because most abandonment happens before you know who the visitor is. Only profiles with a known email address can receive anything. Compare identified abandonments with total abandonments, and treat raising the identification rate as a separate project from fixing the flow.

Should the flow trigger on added to cart or on started checkout?

Started checkout is the stronger signal and captures an email address in the process, so it is the better primary trigger. An added to cart flow can run alongside for known subscribers who never reached checkout, with filters that stop the two overlapping for the same person.

Can I send abandonment emails to people who never subscribed?

Marketing messages generally require consent, and rules differ by region, so this is a legal question rather than a platform setting. Where an address was entered at checkout, treat it carefully and take advice for the markets you sell in. The safe path is capturing consent at the point the address is given.

How do I stop the flow sending after someone completes their order?

Use a filter that removes anyone who has placed an order since entering the flow, evaluated before each message rather than only at entry. Test it by abandoning a cart, waiting for the first message, then completing the purchase and confirming the later messages are skipped.

Related problems, answers and terms

All problems
ProblemKlaviyo emails going to spam: how to fix itKlaviyo emails going to spam is a reputation problem with a technical foundation. Fix authentication first, then the sending behaviour behind it.OpenProblemHigh checkout abandonment rate: how to fix itA high checkout abandonment rate means people who decided to buy did not finish. Find the step they leave on, then remove what stopped them.OpenProblemLow add to cart rate: how to fix itA low add to cart rate points at the product page or the traffic reaching it. Separate the two, then fix what is missing from the buying decision.OpenProblemGA4 purchase event not firing: how to fix itA GA4 purchase event not firing leaves ecommerce reports empty while orders keep arriving. Trace the event from checkout to property and repair it.OpenAnswerHow many emails should an abandoned cart flow have?Three to four emails covers most abandoned cart flows. The timing that works, what each message should say and when a fourth is worth adding.OpenAnswerWhen should the first post-purchase email send?The confirmation sends immediately; the first real post-purchase message should follow the parcel. How to time the sequence off delivery rather than the order.OpenGlossaryCart abandonment rateCart abandonment rate is the share of carts that never become orders. Formula, a worked funnel, and why the headline number is mostly normal browsing.OpenGlossaryCheckout abandonment rateCheckout abandonment rate is the share of started checkouts that never pay. Formula, a step by step worked funnel, and the causes worth checking first.Open

Stop the leak.

A free Growth Analysis finds what is broken and ranks it by the revenue it costs you.