Search documentation...

ChangelogBook a demoSign up

Identity resolution

Identity resolution is only available on Business tier plans. You can use it with or without Customer Studio.

Your customers engage with your business at multiple touchpoints: mobile browsing, online purchases, in-person purchases, and subscription sign-ups, to name a few. Each step can associate multiple identifiers with a single customer. These include their email, phone number, device IDs, anonymous IDs, user IDs, account IDs, etc. Each touchpoint can also attach multiple events to the user: Page view, Support ticket creation, etc. These disordered data points result in fragmented, messy views of your customers.

Disordered data is problematic for a few reasons:

  • Incomplete profiles make it hard to target ad spend accurately.
  • Duplicate data can skew your analytics so that you believe you have more customers with a particular property (for example, geographic location) or propensity (for example, for a particular product type) than in reality.
  • Unattributed events make it challenging to create accurate audiences and correctly correlate events to your attribution model.

Hightouch's identity resolution capabilities help you connect and combine customer identifiers and events into a unified profile of each customer and a more accurate view of your customers in general.

Identity resolution diagram

Hightouch's identity resolution is warehouse-centric. You send all your cross-platform data to your warehouse, and Hightouch stitches them into one clear and complete customer view called an identity graph. The identity graph is a table that's computed and stored in your own data warehouse, making it more scalable and secure than computing and storing it with a third-party provider.

With identity resolution, you can avoid sending an irrelevant retargeting campaign for a product the user eventually purchased and focus your marketing spend on ads for the next relevant purchase or subscription. The lookup table identity resolution creates can also help you optimize investments made in third-party data.

Use case

Let's walk through a hypothetical e-commerce customer journey to understand some example identifiers and events.

User actionsIdentifiersEvents
The user clicks on an ad for your e-commerce store while scrolling through Facebook on their mobile device.Their fbclid, their mobile device's MAID, device_id_1Page view
The user anonymously browses the store's catalog on their mobile device.anonymous_id_1, device_id_1Page views for various product detail pages
On one product detail page, the user adds an item to their cart, but then drops off for some reason.anonymous_id_1, device_id_1Add to cart
Later, the user returns anonymously to the site on their laptop and adds the same item to their cart.anonymous_id_2, device_id_2Add to cart
This time, the user completes checkout and, in the process, provides email, address, and phone number, but doesn't create an, address, phone numberCheck out
After some time, the user files a support ticket about their purchase from their mobile, device_id_2, Zendesk User IDSupport ticket creation
Later, the user makes another purchase, but this time decides to create an, Account IDAdd to cart, Check out, Account creation

Throughout the journey, the user has multiple anonymous IDs, user IDs, device IDs, and events associated with them. Each event also has essential information, including timestamps and other details, such as information about the products they're interested in.

All these data points need to be reconciled with their PII once they complete an order and create an account.

Identity resolution helps merge all these into a unified profile by writing an identity graph that maps them all together.

Configuration overview

You can create multiple identity graphs or projects within Hightouch.

This allows you to test new resolution models with different rules and create graphs for multiple entity types beyond identities, such as households or business accounts.

Identity resolution projects overview page in Hightouch

When creating a new project, you begin by selecting a source to pull data from.

Note that the source needs to have Lightning sync engine enabled. See this section for more detail.

Then, you enter the schema and table names you want to write the identity graph to.

Identity resolution projects overview page in Hightouch

You can configure specific resolution rules differently in each project. There are two main phases to configure these rules:

  1. Model configuration
  2. Match rules creation

Model configuration

Hightouch uses columns from your models to search for matching records across data sets. The process of connecting different columns in different models to a central identity is called identifier selection.

Since different columns may refer to the same identifier but have different names (for example, anon_id vs. anonymous_id), you'll perform identifier selection to explicitly define each column's identifier.

To configure your identifiers, you need to:

  • Select which models Hightouch should reference and whether they contain user objects or events
  • Select which model columns to use and what types of identifiers they contain

identifier selection in the Hightouch UI

The second part of model configuration is declaring the sequence that Hightouch should take the models into account.

Model sequencing in the Hightouch UI

Check out the model configuration page for implementation details.

Match rule creation

Hightouch lets you control how different records should be stitched together based on match rules. There are two types of rules you need to create:

  • Merge rules tell Hightouch which records should belong to the same profile.

Merge rules in the Hightouch UI

  • Limit rules specify how many different identifiers are allowed per profile. If the max is exceeded, then the profiles aren't merged.

Check out the match rules page for implementation details.

Running your graph

After creating your graph, you can run it in two ways:

  • manually, via the Hightouch UI
  • via the API

Using Your Identity Graph

Whenever an identity resolution project updates, it writes to one or more output tables that you specified within your data warehouse. You can run SQL queries on this table to generate parent or related models to use in Customer Studio. To learn more, check out the usage page.


Can I create a project from multiple data sources?

No, each project can only pull from one data source at a time.

What is the "Hightouch ID" (ht_id)?

The Hightouch ID is a unique ID generated for each record when performing identity resolution. For example, a user and all their events they performed would be assigned the same Hightouch ID. If multiple rows from your models are assigned to the same record, they will all have the same Hightouch ID.

Is the Hightouch ID consistent every time the graph runs?

No, the ht_id can change between runs for a particular profile as your rules are evaluated. For example, if you change a rule and re-run the graph, you may find that a particular user may not map to the same ht_id as it had previously.

For this reason, it's not recommended to use the ht_id as a primary key of a model or parent model in Hightouch.

What permissions does identity resolution require?

Hightouch performs the identity resolution in your warehouse, meaning your data never leaves your infrastructure. To do this, Hightouch requires permission to create tables in your warehouse. Identity resolution uses the same schema as the lightning engine, so follow those instructions to ensure Hightouch has permissions to access the hightouch_planner schema.

How long does the identity resolution process take?

The identity resolution process depends on how much data you have, how complex your rules are, and how much compute is available in your warehouse. It's difficult to estimate how long it can take, but Hightouch performs incremental resolution to significantly improve the performance of subsequent identity resolution runs. This means that Hightouch doesn't re-compute the entire graph each time it's run. Instead, Hightouch only recomputes newly added data, which makes subsequent runs quicker.

If you wish to re-run the entire graph, you may do so by clicking "Rerun from start."

If you make any changes to your merge rules, limit rules or input models, Hightouch automatically performs a full re-run of your graph.

Ready to get started?

Jump right in or a book a demo. Your first destination is always free.

Book a demoSign upBook a demo

Need help?

Our team is relentlessly focused on your success. Don't hesitate to reach out!

Feature requests?

We'd love to hear your suggestions for integrations and other features.

Last updated: Jul 22, 2023

On this page

Use caseConfiguration overviewModel configurationMatch rule creationRunning your graphUsing Your Identity GraphFAQCan I create a project from multiple data sources?What is the "Hightouch ID" (Is the Hightouch ID consistent every time the graph runs?What permissions does identity resolution require?How long does the identity resolution process take?

Was this page helpful?