Skip to main content

Hello! I’m new to Segment and want to make sure we’re implementing user ID best practices.

According to this document:

A userId should be a robust, static, unique identifier that you recognize a user by in your own database systems. 

We anticipate sending events to Segment from multiple products, each of which has their own user database. Should each product use its own user IDs as the Segment user IDs? 

More concretely, suppose we have a user who has created accounts in product A and product B. They used the same email address when they created each account. Since product A and product B have different user databases, this user has two user IDs: uuidA and uuidB. When we send events for this user to Segment from product A, should the user ID be uuidA? That would mean we have two Segment users (uuidA and uuidB) that correspond to one user.

Thanks in advance!

Hi Hannah! Welcome to Segment!

 

The approach to use separate user IDs (uuidA and uuidB) for each product when sending events to Segment will indeed result in two separate Segment users, which might not be ideal if you're looking to achieve a unified customer view across your products. Segment’s official recommendation would be to have one consistent database ID for each user, no matter which products they use.

 

To address this challenge, it's recommended to establish a common identifier that can be used across all your products. This common identifier should be a robust, static, unique identifier that remains consistent across the customer's lifecycle and across all the products they interact with. Here are a few approaches you could use: 

  1. Use a Common Identifier Across Products: If the user's email address is consistent across products, you could use a hash of the email address as a common identifier. However, this approach has limitations, especially if email addresses change over time or if privacy considerations restrict using email addresses in this manner.
  2. Central User Repository: Consider creating a central user repository that assigns a global unique identifier (GUID) to each user, regardless of the product they sign up for. This GUID then becomes the user ID that is sent to Segment, ensuring that the user is recognized as the same individual across all products.
  3. Identity Resolution Service: Implement or use an existing identity resolution service that can map multiple identifiers (uuidA, uuidB, email, etc.) to a single unified profile. This service would take into account the different user IDs from each product and map them to a single identifier that is then used when sending events to Segment.
  4. Segment's Identity Resolution Capabilities: Leverage Segment's identity resolution capabilities, such as using the Identify call to associate multiple identifiers with a single user profile. This can help in merging activities from uuidA and uuidB under a single Segment user profile, provided there's a way to link these identifiers together (e.g., through a common email address or another shared attribute).

In summary, while it's technically feasible to use product-specific user IDs (uuidA and uuidB) when sending events to Segment, doing so without a strategy for linking these IDs to a single user profile can lead to fragmented customer data. Adopting a common identifier or leveraging identity resolution techniques will help ensure a unified customer view across your products.

 

Hope this helps! Segment SEs or others please feel free to weigh in here as well


This is super helpful -- thank you so much for your thorough response!!


Reply