Users & accounts

Users

Users are major building blocks alongside events within the Intempt data model. Each event is related to the user who is performing it. User profiles are joined onto your events based on their Master ID (Intempt's unique identifier for a user). This lets you join the events a user performs with attributes about who that user is.

📘

Important to know

No event can happen without a user, and no user can be in Intempt without an event. This fundamentally differs from legacy CRM systems, where you can have thousands of user records without relation to their actions. Intempt's event-driven infrastructure is built to allow you to use real-time data to trigger engagement and personalization actions.

User profiles contain user attributes that provide context about the users who performed the event.

Accounts

Like users, accounts are a collection of attributes and event history specific to a group like a company.

Accounts have an activity feed that shows the events performed by users in an account. Only the events attributed to the account with a defined account key will appear in the account's activity feed.


Account grouping allows you to count events uniquely by an alternative identifier, such as a company ID, invite ID, or another value shared by a group of individuals with different Master IDs.

This allows behavioral analysis from a business or group level, as opposed to an individual level. You can answer questions such as:

  • What companies are engaging the most with a product?
  • In instances where there are more than one user per account, such as a video streaming service, how are events triggered at an account level?

Identity resolution

Identity resolution merges each customer's complete history into a single profile, no matter where they interact with your business. It lets you understand a user’s interaction across web, mobile, server, and third-party partner touchpoints in real time. It uses an ID graph supporting device IDs, emails, and custom external IDs. If you send the Group call, you can also understand user behavior at the account level.

  • Supports existing data — no additional code or setup required
  • Supports all sources — stitches web + mobile + server + third-party interactions into the same user
  • Supports anonymous identity stitching — by merging child sessions into parent sessions
  • Supports user: account relationships - for B2B companies, generates a graph of relationships between users and accounts
  • Real-time performance - reliable real-time data stream merges with minimal latency

Identity resolution logic

Intempt creates and merges user profiles based on the identifiers you are using. Intempt searches for identifiers such as userId and profileId on incoming events and matches them to existing profiles or creates new profiles.

Identifier types

  • Profile ID is a source-level identifier, such as Hubspot Contact ID or Shopify customer ID. This ID is unique and only exists in one source. Events with the same profileId inside one source will be connected to a single user.
  • User ID is a project-level identifier for users. The most commonly used are phone and email. This ID is shared across all sources.
  • Account ID is a project-level identifier for a group of users (like companies or accounts). The most commonly used examples are company domain, name, and IDs.

These identifiers are displayed on the user details page.


Matching logic

After receiving a new event, Intempt looks for users that match any of the identifiers on the event.

Based on the existence of a match, one of three actions can occur:

1: Create a new user - when there are no pre-existing profiles that have matching identifiers to the event, Intempt creates a new user profile.

2: Add to existing user profile - when there is one profile that matches all identifiers in an event, Intempt attempts to map the traits, identifiers, and events on the call to that existing user. If there is an excess of any identifier on the final profile, Intempt defers to the Identity Resolution rules outlined below.

3: Merge existing user profiles - when there are multiple users that match the identifiers in an event, Intempt checks the identity resolution rules, and attempts to merge profiles.


Identifying users

To resolve your users' identities, you need to use the Identify call (the same applies for accounts, but you need to use the Group call).

Identify call lets you tie a user to their actions and record attributes about them. It includes a unique user identifier and any optional attributes you know about the user, like their email, name, and more.

Whenever possible, follow the Identify call with a Track event that records what caused the user to be identified.


Anonymous users

If you’re using Intempt Javascript SDK or iOS SDK, the Intempt SDK generates and sets a UUID as profile ID on the user’s first visit to your site. That profile ID is saved in the user’s cookie and localStorage and will stay with that user until the cache is cleared or a reset call is triggered.

You can use the profile ID to link events performed by the user as they navigate around your website. When you track the profile ID, you can attribute activities over multiple days to the same user by collecting all of the activities with that ID. If a user chooses to register for your site or log in to your app, you can Identify them and still include their profile ID in the event payload along with the new user ID.


Identifying accounts

To identify accounts, you need to use the Group call - this is how you associate an individual user with an account, such as a company, organization, account, project, or team.

The Group call enables you to identify what account or organization your users are part of. There are two relevant IDs in a Group call: the user ID, which belongs to and refers to the user, and the account ID, which belongs to and refers to the specific group. A user can be in more than one group, which would mean different account IDs, but the user will only have one user ID that is associated with each of the different groups.

In addition to the account ID, which is how you’d identify the specific group or company, the group method receives attributes specific to the group, like industry or number of employees, for example, that belong to that specific account. Like the attributes of an identify call, you can update these when you call the same attribute with a different value.


When to call identify and group

You should make an Identify call in the following situations:

  • When the user provides any identifying information (such as a newsletter sign-up with email and name)
  • When first you create a user (and so it is assigned a user ID)
  • When a user changes information in their profile
  • When a user logs in

📘

Good to know

Check the Javascript SDKdoc for how to use identify and group calls.