Data & measurement

Duplicate customer profiles: why your CDP splits one person in two

A customer who browses anonymously before signing up can end up as two separate profiles in a CDP: one holding their pre-signup behavior, one starting from zero. The split happens when the signup flow creates an identified profile without passing along the anonymous ID that was tracking that visitor a second earlier.

Two graphite silhouettes of the same person, one filled with solid orange detail and the other left blank and outline-only, standing side by side as separate profiles

What matters

  • A CDP tracks pre-signup activity under a temporary anonymous ID, separate from the identified profile created at signup.
  • The merge between the two is not automatic: the signup flow has to pass the visitor's existing anonymous ID into the identify call, or the CDP creates a second, empty profile instead.
  • A split profile starts every lifecycle journey as if the customer were brand new, even when a campaign is the reason they signed up.
  • Checking for an anonymous ID field on a recent signup, or comparing account creation date against "first seen," surfaces the split without touching any code.

A customer signs up on Tuesday after browsing the pricing page on and off for a week. In the CDP, that week lives under one profile, the signup under another, and nothing connects them. The person is the same; the record is split in two.

Why the handoff from anonymous to known breaks

Every CDP tracks activity before someone has an account under a temporary anonymous ID tied to the browser or device. The moment that person signs up or hands over an email, the tool is supposed to merge that anonymous history into the real profile. That merge does not happen just because the person exists in both records: it has to be told, explicitly, that the anonymous ID and the new identified ID belong to the same human. If the signup call passes the new user ID but never carries along the anonymous ID tracking that visitor a second earlier, the CDP has no way to know they are the same person. It opens a second, brand-new profile instead of completing the first one.

Where it usually slips through

The most common place this breaks is a signup or checkout flow built by a team that never read the identity-resolution spec the marketing stack depends on. Someone wires up the account-creation call, it works, and nobody checks whether the pre-signup anonymous ID rode along. The product funnel looks fine; the split only shows up later, inside the CDP, as a “duplicate profile.”

What a split profile costs

The anonymous profile keeps every page view, email click, and ad interaction from before the signup. The identified profile starts with zero history, even though a specific campaign is the reason that person signed up. Any journey that triggers off “time since first seen” or “pages viewed before purchase” reads that customer as brand new, so a welcome series built for a cold lead runs on someone who already knew the product, and attribution credits acquisition channels for signups they had nothing to do with.

Three places to check if you suspect this is happening:

  1. Pull the profile for a recent signup and look for an anonymous ID field. If it is empty, the merge never ran.
  2. Compare the account creation date in your product database against “first seen” in the CDP. A match means no pre-signup history ever attached.
  3. Check what the identify call actually sends: the visitor’s new user ID alone, or that ID together with the anonymous ID they had a second before.

This is the same mechanic behind what a CDP actually does with identity: the tool is only as good as what gets reconciled into one record. The fix is rarely a new tool, it is making sure every entry point into a United States funnel, signup, checkout, app login, carries the visitor’s existing anonymous ID forward instead of starting fresh. The same failure, data that never makes it back to the record that needed it, is what breaks a shipment in a failed delivery with no address update.

Frequently asked questions

Why does my CDP show two profiles for the same customer?

Because the identity merge between the anonymous profile created while they browsed and the identified profile created at signup never happened. The signup flow has to explicitly pass the visitor's existing anonymous ID forward; if it only sends the new user ID, the CDP has no way to know both records belong to the same person.

How do I check if this is happening on my site?

Pull the CDP profile for a recent signup and look for an anonymous ID field tied to it. If it is empty, or if the account creation date matches "first seen" exactly, no pre-signup history ever attached to that profile.

Does this only affect reporting, or does it change what customers receive?

Both. A split profile reads as a brand-new customer to any journey that triggers off time since first seen or pages viewed before purchase, so a welcome series built for a cold lead runs on someone who already knew the brand, and acquisition channels get credited for signups they had nothing to do with.

Keep reading

All topics

×
Hi! 👋

How can we help you today?

Please write a message first.