Adding Conditional Logic in Flow

  • 1 February 2023
  • 3 replies

Userlevel 1
Badge +3

Hi Klaviyo Community!

In my Welcome Series flow, I offer a first-time customer discount. I show the discount in email #1 and then I have a conditional split prior to email 3. The conditional split for email 3 is based on whether the customer has bought or not; if not, the customer will receive a “final day to use your coupon” email. If they’ve bought already, they’ll receive another email about our brand.

Rather than creating another conditional split, I’d like to dynamically show the coupon in email #2 if the customer has not bought yet (and if they have bought, hide the banner). I created a new boolean property called “Buyer” (choice is either True or False) that is set when a customer makes their first purchase with us.

I’ve read through the community messages and Klaviyo documentation but cannot seem to get the coupon banner to display for qualifying profiles. I’ve tried:

person.Buyer =="0"
person.Buyer =="false"

So, I’m reaching out to the community to see if anyone has a solution?

Thanks in advance!





Best answer by Jessica eCommerce Badassery 1 February 2023, 05:40

View original

3 replies

Userlevel 1
Badge +3

Thank you @Jessica eCommerce Badassery and @alex.hong for your great input. I missed the “not” function on the Help Center page. (e.g. not person|lookup:'Buyer' == 0).

I found that not person|lookup:'Buyer' works perfectly, as expected and as hoped!

Thank you again for your help!


Userlevel 7
Badge +58

Hi there @bill_wishgarden ,

If I am understanding correctly, you want to show/hide something in your email #2 based on whether or not they used the coupon correct?
You can use the following syntax in your Show/Hide logic to show or hide blocks in your template if someone has a particular Coupon on their profile: person.Coupon == "couponname".  One thing to note is that Klaviyo doesn't have visibility into whether or not someone has used a Coupon, so we will show that Coupon on their profile whether they have used it or not, as long as it has not yet expired.  I'd recommend testing this to confirm whether it meets your needs, and generally recommend putting a conditional split in the flow before the email where you want to show this reminder to determine whether the customer has Placed an Order since starting the flow.  This would avoid showing the block to profiles who might have the Coupon on their profile but may have already used it.

Userlevel 5
Badge +19

@bill_wishgarden  Unless you’re specifically adding the Buyer is false field you’ll actually want the condition to confirm that the field doesn’t exist on their profile at all with this syntax. 

not person|lookup:'Buyer'

Note: The field name (ie. buyer) is case sensitive. 

If you are adding a value of false after checking whether or not they made a purchase, it might be an error in your logic. It looks like you’re missing the space between the == and the 0 in the first condition example. 

person|lookup:'Buyer' == 0


You can see all the conditional references here:


Lastly, you can use a text field instead. I find them easier to work with. 


So right before email two, add a conditional split. those who make a purchase, add the profile property Made First Purchase with a value of Yes. 


Then in the email, you’ll confirm that the field does not exist on the profile with:

not person|lookup:'Made First Purchase'


Hope that helps!