Collecting Customer Interest In Specific Product Category

  • 12 January 2021
  • 3 replies

Badge +2


I run a WooCommerce store that specializes in one-of-a-kind products. We have 100+ different product categories.

I would like to do the following:

  1. Insert a Klaviyo signup form at the bottom of each WooCommerce product category page, and tell the customer “Sign up to get notified when we add new products to the is category”. When a customer uses this form, Klaviyo knows which product category page they expressed interest in.
  2. Each time we upload a batch of new products, have the ability to manually create a new campaign in Klaviyo and send it to the above customers that expressed interest in this product category.
  3. Give customers the ability to modify the categories that they want to be notified about via checkboxes on the Klaviyo manage preferences page.


I’m unsure of the best way to accomplish this. I have two ideas:



  1. Create a custom profile property called ‘favorite categories’
  2. Create a ‘generic’ custom signup form to insert on all the product category pages. Make sure to pass the hidden ‘source’ property to Klaviyo when any of these forms are submitted.
  3. Periodically export my Klaviyo list. In Excel copy and paste the ‘source’ values into the ‘favorite categories’ field. Then run a bulk find + replace to replace the source URLs with the ‘friendly’ / customer-facing category names. Then reimport into Klaviyo.
  4. Create a custom manage preferences page where I can code a checkbox for each possible favorite category, so users can manage them.

IDEA #2 

  1. Create a custom profile property called ‘favorite categories’
  2. Create specific custom signup forms for each product category page. Have each form contain a hidden property ‘favorite category’, which passes the name of the category to Klaviyo
  3. Create a custom manage preferences page where I can code a checkbox for each possible favorite category, so users can manage them.


  • Any thoughts on whether these ideas would work, or if there is a more elegant solution I am missing?
  • Am I correct in assuming it’s possible to have a long list of checkboxes on a custom manage preferences page to save the users preferences like I’m suggesting? Just want to double check as the Klaviyo sample code is relatively simple.


I’d really appreciate any insights!


Best answer by retention 13 January 2021, 00:05

View original

3 replies

Userlevel 7
Badge +58

@anonymous_wombat - There’s a ton of value of using Klaviyo Signup Forms, but in this use case, you may want to consider using the Klaviyo Legacy Forms where you can specify the source value, and any other profile properties and values dynamically.  That way, you can programmatically append the category name, URLs, and any other key/value pairs you want for these forms to be part of the subscribers’ profile when they subscribe.  

Once you have the data in for each profile, you can create the Segments based on that data so when you have a new batch of product, you can send a Campaign to the relevant Segment.

As for the Manage Preferences page, I think you’re on the right track.  You may have to update the options manually for the various “categories” should that evolve over time and to make sure it’s referencing the “favorite_categories” profile property so that they are consistent.  

Below are some “BONUS” ideas to take you concept further. Take a look at the “update_property_link” method to update a Profile based on a Link Click, or to use “Flow Actions to Update” profile properties too based on what they clicked in Flow Messages or for specific Flows as other ways for users to enrich their category preferences - I’m sure you’ll find interesting ways to apply them!


Badge +2

Hi @retention,


Thanks for the reply, that is super helpful! Just one more question I think:

I now have legacy form successfully passing the category slug from wordpress to a Klaviyo custom property called $category


If a user wants to have multiple favorite categories (‘t-shirts’ and ‘sweatshirts’), is it possible to keep appending slugs onto the same $category custom property, storying a users favorite categories as an array? Currently my forms (based on the default Klaviyo legacy form) are just overwriting the $category value each time I submit the form from a different page, not appending.


Or will I need each of my site’s product categories to be stored in a corresponding custom property like:




And then have the form on each page modify the corresponding custom property in Klaviyo?



Userlevel 7
Badge +60

Hello @anonymous_wombat.

Klaviyo’s custom profile properties can support collecting these custom profile values as an array so long as the value being passed is in a list format. A refresher on the data types that Klaviyo support can be found in the About Data Types article. 

This way, if you were collecting your $category custom property and having the values pass as a list format, you can have profiles be amended with the profile property and values such as: $category = ["t-shirts","sweatshirts","sweaters"]

You can also learn more about profile properties from the Guide to Properties article. 

Thanks for contributing to our Klaviyo Community!