Can I use duplicate coupon codes for different flows?

  • 21 September 2023
  • 4 replies

Userlevel 3
Badge +6

Hi there,


I just became worried that my customers can get multiple coupon codes as I use different coupon codes in various flows.


The one that is troubling me most is my abandoned cart and my added to cart flow. 


My current abandoned cart has a 10% discount code (dynamic) valid for 48 hours that triggers 24 hours after someone has started checkout. 

Can I use the same coupon code that I use in my abandoned cart flow for my added to cart flow? I want to offer the same incentive with the same time-frame. 


Will there be a problem if I use the same coupon code or should I add a flow filter or create a whole new dynamic coupon code for my added to cart flow? 

I want to make sure they don’t get two discount codes that they can use.


Any guidance will be greatly appreciated.


Best answer by ebusiness pros 21 September 2023, 18:03

View original

4 replies

Userlevel 7
Badge +39

Hi @smileyrox 

As long as you use the same dynamic placeholder variable for the code in each email, your contacts will only receive their assigned code irrespective of which flow/message is being sent.

From Klaviyo: 

When emails are sent out, this variable will be dynamically replaced with a unique discount code for each recipient. If you use the same coupon tag within multiple flow messages, the recipient will receive the same unique code each time (until the code expires). 


I would add some filtering though so that a contact who has redeemed that code previously is not prompted to use it again on a later abandon.

Hope that helps


Userlevel 6
Badge +25

Hi @smileyrox, one more thing you can do as a safeguard to prevent duplicate emails, and make a better customer experience, is add flow filters on the Abandoned Cart and Abandoned Checkout flow to ensure they don’t overlap. Maybe you’ve already done this?


What @bluesnapper said about the functionality of how Klaviyo processes dynamic placeholder variables for coupon codes is correct, and that will ensure the flows don’t send more coupon codes than you intend for people to receive.


But if you haven’t already added flow filters to ensure people who get added to the Abandoned Cart flow don’t enter the Abandoned Checkout flow and vice versa, that’s an important step to take too. 


Here are screenshots of what I’ve done for one of my clients. You might use a looser or tighter timeframe, depending on the behavior of your own customers…


Abandoned Cart Flow


Abandoned Checkout Flow






Userlevel 3
Badge +6

Hi @ebusiness pros - thanks for your help on this. 

Does this also work for campaigns? 

I am scheduling my campaign and want to include a discount. I got a notice that I don’t have enough codes so I went to Coupons on Klaviyo and loaded codes. 

Now when I send tests, I get different codes each time. 

I just want to make sure I’m not handing out hundreds of codes as the special I want to run is for 2 weeks so there is multiple reminder emails for this campaign where I include the code. 

Also, how do I make sure the people who buy on my first email don’t get the reminder email campaign? 


Your help will be greatly appreciated. 

Userlevel 6
Badge +25

@smileyrox glad to help!


The fundamental way that dynamic coupon codes will be assigned to profiles in Klaviyo is one code per email address, for each type of flow triggered that’s tied to a bank of coupon codes, or for each specified coupon code prefix. (help doc)


So you could have WELCOMExxxx and FALLSALExxxx as two distinct offers/ types of dynamic codes, and once a profile has one assigned to them, they should receive that same code as long as you’re using the exact same code prefix in the liquid snippet that you place in the email - Ex: {% coupon_code 'CouponName' %}


Testing emails with dynamic codes is tricky, since in my experience, the “preview” email that’s sent doesn’t use a code that gets assigned to your test profile. That could explain why the code appears to change in your tests. When I’ve had test profiles go through the same flow a customer would, that’s when one code is assigned to the profile and consistently shows up for me.


Recommended Coupon Strategy

It seems like you have a small team, or you might be managing this all yourself, in which case I’d recommend simplifying how you approach this. Since the promotion is limited to a 2-week period, the need for dynamic codes is less than a scenario like a flow that will be evergreen, and sending codes more frequently to new people. 


So if I was doing this kind of sale, with a reminder email, I’d create one static discount code in Shopify for the purpose of this sale, and specify the expiration date. Then in Shopify, grab the “shareable link” for the coupon. It looks like this, under the “Promote” button.


That’s what you’ll use as a text link or button anywhere you place the code in the email, and if people click that it’s automatically applied to their cart while they shop in that session. Downside is the link only works when sending people to the homepage, so use with discretion. Regardless, the code will be easy for people to copy/paste into their cart in case they don’t click one of those specific links. 


That gives you one code to embed in the promo announcement email, and the promo reminder email. 


Segmenting for the reminder email: 

First, love that you’re even considering segmenting out people who already purchased so they don’t receive the reminder email! You’d be amazed how many large brands *still* don’t do fundamental things like this.


Here’s the simplest version of how to build this segment, and you’d adjust the days as needed based on your own timing. Specify your Campaign Name for the sale announcement email too!


Happy to answer other questions this might bring up for you! Best of luck (: