Dynamic Custom Properties

  • 11 March 2024
  • 3 replies

Badge +1



I’m creating an Anniversary Flow and would like to use the below aspects within the email, using dynamic content.

  • Month of Account Created (For example: You created your account in March 2022)
  • Number of Orders (Show how many orders that they have placed on our website (Shopify))

The data is there to be used but I’d like to create custom properties so that I can dynamically display this within the email.


Does anyone have any advice on how to achieve this?


Best answer by In the Inbox 12 March 2024, 16:34

View original

3 replies

Userlevel 7
Badge +29

Hi @ZackGurd 

Thank you for posting your question in the community. I really like the idea of including the personalized data you outlined as consumers will feel more special when they see data customized to their interactions with your brand.

In terms of the structure of the data, most personalization used within the body of the email, does need to be saved as custom profile properties. 

For this campaign, I assume you’ll need to run a backfill of existing customers to populate this data and then you’ll also need to set up something to set the custom profile properties for future anniversary sends. 

Between the two data points, the most challenging one will be the number of orders placed and saving that as a custom profile value. Klaviyo saves all placed orders as metrics vs. profile properties, and technically there is not a simply way to create a profile property with a simple count of historical orders. 

For the backfill, you can export all profiles and include “Date Added” or “Profile Created On” or “First active date” to get your initial Account Created Date, depending on how you want to measure when a user was first active with your brand.

You’ll also be able to export “Historic Number of Orders.”

Once you’ve exported these, you can set up custom profile properties and then upload the list where the export data maps to your new custom profile properties. 

For on going updates, this gets a little tricky.

For both custom properties, you’d want to set up some flows to create/update profile properties based on different conditions. 

For example, If someone already has 2 orders, you would set up a new flow using the placed order event, and then user different conditional splits to filter users based on the number of orders they’ve already placed (or based on the custom profile you created in the backfill process). Then, you’d add an Update Profile Property step and increase the value based on the filtering.

  • User has never placed an order before - Update profile property = 1
  • User has placed one order before today - Update profile property = 2
  • User has placed two orders before today - Update profile property = 3
  • Etc.

Unfortunately, you’d have to create a split for as many possible orders a customer is likely to make in order to save that specific value to the profile property.

I hope this helps!

@In the Inbox 

Badge +1

Hi @In the Inbox ,


That helps loads, thank you!

Big task then basically, haha!


Best get cracking!


Thanks for your help,


Userlevel 7
Badge +29

Hi @ZackGurd 

Glad I could help! If you have any other questions, please don’t hesitate to let us know!


@In the Inbox