Create Segment For Expiring Coupons

  • 18 December 2020
  • 6 replies

  • Anonymous
  • 0 replies

Hi, apologies up front if this is an easy ‘to do’, but I’m still on my learning curve with digital marketing.

We offer a $ coupon code when someone subscribes to our email list.  I am trying to create a segment (and subsequent flow) to follow up with the customer that they still have a $10 coupon to use and hopefully get them re-engaged and purchase.  I would like this follow up once 60 days passes.

I have looked in both the segment and flow sections and I cannot seem to create ‘when someone has not used coupon’.

Is the best solution to create a flow for ‘someone that subscribes and not purchased’ in the last 60 days.  I was hoping that the trigger could be the expiration date of the coupon and possibly re-send the coupon code to them?


Thanks in advance




Best answer by retention 18 December 2020, 19:00

View original

6 replies

Userlevel 7
Badge +59

@CandyPink No need for apologies, all of us here are just learning together!

If you want to check if someone has used a particular discount code, you can add a “Conditional Split” in your Flow and use the “Placed Order” metric with a Filter for “Discount Codes” for it to contain the code to match.

See here:

In the above Flow, after 60 days, it checks if someone has used the code that contains “WELCOME10” and then if they have, it goes down the “YES” path to send the next email in your series.  If they haven’t used the code, it goes down the “NO” path to send them a reminder for their discount code, and waits 4 days so that it continue to join the other path to get the next email.


Hope this helps!

@CandyPink thank you for posting this question!

@retention thank you so much for this answer! I do have one additional question on this. If I use dynamic codes but do not have a prefix setup, am I able to just put {% coupon_code 'CouponName' %} in that field? See screenshot below:


Userlevel 6
Badge +9

Hi @paulo @CandyPink @retention, hope everyone is doing well! 

I just wanted to chime in on this thread to clarify some aspects regarding coupon codes that Klaviyo can and can not do today. 

  • Filtering for coupons only works for static coupons, not dynamic coupons. Unfortunately, @paulo if you use a dynamic code, you would not be able to filter by “contains”. 
  • If you are using a unique coupon in a flow, you could determine if someone has used a coupon based on the “placed order” metric. While that doesn’t explicitly say someone did or did not use that unique coupon, it gets you pretty close to knowing if someone placed an order by opening an email that contains the code and placed an order shortly thereafter. It is a common request that we hear from our customers that they’d want to be able to filter from dynamic coupons, and its something our team is evaluating. 
  • It’s recommended that if you want to thoroughly track coupon codes, you should opt to use Static Codes. Alternatively, another method you could try to do is to send a dynamic coupon code in a Flow and setting a delay (ie. 60 days) after the email with the coupon code (in this case, it’s email 2). You can then set a conditional split on the “Placed Order” metric and if they have placed an order since entering this flow, they would exit the flow and if they have not, then you can send them Email #3 with a reminder to use their coupon. 


Hope this helps to clarify coupons! You can also reference our help center article on How to Use Coupon Codes & How to Use Unique Coupon Codes within Shopify (alternatively, if you have another integration, you can see the Coupon articles here.) 


Badge +3

Hi @cassy.lee, this is super helpful. One question I still have is is there a way to segment by who has ever used a coupon code and who hasn’t? I’m not concerned with identifying a specific coupon, just want to know if I can send those who have already used a coupon code a different offer than those who haven’t. 

Userlevel 7
Badge +60

Hello @porter,

Great question!

Currently, there is no way to segment by users who has ever used a coupon code within Klaviyo. This is because Klaviyo is actually not completely informed when a coupon code has actually been used outside of the Placed Order event. As @cassy.lee had pointed out, this can be easily accomplished if you only used static coupon codes by using a segmentation rule such as “What someone has done, Placed Order at least once where Discount Codes contain STATIC_COUPON_A, STATIC_COUPON_B, STATIC_COUPON_C...” by listing out all your static coupon codes. This would be much harder to accomplish if you used dynamic coupon codes as each dynamic code would be unique. 

One solution I can recommend to identify users within your account that have used a coupon code versus those who have not, would be exporting this data from your ecommerce backend and then use Klaviyo to cross reference the results. For example, you should be able to export this sort of data from your ecommerce backend to identify all users who have used a coupon at least once. From there, you can import this customer data back into Klaviyo as a static list. Then to cross reference those contacts within your Klaviyo account who has made a purchase but has not used a coupon code, you can create a segment with the rules “What someone has done, Placed Order at least once over all time AND If someone is or is not in a list, Person is not in IMPORTED_LIST”. The resulting segment will return a list of customers who has placed an order at least once but is not in this list you imported which would be customers who has used a discount code at least once. You can certainly adjust these rules based on your goals as well such as simply using only the “If someone is or is not in a list, Person is not in IMPORTED_LIST” definition to capture all customers in your account, including those that have not purchased from you.

I hope this helps!


Filtering for coupons only works for static coupons, not dynamic coupons. Unfortunately, @paulo if you use a dynamic code, you would not be able to filter by “contains”. 

I’m glad to get this answer since I was unsuccessfully trying to create a segment of coupon users. But not too happy with the answer itself. Dynamic coupons have fantastic benefits, and it would be useful to have a metric of placed order → used coupon (any code!) to find who has done this action. My client simply does not use static codes due to the tendency for abuse.