How to hide or show blocks in klaviyo based on sms consent

  • 26 April 2022
  • 2 replies

Badge +2

Hi, I’d like to ask if it’s possible to hide or show blocks in klaviyo based on SMS consent, 


I want to send a campaign that includes SMS sign up block, but I don’t want this block to be shown to people who already consent to receive SMS


Best answer by alex.hong 26 April 2022, 20:26

View original

2 replies

Userlevel 7
Badge +58

Hi @Beebs,

Welcome to the Community.

Due to how consent is stored, we're unfortunately not able to use Show/Hide blocks based on consent. This feature as it only works with Profile or Event properties. Consent is technically not stored as an accessible profile property for this feature.

The workaround would be to use custom properties. While collecting consent you would also want to collect or sync over a custom property that can be used to allow for Show/Hide blocks. This could be setup as a hidden field in a signup form. 

Submit Hidden Fields

Hidden fields are additional properties that will be added to a subscriber's profile in Klaviyo. This allows you to track viewers who interact with your form. By default, all new signups must have a $source property — this is what identifies how they were added to your account. You can analyze how people come into your account in the List Growth Report.


Additionally, you can configure this property name (e.g. Newsletter Popup). Similar to text inputs on forms, if you add additional hidden fields for properties that already exist in someone's profile, they will be overwritten by the new value when they submit the form. For example, if you’re using a form to gather collection preferences, and a customer has selected previously that they are interested in your men’s collection, if you have a form pointing to your women’s collection with a hidden field for interest in your women’s collection, this property will be overwritten. This option is only available for buttons that submit the form, not close form, go to URL,

For example, if you have a signup form that collects a customer property called SMS consent (separate from $consent) using Hidden Fields:


As customers fill this out, a custom property SMS consent would be added with a value of True. You would then use the following syntax using Show/Hide:

person|lookup:'SMS consent' = 'True'

Likewise, you can add custom properties via CSV update to add this property on existing profiles. Keep in mind however this custom property is not the same as $consent and would not allow you to send SMS to profiles that are not truly consented to receive SMS. 

Hope that helped!

Badge +2

Thanks so much, I’ll try this approach, I think it should work