Skip to main content
Two customer profiles can have the exact same phone number or email and still stay separate in Maestra. That isn’t a bug — it’s a safety mechanism. When Maestra spots a contact match, it checks two things before merging the profiles. If either check fails, the profiles stay apart on purpose. Here are the two reasons it happens.

Reason 1: A unique identifier blocks the merge

Maestra lets you mark a unique identifier (for example, an external ID, a loyalty card number, or a CRM ID) with the setting Do not merge customers with different IDs. When that flag is on, two customers will not be merged if:
  • Both customer profiles have a unique identifier of the same type filled in, and
  • The values of those identifiers are different.
Even if the email or phone matches, Maestra treats the two unique IDs as proof that these are two different people, and leaves the profiles alone.

When this is useful

The classic case is a shared contact between two real people. Think of a couple at a fitness club who registered with the same household phone number but each got their own membership card. The phone overlaps, but each person has a distinct membership ID. Without this protection, a routine contact match would silently merge two real customers into one profile and mix up their visits, purchases, and communications.
If you actually want the merge to happen, you have two options: clear the conflicting unique identifier on one of the profiles, or turn off Do not merge customers with different IDs in the unique identifier settings. Change the setting carefully — it applies to every customer that uses that identifier type.

Reason 2: The contacts that grant account access are different

The second reason is about account access. In Maestra, certain contacts can be marked as “grants access to the account” — usually the contacts a customer uses to log in or to authenticate at checkout (typically email, phone, or a discount card number). Maestra will not merge two customers when the contacts that grant account access on each profile are different. A discount card number can play the same role and block a merge for the same reason.

Why this matters

This guards against a real-world data exposure risk in loyalty programs that span online and offline channels. Imagine a loyalty program where:
  • Customer A registered at the cash register. Their account is accessed by phone number.
  • Customer B registered on the website. Their account is accessed by email.
Later, the same phone number ends up on both profiles (for example, the website customer added their phone during checkout). The phone matches — but the contact that grants access is different on each profile (phone for one, email for the other). If Maestra merged them, anyone holding either credential would suddenly have access to the combined purchase history, loyalty points, and personal data of two different people. So Maestra keeps the profiles separate until you confirm they really are the same person.
Don’t work around this by removing the “grants access to the account” flag from your contacts just to force a merge. You’d be weakening the safeguard that prevents one customer from gaining access to another customer’s data. Resolve the merge manually instead, or fix the integration so that the access-granting contact is consistent across channels.

How to tell which reason applies

Open both customer profiles and compare:
1

Check unique identifiers

Look at the unique identifiers on both profiles. If both have a value for the same identifier type and those values differ, and that identifier type has Do not merge customers with different IDs enabled, that’s Reason 1.
2

Check access-granting contacts

Look at which contacts are marked as granting access to the account on each profile. If the access-granting contacts differ between the two profiles (for example, phone on one and email on the other, or different discount card numbers), that’s Reason 2.
3

Decide what to do

If the two profiles really are the same person, merge them manually from the customer profile, or fix the upstream data so the conflict goes away. If they’re two different people who happen to share a contact, leave them as-is — the system is doing its job.
If you keep running into duplicate profiles that aren’t merging, audit these in your account:
  • Unique identifier configuration. Which identifier types exist, and which have Do not merge customers with different IDs turned on. This setting is intentional — change it only when you understand the impact on your customer base.
  • Access-granting contacts. Which contact types are flagged as granting access to the account. Keep this consistent across your integrations (POS, website, mobile app) so the same kind of contact authenticates a customer everywhere.
  • Integration data quality. Duplicates often start as integration bugs — the same person being created twice with slightly different access-granting contacts. Fixing the source is usually cheaper than merging duplicates after the fact.