A customer received an abandoned cart email after ordering: Why this happens and how to fix it

  • 2 December 2020
  • 15 replies

Userlevel 6
Badge +22

With Abandoned Cart Flows, it’s best practice to send your email before your customer orders the product they “abandoned”. Sometimes though, things don’t work quite the way they should and customers might receive an abandoned cart email after ordering. Let’s take a look at some possible reasons, and how to address them.

There are four reasons that your customers may still receive an Abandoned Cart email after placing an order.

  1. Your time delay between a customer starting a checkout and the first email of the flow is not long enough.
    We recommend waiting approximately 4 hours before sending the first abandoned cart email. Whatever you choose for your flow, you'll want to make sure it's enough time for the integration to sync. For more information, head to our article on How Often Integrations Sync
  2. Your customer triggered multiple checkout started events but only placed one order.
    Each time your customer triggers a checkout started event, they enter your flow. 
  3. Your events are coming in out of order.
    Check into the customer profile: is there a started checkout event after the placed order and ordered product events for that item? If so, comment below to receive further instructions.
  4. The customer placed order event is not present in their profile.
    If you look into the customer profile in Klaviyo and do not see a placed order event listed, but the customer states they placed an order, please reach out to your ecommerce support team to resolve this issue.
  5. The Flow Filter uses OR instead of AND
    A standard abandoned cart flow will have a flow filter “Placed order 0 times since starting this flow,” which prevents customers who purchase from receiving the email. You can add additional filters to make your abandoned cart flow more targeted and specific, but they must use and AND connector. Here’s why:
    • OR connectors are inclusive: someone needs to meet just one to be included. AND connectors are   exclusive: someone needs to meet all conditions to be included.
    • For example, say I want to send my abandoned cart to only recipients who have not completed their order and are located in Germany. That means I want to exclude anyone who does not fit both conditions and I should use an AND connector.
      • If I used an OR connector, people who did not complete their purchase but live in the US could receive my message, as could people in Germany who did complete their purchase—which isn’t what I intended!
    • Confused? Here’s an article to help you decide when to use AND vs. OR

Have questions about how abandoned cart flows work? Share below so our Community can help!

15 replies

Userlevel 7
Badge +58

A few more possible reasons why customers are getting cart abandonment emails to add here just in case it wasn’t obvious. 

  1. You’re not excluding customers from the Cart Abandonment flow:


  1. Make sure you don’t have multiple Cart Abandonment Flows turned on!


  1. If you’re on a ecommerce platform, or have other apps, make sure you don’t have Cart Abandonment on that platform turned on. For example, Shopify has it’s own cart abandonment emails and sometimes it’s not obvious it’s sending cart abandonment emails at a different rate or time:



Does the flow check prior to every email to see if the conditions have been met or not? I have several people still in the flow after making a purchase. Not sure why


Userlevel 7
Badge +60

Hey @Trish,

Great question!

When these conditions would be checked depends on if you use a flow filter or a trigger filter.

  • Trigger Filters - Only checked when an individual first enters the flow
  • Flow Filters - Checked when someone first enters a flow and before each action takes place within the flow (e.g., before any email or SMS sends)

Another thing to consider with your contacts still being queued up in the Abandoned Cart Flow despite making a purchase, is due to the contact triggering multiple Checkout Started events but only placing one order as @Julia.LiMarzi had highlighted in their second point. Has actually been brought up in a parallel thread Community post here:

The solution to this that @elisegaines had highlighted, would be to apply a flow filter with the rule “Has been in this flow, Skip anyone who has been in this flow in the last X days”. The time frame can be as long or as short as you desire to prevent someone from re-entering the flow too soon.


I have a customer who keeps receiving an Abandoned Cart flow after placing an order and I think I know why but not sure how to resolve it.

Their flow was triggered and sent to their @gmail address but their actual WooCommerce order was placed with their @icloud address. Is there a way for Klaviyo to recognize that the @gmail and the @icloud is the same customer to prevent future Abandoned Cart flow emails once the customer places their order with their @icloud address?



Userlevel 6
Badge +22

Hi @DanaP 

Great question! One option is to merge the profiles to keep the history under one profile. However, this would store only one of the email addresses, not recognize both as one person. 

I’m wondering if the icloud address may be a unique email generated by apple as part of their iOS15 privacy updates called Hide My Email for iCloud+ subscribers. Because they used a different email at checkout, even if you merge the profiles now, a profile with their iCloud email will be created the next time they purchase as well.

The best way to avoid emailing them an abandoned cart message to both emails is to add a filter to the flow that says If someone is or is not in a list > Person is > in [your main list]. This will ensure your flow always checks for consent to receive an email message based on list subscription. If someone unsubscribes, they are removed from your list so you won’t accidentally continue to message them. 

If they subscribed with both emails though, for example consenting at checkout with the iCloud email during a purchase, they will receive messages to both emails, as there is no reliable way to identify that those two separate emails belong to one person. 

I hope this helps!

Thanks @Julia.LiMarzi for the quick response and details.

For this case, I don’t believe the @cloud address was a unique email generated by Apple as this consumer used this email to place several other orders months before the update. I think merging his @gmail to his @icloud address so that the @icloud is the primary recognized by the Klaviyo Abandoned Cart flow might work best. This way once he completes his order with his @icloud address, the flow will recognize it and know not to send any notifications. Also, he wouldn’t receive a flow to his @gmail since it will no longer be on file within Klaviyo. I’ll have my Customer Service team reach out to this individual and see if he’d like his emails merged to @icloud where he places orders from. Thanks again!

Badge +1

@Julia.LiMarzi in the past week my client has received four complaints from customers who were sent the cart abandonment flow after placing an order. The flow consists of 3 emails (30 minutes delay, 3 hours delay, 3 hours delay) and those customers received the entire flow, all 3 emails, despite having placed an order.

Here’s an example:


In all four cases, a second “Started Checkout” was fired a MINUTE after the “Placed Order” event.

In all four cases, the second “Started Checkout” event (1:47 pm) is empty, I see no products when I expand it. 

In all four cases, when customers click on the CTA button in the cart abandonment email, they land in the Thank you page.

Any idea what might cause this?

Thank you!

Userlevel 6
Badge +22

Hi @TommyX,

Thanks for reaching out. This is an interesting situation.

As an interim fix, the first thing I would recommend is to add a filter to this flow that states Skip anyone who has been in this flow in the last 3 hours. The timeframe can be whatever you want, the point is just to prevent someone who placed an order from immediately entering the flow again if a Started Checkout event is tracked. 

If someone receives an abandoned cart email and clicks the CTA after purchasing, it is expected behavior for them to land on a thank you page instead of a cart page. 

The fact that they are triggering an empty Checkout Started event so quickly after purchasing could indicate an integration issue. I’d recommend taking a look at profiles with recent placed order events to see if they are also showing started checkout events with no product data after purchase and get a sense of the scope of the issue. I’ll create a ticket with our support team to take a deeper look for you. 

Some information you may want to prepare is the specific profiles where you’ve seen the issue, the client’s account name and the flow name or ID so they can take a closer look at the back end. 

Badge +2

Hi Klaviyo Community, Ok I see many questions here on abandon cart emails, but we need help here. We do not have a standard “Shopify or woocommerce” integration but a custom one. 

  1. I am building an Abandon Cart Email based on these Triggers and Filters.


  1. Ours is a bit more manual as we update our Shipstation integration everyday. This creates and event in Klaviyo “Order awaiting shipment”, this is basically us knowing that this customer has placed an order. 
  2. If I understand the Flow filer correctly in how it’s programmed, it says to only send to people that does not have an order awaiting shipment event, because it is set to ZERo times correct? 
  3. I went on to the preview, my question is, is the preview data displaying people that meet the filer criteria or do I need to switch it on and monitor after? 
  4. Here are a few examples of this flow of people getting emails but they have the “Order awaiting shipment event” meaning they have placed an order, it SHOULD not send to these people? 

Here is a Preview flow example

Here is her profile summary:

She should NOT get the email correct?

Badge +2

I am having numerous people get abandoned cart emails after ordering - to the point I may have to turn it off.

My trigger is when someone started checkout. I have a 4-hour delay

I have added the following flow filters in the hopes of stopping emails after ordering.

  • Placed order zero times since starting flow
  • or Fulfilled order zero times
  • or ordered product zero times
  • or order awaiting shipment value zero times since starting flow
  • or order shipped zero times 
  • or order awaiting shipment zero times since starting flow.
  • Has not been in flow in last 30 days


With all of this I have still had people who immediately ordered getting abandoned cart. for example:

Set end date for eventsSet end date for events


  • Opened Email


    Jun 4, 2023, 1:26 PM EDT

    Abandoned Cart: Email 2

    See more
  • Received Email


    Jun 3, 2023, 2:20 PM EDT

    Abandoned Cart: Email 2

    See more
  • Received Email


    Jun 2, 2023, 6:20 PM EDT

    Abandoned Cart: Email 1

    See more
  • Order Awaiting Shipment


    Jun 2, 2023, 3:39 PM EDT

    See more
  • Viewed Product


    Jun 2, 2023, 2:21 PM EDT

    See more
  • Active on Site


    Jun 2, 2023, 2:21 PM EDT

    See more
  • Ordered Product


    Jun 2, 2023, 2:20 PM EDT

    See more
  • Placed Order


    Jun 2, 2023, 2:20 PM EDT

    See more
  • Started Checkout


    Jun 2, 2023, 2:19 PM EDT

Can anyone help me? I am at a loss.

Userlevel 6
Badge +22

Hi @JaniceBLW, great question and thanks for providing so much detail. I think what may be happening is your flow filters are too inclusive. 

If I read your filter description in plain english, I'd read,

“Include someone if they have not placed an order since starting this flow, or if their order has not been fulfilled… etc.”. 

In other words, someone who has placed an order but whose order has not been fulfilled yet could still be included in the flow with this set of filters because one of the conditions is true: Their order is not fulfilled. We describe or as “inclusive,” it allows you to include more people in the group because it will include them if only one of the conditions is true.

Recommendation: I’d recommend first putting the flow messages into DRAFT mode and try removing all conditions except “Placed order zero times since starting flow” and “Has not been in flow in last 30 days,” and change the connector from or to AND. That way we will only include someone if BOTH conditions are true. In plain english, it will say:

“include someone in the flow if they haven't placed an order since starting this flow and they haven’t been here in the last 30 days. 

Then use the trigger preview feature to see if anyone is still coming through who shouldn't. If things look correct, then you can set the messages back to LIVE. 

I hope this helps, let me know if you have any questions.


Badge +2

Thanks Julia, I started with the 2 conditions you mentioned, but people were still getting through. I have woocommerce and sometimes I see ordered products and sometimes I would see ordered shipped. I thought with using or it would trigger if any of those conditions happened. For example if they ordered a product or they have an order shipped. Either way it would not send. then it does say and they have not been in the flow in the last 30 days.

Userlevel 7
Badge +60

Hey @JaniceBLW,

Are you still seeing users inappropriately triggering this flow despite the flow having only those two flow filter conditions suggested by @Julia.LiMarzi? In other words, are customers still triggering the flow despite making a purchase?

If so, I would suggest double checking to see if both the Started Checkout and Placed Order events were triggered/synced to Klaviyo in a timely manner. Timing plays an important role in when flows trigger and when to identify when someone is ineligible for a flow. I’ve previously explained this sort of behavior in the Community post below:

You may also want to check to make sure your WooCommerce integration is connected and syncing correctly. Integration errors have been known to cause this sort of timing issue.

Based on my experience, I would also suggest reviewing how your orders are being processed within your WooCommerce backend. When orders are placed, only orders with the status of processing are synced to Klaviyo as a Placed Order event. Any orders made outside of this status would not trigger a Placed Order event. Examples of this include orders made with statuses such as draft (for manually processed orders), preorder, or some other custom order status. 


Your events are coming in out of order.
Check into the customer profile: is there a started checkout event after the placed order and ordered product events for that item? If so, comment below to receive further instructions.


so what is the solution for this “Your events are coming in out of order.”
customers trigger multiple started checkout events after placed order


thank you

Badge +2

Yes, I believe “Your events are coming in out of order.”