Adding an Opted-In Attribute

  • 12 August 2021
  • 3 replies

Badge +2

I’m new to using Klaviyo and I’m trying to find the most efficient way to select customers who have opted-in and have not unsubscribe, none regarding where the data was collected. 


At the moment, we add every-single lists into a segment (there are a lot and it will only continue growing) and add the condition ‘is not suppressed from marketing’ which I feel is quite a hassle. 


Is there an attribute (existing or custom) which could be as simple as ‘Marketing Permission is True’ or ‘Opted-in to Marketing’ and which would be updated when someone is added to a list or unsubscribe from emails? 




Best answer by Dov 12 August 2021, 19:05

View original

3 replies

Userlevel 7
Badge +61

Hello @Leo Pure Electric,

Thank you for sharing this question with our Community. And welcome to Klaviyo! We’re very excited to have you on board.

First, understand that you can have profiles in your account who may not belong to a specific list. This group of individuals is what we call “generally engaged” that enter your Klaviyo account through a Klaviyo-built integration. For example, take the action of a customer who makes a purchase on your website. The action of making that purchase (and providing an email address) allows Klaviyo to create a profile for that user within your Klaviyo account. We have a great article: Understanding Who is in Your Account which describes this process in more detail.

With this in mind, you can create a segment with a single definition “is not suppressed” without any specification of lists. That will capture all opted-in users whether they are a part of a list or a part of this “generally engaged” group. Also, since this is a segment, it will update on its own and actively exclude any suppressed users (including those who opted-out). If you continue to expand your segment definition to accommodate more lists, you may be missing out on these other active profiles.

On the other hand, if you’re only looking to capture opted-in & list-specific subscribers and not this generally engaged group, you can add a universal hidden field onto your Klaviyo sign-up forms and then create a segment to capture anyone who is actively subscribed using this field.

You can add a hidden field onto any Klaviyo sign-up form by clicking on the call to action (CTA) button on the form and you will see $source under the Submit Hidden Fields section on the left. If you click the “Add a Property” text in blue, this will allow you to create a net-new hidden field from scratch.

Adding the Property (Before)
Added Hidden Property (After)


If you add this same property + value to each form, whenever somebody submits a Klaviyo form, they will log this property.

From there, you would build a single segment based on this property. For example, say the property is opt-in > yes (like I have in the screenshot above). Your segment would look like the following: Properties about someone > opt in = yes AND “is not suppressed”.  Adding an “AND” separator with “is not suppressed” will allow you to capture everyone in the segment who has submitted one of your forms and is still actively opt-ed in without you having to constantly update list membership.

Hope that helps!

Badge +2

Thanks for your response. 


I’m based in Europe so require for my marketing to have customers consent. I’m not clear if using the first scenario you describe if this will be the case or if the “generally engaged” group would include everyone that made a purchase, none regarding of their marketing preference? 


Ultimately, I’m after 1 simple attribute to capture everyone (from list or purchase) who actively gave their marketing consent and have not unsubscribe since then. 

Userlevel 7
Badge +61

Hello @Leo Pure Electric,

Thanks for your reply.

The first scenario could include people that made a purchase but did not designate a specific email marketing preference.

Understood, however, there isn’t one attribute that will collect everyone from every list and who has purchased or (taken another action) and given their consent. To achieve your goal, will need to build a segment definition accounting for the members who have opt-ed into your lists in addition to other potential consent pathways and use this as your point of reference for people who have opted-in.

If you have an Shopify integration, Shopify passes Klaviyo an “accepts marketing” value when a user accepts marketing at checkout. If the user accepts marketing but does not place an order, they user will not be placed on a list but will have “accepts marketing” = true on the profile.

Accepts Marketing = true

So, if you are using Shopify, your initial segment definition would look like the following: Properties about someone > is in list X OR is in list Y OR is in list Z (etc. for all lists) OR accepts marketing = true AND “is not suppressed”. The latter criteria, “is not suppressed”, ensures that the user has not unsubscribed. 

Also as a full disclaimer - I also understand that this process can be tedious and our team is actively working on achieving more of a “universal” status for consent across all areas to make this more manageable for our users.

You can prevent continuously adding lists to the segment definition if you use the strategy I outlined above about updating the hidden properties of your Klaviyo sign-up forms. Essentially, that hidden property will be used in the segment definition in place of future lists created in your Klaviyo account because everyone signing-up through a Klaviyo sign-up form will have that hidden property. Since all net-new sign-ups to your lists will have this property, it eliminates the need to keep including more lists in your segment definition separated by “OR”. You will want to leave existing lists in your segment definition to account for folks who have already opted-in these lists in the past before you added the hidden property.

Once you update the sign-up forms with the hidden property, you can simply use Properties about someone > opt in = yes in place of adding additional lists to the segment definition. So the final definition will look something like the following:

Properties about someone > is in list X OR is in list Y OR is in list Z (etc. for all lists prior to updating the hidden property in your Klaviyo sign-up forms) OR opt-in = yes (to account for new people signing-up through your Klaviyo forms, potentially to new lists after updating the hidden property) OR accepts marketing = true (if you’re using Shopify) AND “is not suppressed” (to only include actively subscribed profiles in the segment). Again, keep in mind you may have to add additional “OR” criteria if you are using other 3rd party forms that log a separate property for accepts marketing. This would be worth asking the 3rd party integration support if this is something they’re sending to Klaviyo, if so include it in your segment definition.

Lastly, you may find this guide helpful to better understand AND vs OR. And before you will be able to add the hidden field to your segment definition, a user will have to fill the form with the hidden field in place.

I hope that adds some further clarity.