Identity Resolution
Identity Resolution connects records from different sources into one Vendo customer profile. It powers Customer 360, attribution, feature computation, segments, and destination syncs that need a stable customer identity.
Use this guide when you are setting up a new source, correcting identity mappings, or investigating why a customer profile did not resolve as expected.
Where to Find It
Open Customer 360 and select the Identity Resolution tab. Identity settings also live under Data → Identity Graph in the Data Preferences group.
The tab lets you:
- Add source tables that should contribute identity fields
- Map source columns to identity types
- Rank source trust
- Enable or pause mappings
- Run identity resolution manually
- Review identity coverage and resolution stats
Identity Concepts
| Concept | Meaning |
|---|---|
| Vendo profile ID | Stable Vendo identifier for a resolved customer profile. |
| Identifier | A value used to connect records, such as email, phone, platform user ID, anonymous ID, or external customer ID. |
| Identity mapping | Configuration that tells Vendo which source column contains which identifier type. |
| Source rank | Trust order used when multiple sources provide overlapping or conflicting identifiers. |
| Identity graph | The resolved relationship between source records, identifiers, and Vendo profile IDs. |
Setup Workflow
1. Add Sources
Add only sources that contain useful person-level identifiers. Good starting sources are:
- Commerce sources such as Shopify or Stripe
- Product analytics sources such as Mixpanel or Amplitude
- CRM or messaging sources such as HubSpot, Klaviyo, Customer.io, or OneSignal
- First-party tracking sources that include anonymous IDs, user IDs, or emails
Avoid adding tables that only contain aggregate campaign metrics unless they also contain user-level identifiers.
2. Map Identifier Columns
For each source, map available columns to the correct identifier type.
| Identifier type | Use when |
|---|---|
| The column contains a customer email address. This is usually the strongest cross-tool identifier. | |
| Phone | The column contains phone numbers. Normalize country code formatting where possible. |
| Platform ID | The column contains a tool-specific ID, such as Shopify customer ID, Stripe customer ID, Mixpanel distinct ID, or OneSignal user ID. |
| Anonymous ID | The column contains anonymous web/app IDs that may later connect to known users. |
| External ID | The column contains a stable ID from your own system. |
Map the source column exactly as it appears in the source table. If a source has both raw and normalized versions of the same field, prefer the normalized field.
3. Rank Source Trust
Rank sources from most trusted to least trusted.
Common trust order:
- CRM or commerce system
- Payment system
- Product analytics
- Messaging platform
- Ad platform
- Anonymous web tracking
Use your own business logic when a specific platform is known to be more reliable.
4. Run Identity Resolution
Click Run Identity Resolution after adding or changing mappings.
Run it manually when:
- A new source was connected
- A new identity column was mapped
- Source trust order changed
- A destination needs resolved identifiers before its next sync
- You are validating a support issue
Scheduled runs will keep the graph fresh after setup.
Validating Results
After a run completes, check:
- Total source records considered
- Total resolved profiles
- Identifier coverage by source
- Duplicate profile count
- Profiles with unusually high identifier counts
- Destination fields that depend on resolved identifiers
Then open a few individual customer profiles and confirm:
- Emails and platform IDs are attached to the expected profile
- Events from multiple sources appear under the same customer
- Properties come from the expected source
- No obviously unrelated people were merged
Troubleshooting
Profiles Are Not Merging
Common causes:
- The two source records do not share any mapped identifier
- The expected identifier column is not mapped
- The identifier values are formatted differently across sources
- One of the mappings is paused
- The identity run has not completed since mappings changed
What to check:
- Confirm both sources are active.
- Confirm both tables contain the expected identifier values.
- Confirm the columns are mapped to the same identifier type.
- Run Identity Resolution again.
- Open the customer profile and review attached identifiers.
Too Many Records Merged Into One Profile
Common causes:
- A shared or placeholder email was mapped, such as
unknown@example.com - A device or anonymous ID is reused across multiple people
- A low-trust source is ranked too high
- A column was mapped to the wrong identifier type
What to check:
- Search for placeholder values in the mapped column.
- Pause the suspicious mapping and rerun resolution.
- Lower the trust rank of the noisy source.
- Use a more stable identifier when available.
Destination Sync Is Missing IDs
Destinations often require a specific identifier, such as email, phone, advertising ID, OneSignal ID, or platform user ID.
What to check:
- Confirm the destination field is present on the resolved profile.
- Confirm the source that provides the field is active in Identity Resolution.
- Confirm the destination mapping uses the resolved identifier, not a source-only field.
- Rerun Identity Resolution before rerunning the destination sync.
Identity Run Failed
What to check:
- Confirm source syncs completed successfully.
- Check whether any mapped source table or column was renamed.
- Check whether the mapped table still exists in the warehouse.
- Review the related job logs.
- Pause the newest mapping and rerun to isolate the failure.
Best Practices
- Start with two or three high-quality sources rather than every source.
- Prefer stable, person-level identifiers over session-level identifiers.
- Keep source trust order simple and explicit.
- Avoid mapping placeholder values.
- Re-run after each mapping change.
- Validate with real customer examples before using resolved IDs in destinations.