A typical journey of a user visiting a Shopify store transitions from an anonymous visitor to a known user and finally to a registered customer. This article describes how users transition through these stages, how their actions reflect in MoEngage user profiles, and the steps to take when duplicate profiles appear.
Shopify User Tracking
A user visiting your store is tracked by two primary sources:
- MoEngage Web SDK: Integrated with your store as part of the initial setup.
- Webhooks: Real-time event notifications sent directly from Shopify to MoEngage after the integration is complete.
| info |
Information When both sources track the same event, use the webhook version for segmentation and campaign creation. Webhook events are received directly from Shopify and provide the most reliable signal for campaign logic |
User Profile Attribute Capture
Profile attributes such as first name, last name, and Shopify ID are tracked when a user creates an account. For anonymous users, these attributes are collected during checkout along with the checkout updated event.
Email addresses and mobile numbers are captured when a user submits an on-site messaging form, logs in, registers, or provides contact details during checkout. MoEngage uses the captured value as the unique identifier (UID) to recognize and merge profiles.
| warning |
UID selection is permanent The identifier you choose during integration (email or mobile number) cannot be changed after setup without significant consequences for your entire user database. Verify which identifier is most reliably present at checkout before you complete the installation. |
Profile Merge
Profile merge occurs when MoEngage finds two profiles with the same UID value. This process ensures user activity remains under a single profile when a customer visits from a new device.
In Shopify integrations, MoEngage uses the Cart token as a common identifier to merge SDK and Webhook events. This token is generated when the first item is added to a cart and refreshed each time the cart is emptied.
Duplicate Profile Information
You might notice more user profiles in MoEngage than visitors reported in Shopify analytics. To troubleshoot profile count discrepancies, review the following scenarios:
- Buy Now Button usage: If your site allows checkout without adding a product to the cart, SDK and webhook events cannot merge, which creates extra profiles.
- Missing UID at checkout: If a user places an order from a new device without entering the UID attribute, MoEngage creates a separate profile that cannot be merged automatically.
To prevent these tracking discrepancies from creating persistent duplicate records, you can implement MoEngage's Identity Resolution to automatically reconcile and link user profiles.
Identity Resolution
If your store has persistent duplicate profile issues, enable Identity Resolution. Identity Resolution is a MoEngage feature that links user profiles from multiple sources into a single unified profile. This allows MoEngage to recognize a user using more than one identifier, such as both email and mobile number.
When you activate Identity Resolution, a one-time merge runs on all existing duplicate profiles based on your configured identifiers. Existing users merge over 48 hours, while new users merge immediately.
| warning |
Profile merges are irreversible After two profiles merge, they cannot be unmerged. Review your identifier configuration and merge rules carefully before you activate this feature. |
Identity Resolution Enablement
To enable Identity Resolution for your Shopify workspace, perform the following steps:
- Contact your Customer Success Manager to request enablement for your workspace.
- After enabled, go to Settings > Data > Identity Resolution in your MoEngage dashboard to configure identifiers and merge rules.
For more information on configuration steps, refer to the Unified Identity (Identity Resolution).
Webhook Profile Resolution Logic
MoEngage creates a new profile for a webhook event only when the system cannot resolve the event to an existing user. This ensures that every event is captured and that campaigns depending on those events trigger correctly. If you observe a high volume of new profiles from webhook events, enabling Identity Resolution is the most effective solution.