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:
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.
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.
Let's walk through a hypothetical e-commerce customer journey to understand some example identifiers and events.
|The user clicks on an ad for your e-commerce store while scrolling through Facebook on their mobile device.
fbclid, their mobile device's MAID,
|The user anonymously browses the store's catalog on their mobile device.
Page 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.
Add to cart
|Later, the user returns anonymously to the site on their laptop and adds the same item to their cart.
Add to cart
|This time, the user completes checkout and, in the process, provides email, address, and phone number, but doesn't create an account.
|email, address, phone number
|After some time, the user files a support ticket about their purchase from their mobile device.
device_id_2, Zendesk User ID
Support ticket creation
|Later, the user makes another purchase, but this time decides to create an account.
|email, Account ID
Add to cart,
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.
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.
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.
You can configure specific resolution rules differently in each project. There are two main phases to configure these rules:
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,
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
The second part of model configuration is declaring the sequence that Hightouch should take the models into account.
Check out the model configuration page for implementation details.
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.
- 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.
After creating your graph, you can run it in two ways:
- manually, via the Hightouch UI
- via the API
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.
No, each project can only pull from one data source at a time.
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.
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.
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
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.