Skip to main content

I am migrating our database and I’ve got multiple csv files prepared of different lists e.g. they have visited our bar, and they have purchased 2 different products from our online store. For this example they would feature on 3 lists, one for each product and one for the bar - if I have a custom property column in the two product csv’s which are both titled ‘Product Purchase’ but each has a different value under it in the different csv’s will both of the values be added to that customers one profile? Or will one overwrite the other because the title of the customer property is the same? I don’t want to add it as a ‘list’ because the data isn’t within one csv, and I don’t know how to compile the data into one csv in the particular format Klaviyo needs it {“x”, “y”] without it being manual and we’ve got thousands of orders we need to port over. 

 

I hope that makes sense!

Hi ​@zoemangin - Custom Properties in Klaviyo will overwrite if they share the same name.

So in your case, if both CSV files include a custom property called Product Purchase but with different values (i.e., "Shirt" in one and "Hat" in the other), the last uploaded file will overwrite the previous value.

If you want to store multiple values under one property, Klaviyo supports array-style formatting using brackets:

  • Product Purchase: s"Shirt", "Hat"]

But Klaviyo won’t auto-merge these from separate CSVs, you’ll need to consolidate into one CSV per profile with the property already formatted as an array. Here are the options I’d suggest: 

  1. Manually or Programmatically Merge:

  • Use Excel, Google Sheets, or a script (Python or even Zapier) to merge orders by email and format the property as r"Product A", "Product B"].
  1. Upload as Separate Properties:
  • Use different property names for each upload, like:
    • Product Purchase 1
    • Product Purchase 2
  • This avoids overwrites but is messier long-term.

@zoemangin I'm wondering if having a special profile detail is really necessary, since simply being on the list might be enough for your marketing needs in Klaviyo. The only downside to that is that people can choose to unsubscribe from the list at any time, so you might lose track of whether they bought a specific product or visited the bar.


Welcome to the community ​@zoemangin 

I would consider the list (array) custom property approach for capturing purchased products/bar visits as suggested by ​@zacfromson . However, that does make the csv list prep more complicated to get unique profile emails and their associated products as an array and in one csv.

It is possible to do that in Google sheets without coding as I've done that on client projects. Happy to share that template if you want to take that approach.

The alternative approach also suggested by ​@zacfromson would work too: because it looks like you only have 2 products + bar visit,  you could create three custom properties: product_name_A, product_name_B, (replace with actual product names to simplify), and bar_visit. 

Add the relevant custom property and values to each of your 3 lists and set to true or yes, then import those into Klaviyo into one temporary list just for the import (assuming you don't want to import into a master list, trigger flows etc). 

You can then create segments from those custom properties. The caveat is that if you intend to expand your products/bar venues, this approach can get unwieldy - an array is better.

Hope that helps

Andy


Thank you so much for your responses! I’ve gone for multiple values under one property and actually got chatgpt to help me merge all of my csv’s and create the custom property column and tags for me - it’s worked so well! Let’s hope the upload goes okay 😄


Reply