Identifiers


Identifiers and identity resolution is at the core of what Hull customer data platform does. To “join the dots” about the same person or company with data from multiple different sources, there needs to be a unique identifier to associate other data with.

Hull supports identifiers for Users (people) and Accounts (companies).

Order of Priority

Identifiers have an order of priority. This is used to ensure safe merging of Users & Accounts:

  1. external_id — “bring your own ID” to set identities from another system (like your backend database)
  2. email or domain — for unifying data around the same contact details
  3. anonymous_id — for capturing session cookies and third party identifiers (like your Salesforce ID)

All incoming data must include at least one identifier to be ingested. Hull will lookup and match with existing User & Account profiles.

This process is called identity resolution.

Identity resolution for Users

User Identifiers in order of priority include:

  1. external_id
  2. email
  3. anonymous_id

User identity resolution works as follows with all new incoming data:

  1. Check if there is an external_id. If not, skip to the next step. If present, see if there is a matching external_id in the index. If a match is found, then merge the incoming data with that User. If no match is found and no other identifier is present, then create a new User — otherwise continue to the next step.

  2. Check if there is an email. If not, skip to the next step. If present, see if there is a matching email in the index. If a match is found, then merge the incoming data with that User. If no match is found and no other identifier is present, then create a new User — otherwise continue to the next step.

  3. Check if there is an anonymous_id. If present, see if there is a matching anonymous_id in the index. If a match is found, then merge the incoming data with that User. If no match is found, then continue to the next step.

  4. If the incoming data has an identifier, but there is no matching records that are already indexed, then create a new User. If there is no identifier, the data will not be ingested.

Hull User identity resolution

Learn more about Hull’s User identity resolution strategy.

Identity resolution for Accounts

Account identifiers in order of priority include:

  1. external_id
  2. domain

Account identity resolution works as follows with all new incoming data:

  1. Check if there is an external_id. If not, skip to the next step. If present, see if there is a matching external_id in the index. If a match is found, then merge the incoming data with that Account. If no match is found and no other identifier is present, then create a new Account — otherwise continue to the next step.

  2. Check if there is a domain that is not a free email address domain. If not, skip to the next step. If present, see if there is a matching domain in the index. If a match is found, then merge the incoming data with that Account. If no match is found, then continue to the next step.

  3. If the incoming data has an identifier, but there is no matching records that are already indexed, then create a new Account. If there is no account identifier but there is a User identifier, an empty Account will be created (e.g. anonymous website visitors with session ID’s only).

Hull Account identity resolution

Learn more about Hull’s Account identity resolution strategy.