Skip to main content

The personalization reference mentions two different user profile IDs:

  • Unique ID
  • Klaviyo ID

What is the difference between these two? Are there reasons to use one over the other, in different contexts? (Specifically, I am wondering about campaigns and campaign personalization… which ID I should use to identify a specific user profile.)

For what it’s worth… when manually clicking through some of my user profiles, I see only Unique IDs and no Klaviyo IDs.

Thank you!

Hi there! Thank you for your question, I’m happy to help.

Here is the difference between Unique ID and Klaviyo ID in Klaviyo is as follows:

1. Unique ID

  • The Unique ID is the primary identifier for each profile in Klaviyo.
  • It is auto-generated and serves as the main way to uniquely identify a user.
  • When you view a user profile in Klaviyo, this is the ID you typically see.

2. Klaviyo ID

  • The Klaviyo ID is an internal identifier that Klaviyo uses within its infrastructure.
  • This ID is not commonly used in the UI and is mostly relevant for API interactions.

Which ID to Use?

  • For campaign personalization, segmentation, or tracking, use the Unique ID.
  • The Klaviyo ID is typically not needed for most marketing activities unless you are using Klaviyo’s API extensively.

If you have any follow up questions, please let me know! 


@zacfromson Excellent, super clear answer. Thank you so much. 👏


@zacfromson After some more testing, I have a follow-up clarification (posting here for myself and anyone else who finds this thread in the future).

I am not sure if this is intentional or not, but… according to the personalization reference, using 

{{ person.id }}

should return the Unique ID. However, in my testing, it returns nothing at all. 🤔 Note that ​@dgrigg in this other thread had the same issue.

I ended up using

{{ person.KlaviyoID }}

despite your advice above, simply because this template tag does actually populate with an ID, as expected.

However, in a twist (!), person.KlaviyoID populates not with a Klaviyo ID value, but actually the value shown as the Unique ID as shown in the user profile page! 🤯 This doesn’t make any sense to me; it seems like just a mistake, that one identifier is mislabeled as another on the profile page — or that one template tag is essentially broken, and the other one is sort of working but references the wrong identifier.

Anyway, I’m using person.KlaviyoID as the identifier for now, whatever it is. (Sigh.)