Unique Identifiers and Profile Merging


Custom Identifiers and Hierarchy

If you want to add your own identifiers to be used for merging or to adjust the hierarchy, please reach out to [email protected].

Unique Identifiers and Generated People Profiles

A unique identifier is simply a numeric or alphanumeric string that is associated with a single entry within a given system.

Woopra has an advanced ID mapping system that allows it to use many different fields to uniquely refer to an individual profile. When identifying an individual, Woopra will track them as an anonymous user until they are identified in some way. We recommend using Email as the unique identifier. You can identify users using woopra.identify().

Anonymous id and cookies

Woopra will track anonymous users automatically with the tracking code. A profile will be auto generated for these users until they are identified by your tracking. With the cookie, users will be identified as User #XXXXX and will be tracked on any page that you have setup Woopra to track.

Unique id

By Email: Woopra recommends identifying individuals by email as a best practice. Using email as a unique identifier will allow you to better track the complete user's journey across all sites and mediums. This will allow for better tracking through our various integrations as well.

By Custom ID: Alternatively, you can track by some other type of unique identifier such as an internally generated id. You may want to use this method when you do not want to share the users email. You can hash the email as well and pass it as an id.

Custom ID system (Enterprise only)

If you have a unique or specific id system, the Woopra team can work with you to customize your tracking. Please contact our [email protected] to discuss options.

Profile Merging

When an individual first visits your site, they will be an anonymous user. This will create a unique User Profile and will track them via a cookie. Once they are identified, their profile will be updated with their user properties.

If there are multiple profiles for the same user, Woopra will automatically merge these profiles based on a unique id or cookie and based on the ID hierarchy.


ID hierarchy from lowest to highest

Browser cookie --The Lowest order id.
Any Custom Identifiers ...
Email Address
ID (cv_id, external database id)

All individual profiles are under a PID which is the user's profile ID in Woopra. Generally, PID is only used with our data query API.

That said, Woopra will automatically merge separate PID profiles based on a unique id such as an email. For example, a user creates an account on your site and you update the user properties in Woopra and identify them as [email protected]. You also have a Hubspot integration that has previously imported this user into Woopra, creating a unique profile. There now exist two separate profiles for the same user. Woopra will then merge these two profiles into a single profile while keeping all the historical events from both profiles.

Profile mapping and merging examples

Here's how Woopra maps and merges incoming user data to existing profiles using ID hierarchy. See each section for details and examples.


ID hierarchy in examples

In the examples below, we will use the following ID hierarchy:

Customer user ID >> Email >> Woopra cookie

Highest-order identifier takes precedence

When there are multiple identifiers, Woopra maps profiles using the identifier with the highest priority that exists in both the incoming data and the existing profile.

In example A, the new data will merge with profile 1 because they share the same Woopra cookie. The cookie is the highest-priority identifier that exists in both the incoming data and the existing profile.

Profile mapped

Example A

In example B, since the ID does not match, the new data will not merge with profile 1 and will become a new profile. Even though they share the same email, in this example, email has a lower priority in the ID hierarchy compared to ID.

not mapped

Example B

Newer user property overwrites older property

When the new user data is successfully mapped with an existing profile, if the value for a user property is different, Woopra will take the value of the newer data, which is the newly tracked user property.

In example C, the new data merges with profile 1, because user_id matches. Since the incoming data is more recent compared to the existing profile,[email protected] will override [email protected]. Events will not be overwritten. All events will be retained in the merged profile.

Rule 2

Example C


User events will not be overwritten

Unlike user properties, user events will not be overwritten during profile merging. Events will be attached to the merged profile.

New data merges with the most recent profile

If the newly tracked data maps with multiple profiles in the database, it will only merge with the most recent profile in the database. Woopra will look at the last tracked user data in each profile, and the profile with the most recent track record will be considered the most recent profile.

In example D, the new data is only merged with profile 2. Although both profile 1 and profile 2 share the same email with the new data, Woopra only merges it with the most recent profile.

Rule 2

Example D



If most of your events are tracked with email, email should have higher priority in the ID hierarchy to avoid the scenario in example D.

Previously overwritten identifiers can be used for profile mapping

If an identifier was overwritten during a profile merge, Woorpa can still use this overwritten identifier to map incoming new user data that uses this overwritten identifier.

In the example below, even though the email [email protected] was already overwritten by new data 1, Woopra can still map new data 2 to profile 1 based on this overwritten email. And since new data 2 is more recent, the email [email protected] will overwrite [email protected].

Example E

Example E