Early Access This is currently a limited availability feature in the Beta stage. We are working towards making it generally available later in the year. |
Overview
Identity resolution involves linking and matching an individual's attributes from different data sources to create a unified identity representation. It combines various data elements to establish connections and create a comprehensive view of the individual. Resolving these users into a single user profile enables marketers to accurately segment and personalize the users based on the data collected across various online and offline resources and avoid any duplication.
The Identity Resolution feature of MoEngage allows you to integrate multiple profiles of the same user obtained from various online and offline data sources (such as Data APIs, SDKs installed in your app, and CSV files). When various sources include clear identity information, such as a customer ID, Email-id, or phone number, you can combine them to build a unified customer profile. This maintains a single source of truth for each user, allowing you to seamlessly track their behavior on your application and regulate your business strategies accordingly.
info |
Info You must choose an identifier-attribute (like phone number or Email-id) that uniquely identifies the user to use Identity Resolution. |
Use Cases
Identity resolution plays a critical role in the following scenarios:
- A user browses a public listing page on a brand's website, providing their Email-id (the unique ID in MoEngage) and phone number (a custom attribute in MoEngage). While at an offline store, the user uses their phone number to make a purchase. The brand aims to link the browsing activity on the website to the user who purchased at the store using their phone number instead of their Email-id (which serves as the unique ID in MoEngage).
- A brand offers multiple user registration methods, including email login, mobile OTP, and social media logins like Facebook. However, these methods generate different user profiles for the same individual. The brand aims to consolidate these multiple profiles into a single unified profile as it gathers additional information when the user engages in further activities.
- An anonymous user browses product listings on an e-commerce app and adds items to the cart but places the order offline. The e-commerce app wants to track all user activity under the same profile.
Data Ingestion Support
Following are the methods by which you can ingest data into MoEngage using multiple identifiers:
Data APIs
In MoEngage, data ingestion uses an ID as the identifier for creating or updating a user. For workspaces in MoEngage with Identity Resolution enabled, Data APIs (Track User, Create Event, Bulk Import) can be used to create or update users using a specific identifier such as a mobile number or Email-id as configured.
You can:
- Create users through Server-to-Server (S2S) APIs even when they do not have an ID (but have other identifiers).
- Create a user or track activities of a user when identifiers other than ID(for example, Email-id or phone number) are known.
Request Body
The following is a sample cURL request for a Bulk Import API (Transition API) consisting of the following payloads:
- User payload - attributes must contain at least one of the identifiers you have configured based on which users in MoEngage will be created, updated, or merged.
- Event payload - identifiers must be mentioned within the user_identifiers parameter as follows:
"user_identifiers":{ "moe_mobile":"{{Mobile_Number}}" }
Sample cURL Request
curl --location 'https://api-xx.moengage.com/v1/transition?app_id=O7NIHY0AT1K1FL8DR1J1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {{Authorization_Key}}' \
--data '{
"type": "transition",
"elements": [
{
"type": "customer",
"attributes": {
"moe_mobile": "{{Mobile_Number}}",
"first_name": "John"
}
},
{
"type": "event",
"user_identifiers": {
"moe_mobile": "{{Mobile_Number}}"
},
"actions": [
{
"action": "AddToCart",
"attributes": {
"product": "MacBook Air",
"Brand": "Apple"
}
}
]
}
]
}'
SDK
The following is a sample SDK cURL request consisting of Mobile and Email-id as the identifiers.
Sample cURL Request
curl --location 'endpoint' \
--header 'Content-Type: application/json' \
--data '{
"viewsInfo": [
{
"EVENT_ACTION": "EVENT_ACTION_USER_ATTRIBUTE",
"EVENT_ATTRS": "{\"USER_ATTRIBUTE_USER_EMAIL\": \"abc@gmail.com\"}",
"EVENT_L_TIME": "18:06:2024:12:23:48",
"EVENT_G_TIME": "1718629243210"
},
{
"EVENT_ACTION": "EVENT_ACTION_USER_ATTRIBUTE",
"EVENT_ATTRS": "{\"USER_ATTRIBUTE_USER_MOBILE\": \"8179321021\"}",
"EVENT_L_TIME": "18:06:2024:12:23:48",
"EVENT_G_TIME": "1718629243210"
}
],
"viewsCount": 3,
"identifiers": {}
}'
info |
Info Workspaces that enable multi-ID will no longer qualify for the “backend logout” mechanism. This is because the device ID acts as an identifier and leads to a merge of users as opposed to logging them out. |
Impact of Merging Users
MoEngage merges users with the same identifiers.
- Retained user - The user with the latest last seen.
- Merged user - The user whose information is merged into the retained user and then deleted from MoEngage.
After identifiers are configured in the MoEngage backend, user merging will start with newly ingested data. Existing data remains as is, and merging for existing users can be done through the backend script. For more information, refer to Handle Existing Duplicate Users.
If multiple identifiers are set for your workspace, MoEngage merges them if any one of them is the same across multiple users. There is no priority or sequence of merging. For example, your workspace is set with ID, mobile number, and Email-id as the three identifiers. User merging in that workspace happens based on any one of the three identifiers matching.
The following are the effects of user merging on various campaigns and channels:
On Data
- User attribute info - When merged, all user attribute information of the retained user is retained. If user attributes in merged users do not exist in retained users, those attributes are transferred to the retained user profile.
info |
Info Important contact information may be lost. For example, if 2 users are merged based on the same mobile number but have different Email-ids - the retained user’s information will be retained and the merged user’s Email-id information will be lost. |
- Device info - When merged, all devices are merged into the retained user, and no device information is lost.
- Events info - All events transferred to the merged user are transferred to the retained user.
- Other data callouts - Users cannot be unmerged after merging. Be careful when configuring identifiers for your workspace.
On Segment
- Active segments - When users are merged, the total number of users in active segments may decrease because users are merged into a single profile.
- Custom segments - Whenever the custom segment is updated, the user count may change.
info |
Info On enabling this feature in a workspace, the existing merged users (anonymous users merging into registered users or user merges done through Merge API) will be lost. Although these users may have executed the event based on which a segment is created, these users may not be added to the segment. |
On Campaign
- User merging may impact the overall reachability number. When merged, the contact details of the merged user will be lost, and hence, a campaign’s overall reachability may be reduced. This also impacts the overall campaign stats.
- Only Data APIs (TrackUser, CreateEvent, BulkImport API) support tracking users with multiple identifiers. Other APIs in MoEngage may still require ID at the moment.
- Campaign APIs or Business provider APIs that provide a callback into MoEngage with user IDs on sending a campaign may lead to user creation in MoEngage.
Reachability Impact
Channel | Reachability Attribute | Merge Outcome |
Hard bounce |
If multiple users getting merged have the same Email-id but conflicting hard bounce values, the outcome will be hard Bounce = true. If users getting merged have different Email-ids, the retained user’s email preferences will remain post-merge. |
|
Spam |
If multiple users getting merged have the same Email-id but with conflicting Spam statuses, the outcome will be Spam = true. If multiple users getting merged have different Email-ids, the retained user’s Spam status will be retained. |
|
Unsubscribe |
If multiple users getting merged have the same Email-id but with conflicting Spam statuses, the outcome will be Unsubscribe = true. If multiple users getting merged have different email values, the retained user’s Unsubscribe status will be retained. |
|
Subscription Categories | Subscription categories of retained users will be retained. | |
Push | Reachability push status code (iOS, Android, Web) |
When users are merged, all devices will be added to the retained user. Final Reachability will be derived based on all devices present with the retained user. |
SMS | Subscription status | Retained user’s mobile number preferences will be retained. |
Subscription status | Retained user’s mobile number preferences will be retained. |
Enable Multi-ID
Set Up Identifiers
library_add_check |
Prerequisites Contact your CSM to enable Identity Resolution for your workspace. |
You can configure a maximum of five identifiers to merge users in MoEngage. Based on your business requirements, specify the identifiers.
Handle Existing Duplicate Users
MoEngage executes a one-time script to merge the existing users in the workspace. The same identifiers configured for merging will be used to merge the existing users in the workspace.
You can generate a report after the script is executed, which will indicate every user merge action that is executed.
This section describes how you can use MoEngage Identity Resolution in Shopify.
library_add_check |
Prerequisites Ensure that Shopify is integrated with MoEngage and that the Email-id or mobile number is configured as the identifier for profile merge. |
Scenario 1: Email-id as the Identifier
A user uses their Email-id to register themselves on Shopify or purchase a product on your application.
When the user clicks Check Out:
- A cart token for that order is generated which regularly updates every time you make a new purchase.
- The user is no longer treated as anonymous after they provide their Email-id and other details during product purchase.
In this scenario, consider three instances when a user browses your application with different Email-ids as described below:
Instance 1:
Anonymous user U1 adds items to the cart, provides an Email-id as “Demo@gmail.com,” and converts to a registered user. A cart token (C1) is generated.
Instance 2:
Anonymous user U2 adds items to the cart, provides an Email-id as “Demo2@gmail.com,” and converts to a registered user. A cart token (C2) is generated.
Instance 3:
Anonymous user U3 adds items to the cart, provides an Email-id as "Demo@gmail.com,” and merges their profile with U1. A cart token (C3) is updated.
Because you have configured Email-id as the identifier, MoEngage identifies that User 1 and User 3 share the same Email-id and merge their profiles.
You can find all user events in the MoEngage dashboard at Segment > User Profile > Activity Info.
Scenario 2: Mobile number as the Identifier
A user registered with your website with their Email-id and provided their mobile number during the order transaction. The next time, the user visits your offline store and provides the same mobile number during product purchase.
- User1 registers online using a mobile number (M1) on Shopify and does some activity on the website.
- User2 visits an offline store and provides a mobile number (M1) during product purchase. Offline data is then uploaded to MoEngage using CSV imports. In such cases, MoEngage identifies that User 1 and User 2 share the same mobile number and merge their profiles.