Skip to main content
Contributor I
July 23, 2021
Solved

Abandoned cart flow - multiple add to cart events for 1 user

  • July 23, 2021
  • 16 replies
  • 3855 views

Hello, 

I am setting up a flow for people that added to cart and did not purchase or started checkout.

I am using the predefined flow in the flow library.

I have some customers that are adding multiple items in their cart and it seems that this will create multiple events for that users, vs. 1 event with multiple product.

Is it normal or a set-up problem on my store?

The issue it creates is that:

  • the trigger (add to cart) will potentially send multiple emails to the same person (manageable through flow filters and smart sending), 
  • I can only link show product in the email I will send to the customer during the flow (vs. showing all the items added to the cart, like on the abandoned checkout flow)
  • I am not sure what product will be shown in the re-reminder I will send in that flow to the same customer. it might be another one compared to the 1st email I have sent.

Am I doing something wrong? or misunderstanding how the flow will work?

Thanks.

Steven 

This topic has been closed for replies.
Best answer by David To

Hello @StevenCD,

Thanks for sharing your question with the Klaviyo Community!

What you are experience is a normal occurrence and expected behavior. Unlike the Started Checkout event which is triggered when your customers proceed from the cart page to the checkout process, sharing with Klaviyo all the events that were in the cart when the event was recorded; the Added to Cart event is triggered when the customer clicks on the add to cart button on the product page. This will trigger an individual event every time a customer clicks on an add to cart button which would be associated with each product that was added to the cart. 

This means if a customer was browsing your site and went to three different product pages and added all three to your cart; this customer would trigger three Added to Cart events and would be queued up for the Abandoned Cart flow three separate times; once for each of the products the customer added to their cart. If you wish to prevent this and limit the number of times a customer can enter this flow, you can use the flow filter of “Has not been in this flow, Skip anyone who has been in this flow in the last X-timeframe”. This is also suggested in the The Abandoned "Added to Cart" Flow subsection of the How to Create a Custom "Added to Cart" Event for Shopify Help Center article. 

If you have more than one email within your Abandoned Cart similar to the pre-built abandoned cart flow found in the Flow Library, all emails within the flow will highlight the product and product details that caused the user to trigger the flow. For example, if I added a t-shirt to my cart to trigger the Added to Cart event, so long as I am still going through the flow and have not been skipped from the flow, the emails would all be referencing the t-shirt that initiated me into the flow. This would also extend to if I had triggered the Added to Cart event multiple times where each instance would be a separate event.

Other resources I would suggest taking a look into to learn more about how the Add to Cart metric and flows function and how metric triggered flows with dynamic contact function in general are the below Help Center articles and other Community posts:

I hope this helps! Have a great weekend!

David

16 replies

Problem Solver III
January 27, 2022

 

This screenshot, however lets say the added to cart, they would be entered into the flow. The first item they entered was a T shirt. So before 4 hours was up, lets say they added a hat to the cart. Would then the flow restart and then send the flow for the hat 4 hours later? Or would it not even fire the flow at all since it hit the filter that it added to cart 1 time since starting the flow, not zero times? @David To 

Did you get anywhere with this @flogrown.trevor ?

 

That is the behavior that we experience in our live deployment.  The ‘hat’ resets the flow for that user, they do not get a email about the shirt and the email they get about the hat is 4 hours after the ‘hat’ add.  That is in our view the expected and ideal behavior - we don’t want to bug customers about old cart items nor email them 10 seconds after they add a new item.

Problem Solver III
January 27, 2022

This is in contrast to “What someone has done, skip anyone who has been in this flow in the last X-Timeframe” option which would ignore the ‘hat’ cart addition and send the T-shirt email 4 hours after the T-shirt add.  (this did not make sense to us in this use case)

David To
Klaviyo Employee
Klaviyo Employee
January 27, 2022

Hey @JD247,

@cdetdi is spot on that that would be the expected behavior as you described! As mentioned prior, every instance of a user adding a product to their cart would trigger its own add to cart event and enlist the user into the flow for every instance the event was triggered. I think going over the About Flow Triggers and Filters and Guide to Creating a Metric-Triggered Flow Help center articles would be helpful in understanding how contacts move through a flow. From this scenario, if a user add a T-shirt to their cart then they would be initiated into the flow based on this instance. At any given time, when the same user adds another product such as a hat to the cart, this would trigger a subsequent add to cart event and put this user into the add to cart flow a second time. 

However, based on the filters set in place, this would cause the first instance of their t-shirt triggered event to no longer be eligible for the flow, but they would continue and proceed through the flow based on adding a hat to the cart. 

Additionally, I believe you may need some clarification on what you mean by having a browse abandonment flow triggered by an exit intent popup form. A browse abandonment flow is typically triggered by the viewed product event as detailed in our Creating a Browse Abandonment Flow Help Center article and a list triggered flow or a welcome series flow is what is often times triggered by a list based on a user subscribing to a signup form. 

If i’m assuming the question is, how do you offer an email which contains a discount code while still excluding the user from the flow if they’ve added an item to the cart, then this would be accomplishable through the use of conditional splits or additional email filters in your flow. To accomplish this, you can include a conditional split after the email containing the discount code has been sent out to evaluate if a user has triggered the add to cart event. This way if they have then they can be removed from the flow, else they can continue through their flow journey. 

Alternatively, instead of using a conditional split, you can apply additional filters to all subsequent emails that come after the email containing the discount code. This way at any point of the journey that the customer adds a product to their cart, they would be removed from the flow. 

@flogrown.trevor, that’s a great suggestion! I’ll share this idea with our Product Team to explore further on!

David

January 28, 2022

Hey @JD247,

@cdetdi is spot on that that would be the expected behavior as you described! As mentioned prior, every instance of a user adding a product to their cart would trigger its own add to cart event and enlist the user into the flow for every instance the event was triggered. I think going over the About Flow Triggers and Filters and Guide to Creating a Metric-Triggered Flow Help center articles would be helpful in understanding how contacts move through a flow. From this scenario, if a user add a T-shirt to their cart then they would be initiated into the flow based on this instance. At any given time, when the same user adds another product such as a hat to the cart, this would trigger a subsequent add to cart event and put this user into the add to cart flow a second time. 

However, based on the filters set in place, this would cause the first instance of their t-shirt triggered event to no longer be eligible for the flow, but they would continue and proceed through the flow based on adding a hat to the cart. 

Additionally, I believe you may need some clarification on what you mean by having a browse abandonment flow triggered by an exit intent popup form. A browse abandonment flow is typically triggered by the viewed product event as detailed in our Creating a Browse Abandonment Flow Help Center article and a list triggered flow or a welcome series flow is what is often times triggered by a list based on a user subscribing to a signup form. 

If i’m assuming the question is, how do you offer an email which contains a discount code while still excluding the user from the flow if they’ve added an item to the cart, then this would be accomplishable through the use of conditional splits or additional email filters in your flow. To accomplish this, you can include a conditional split after the email containing the discount code has been sent out to evaluate if a user has triggered the add to cart event. This way if they have then they can be removed from the flow, else they can continue through their flow journey. 

Alternatively, instead of using a conditional split, you can apply additional filters to all subsequent emails that come after the email containing the discount code. This way at any point of the journey that the customer adds a product to their cart, they would be removed from the flow. 

@flogrown.trevor, that’s a great suggestion! I’ll share this idea with our Product Team to explore further on!

David

Thanks David. Yea for us we trigger the browse abandonment with an exit intent pop up on product pages in order to get their email. We have a pretty high conversion for this pop up over our welcome sequence thats also started from a pop on the home page. 

Sounds good. This helped answer some questions. 

January 28, 2022

 

This screenshot, however lets say the added to cart, they would be entered into the flow. The first item they entered was a T shirt. So before 4 hours was up, lets say they added a hat to the cart. Would then the flow restart and then send the flow for the hat 4 hours later? Or would it not even fire the flow at all since it hit the filter that it added to cart 1 time since starting the flow, not zero times? @David To 

Did you get anywhere with this @flogrown.trevor ?

 

That is the behavior that we experience in our live deployment.  The ‘hat’ resets the flow for that user, they do not get a email about the shirt and the email they get about the hat is 4 hours after the ‘hat’ add.  That is in our view the expected and ideal behavior - we don’t want to bug customers about old cart items nor email them 10 seconds after they add a new item.

@cdetdi , so your flow filters are did not place order since starting the flow and also did not add to cart since starting the flow and wait 4 hours to send first email. This will in turn send an email about the last item placed into the cart within that 4 hours?

Problem Solver III
June 19, 2022

 

This screenshot, however lets say the added to cart, they would be entered into the flow. The first item they entered was a T shirt. So before 4 hours was up, lets say they added a hat to the cart. Would then the flow restart and then send the flow for the hat 4 hours later? Or would it not even fire the flow at all since it hit the filter that it added to cart 1 time since starting the flow, not zero times? @David To 

Did you get anywhere with this @flogrown.trevor ?

 

That is the behavior that we experience in our live deployment.  The ‘hat’ resets the flow for that user, they do not get a email about the shirt and the email they get about the hat is 4 hours after the ‘hat’ add.  That is in our view the expected and ideal behavior - we don’t want to bug customers about old cart items nor email them 10 seconds after they add a new item.

@cdetdi , so your flow filters are did not place order since starting the flow and also did not add to cart since starting the flow and wait 4 hours to send first email. This will in turn send an email about the last item placed into the cart within that 4 hours?

 

The 4 hour delay is aligned with the 4 hour add-to-cart flow filter, if that makes sense (from my understanding). so you shouldn't have someone going past the initial 4 hour delay if they have added to cart within that time (as they will be skipped)

I sometimes know things...