FAQs

This article answers common questions about the installation, configuration, and use of the MoEngage Shopify integration—covering setup, identity, data sync, catalog, and event tracking.
 

Installation

To troubleshoot your account authentication, review the following question:

arrow_drop_down Do API keys work during authentication?

Newly generated API keys take up to 10 minutes to activate. Wait 10 minutes after you generate the key, and then retry authentication for the Shopify app. If the error persists, verify that you copied the full key with no leading or trailing spaces.

User Identity

To manage user profiles and identifiers, review the following questions:

arrow_drop_down How is the unique user identity setting used?

The unique user identifier setting determines whether the mobile number or email is used as the primary key to identify each user on the MoEngage dashboard. When the same user visits your store from multiple devices, MoEngage merges their activity into a single profile if the same unique identifier is present across all their devices and browsers.

arrow_drop_down How to decide which identifier to use as the unique customer identifier?

By default, Shopify uses email to identify users. The right choice depends on your business: use the identifier your customers most likely provide at checkout, and whichever aligns with how you identify users across your other systems.

If you already use MoEngage, select the same unique identifier you currently use. If neither email nor mobile number matches your current setup, contact the support team or your account executive for help.

arrow_drop_down Can I use an attribute other than mobile number or email as the unique customer identifier?

No, currently the setting is limited to mobile number or email. You must select one at the time of installation .

info

Selection is permanent after installation

The identifier you select at setup applies permanently to your workspace. If you change the identifier later, you must reinstall the integration, which affects all existing user profiles. Choose the identifier that will most reliably be present for your customers at checkout.

arrow_drop_down Can I use both email and mobile number as the unique customer identifier?

Not at the individual identifier setting level—you must select one at installation. However, when you enable Identity Resolution for your workspace, MoEngage recognizes the same user via multiple identifiers simultaneously. See the Identity Resolution section below for details.

arrow_drop_down What are the steps to set the mobile number as the unique identifier?

Before you select the mobile number as your UID, you must make the following changes to your Shopify store:

  • The Shopify checkout flow does not collect a mobile number by default. Enable this from your store checkout settings before installation.
  • The default user signup and login flow also does not collect the mobile number. Implement custom login and signup flows to capture the user mobile number at these touchpoints.

If these changes are not made before you go live, you will see a high volume of anonymous profiles because MoEngage cannot assign a UID to users who have not provided a mobile number.

arrow_drop_down Can I use a shipping mobile number as the unique identifier?

No. If you use a shipping mobile number as the UID, data corruption occurs. A single user can place multiple orders with different shipping mobile numbers—each creates a separate profile in MoEngage, which breaks the single customer view and causes attribution errors. 

For example, a user Bob places an order with shipping number SM1—MoEngage creates a profile with UID SM1. Bob then places another order with shipping number SM2—MoEngage creates a second profile with UID SM2. On Shopify, you see one user with two orders. On MoEngage, you see two users with one order each. Abandoned cart campaigns fire incorrectly because SM1 fulfills the "Add to Cart" criteria but not "Order Placed".

To avoid this miscommunication and data discrepancy, do not use the shipping mobile number as the UID.

arrow_drop_down Why are there multiple profiles for the same mobile number or email?

MoEngage merges profiles only when their UID values match. If the same user visits your store from multiple devices but does not provide the UID attribute at each touchpoint, MoEngage cannot merge those sessions and creates a separate profile for each.

For example, if email is set as UID and a user places two orders from different devices without entering their email during either checkout—by using only a mobile number—two separate profiles appear in MoEngage, both with the same mobile number but no matching UID to trigger a merge.

arrow_drop_down Why is email showing as the user ID when I selected Phone Number?

This happens when the mobile number is not present in the user Shopify profile at the time the track event occurs. When MoEngage cannot find the selected UID, it may fall back to the next available identifier. The most common cause is customers completing checkout without entering a phone number.

To resolve this consistently, contact your Customer Success Manager or raise a support ticket requesting Identity Resolution enablement. With Identity Resolution enabled, MoEngage tracks users across multiple identifiers simultaneously, which prevents this fallback behavior.

arrow_drop_down Why are anonymous profiles created with Cart Token as the UID?

When a user adds items to their cart without identified data (no email or phone number available), MoEngage uses the Shopify cart token as a temporary identifier to preserve abandoned cart event data.

If you see a high volume of cart-token profiles, Identity Resolution is the recommended solution. Once enabled, MoEngage can merge these anonymous profiles with the identified profile when the user provides an email or phone number. Contact your Customer Success Manager or raise a support ticket to request enablement.

Identity Resolution

To unify user profiles from multiple sources, review the following questions:

arrow_drop_down What is Identity Resolution?

Identity Resolution is a MoEngage feature that links user profiles from multiple sources into a single unified profile. Once it is enabled, MoEngage can recognize the same user using multiple identifiers—for example, both email and mobile number—rather than relying on a single value at every touchpoint. You can configure up to five identifiers per workspace.

Without Identity Resolution, each user is tracked by a single identifier. When that identifier is absent, MoEngage creates a separate anonymous profile. Identity Resolution prevents duplicate profiles, resolves identity gaps from guest checkouts, and ensures campaign triggers fire correctly across your full user base.

arrow_drop_down How to enable Identity Resolution?

Identity Resolution requires enablement by the MoEngage team before you can configure it. You cannot activate it from within the Shopify app or the MoEngage dashboard.

To request enablement, contact your Customer Success Manager or raise a support ticket. Once it is enabled, go to Settings > Data > Identity Resolution in your MoEngage dashboard to configure your identifiers and merge rules. 

arrow_drop_down Can I undo Identity Resolution after profiles merge?

No. Profile merges are irreversible—once two profiles merge, you cannot unmerge them.

warning

Review before you activate

Before you enable Identity Resolution, review your identifier configuration and merge rules carefully. You can request a merge report from the support team before activation—this documents every user merge action.

User and Order Backfill

To sync historical store data, review the following questions:

arrow_drop_down What data can sync?

The historical data sync brings two types of data into MoEngage:

  • User profiles: All registered users available in your Shopify store at the time you run the synchronization, regardless of when those users were created.
  • Order data: Orders placed during the date range you select, ingested as individual Shopify—Order Placed events. Each event carries the original order date from Shopify as its timestamp.
arrow_drop_down The data sync failed—what is the reason?

Two common causes occur:

  • UID not present on user profiles: If you selected mobile number as the UID and some existing user profiles on Shopify do not have a mobile number, those users and their order data cannot sync automatically. Contact our support team to arrange a manual upload.
  • The event retention period is shorter than the sync window: If your MoEngage event retention policy is shorter than the date range you try to sync, the sync is partial. You must increase the retention period for the Shopify—Order Placed event first, and then retry the sync.
warning

Set event retention before you sync beyond 60 days

Contact your Customer Success Manager or support to increase your event retention period before you start the sync. This cannot apply retroactively to a sync that has already run.

arrow_drop_down How long does sync take, and how to confirm success?

A standard sync for the last 60 days typically completes within 24 hours. An extended 2-year sync can take up to 48 hours.

To confirm the sync completed correctly: wait at least a few hours after you start, and then open a user profile in MoEngage for a user you know who placed an order within your sync window. Check that the Shopify—Order Placed event appears with the correct original order date.

arrow_drop_down How to run the sync successfully?

Check two things before you run the sync:

  • Make sure your MoEngage account does not have existing duplicate data. If user and event data are already present, the sync creates duplicates and causes data corruption.
  • Use a date range before your app install date. After installation, MoEngage automatically tracks new order data via webhooks and should already be available in your account.
arrow_drop_down What happens if I run the data synchronization and my event retention period is shorter than the synchronization window?

If you request a synchronization window that is longer than your workspace's event retention period, MoEngage syncs only the orders that fall within the retention window. MoEngage does not store orders outside that window, even if the system successfully retrieves them from Shopify.

warning

Set event retention before syncing beyond 60 days

Contact your Customer Success Manager or the MoEngage Support team to increase your event retention period before starting the synchronization. You cannot apply this change retroactively to a synchronization that has already run.

Catalog Sync

To synchronize your product catalog, review the following questions:

arrow_drop_down How does catalog sync work?

MoEngage fetches your full Shopify product catalog and syncs it into a new MoEngage catalog. This catalog is automatically created when you enable catalog sync in the app settings. The catalog is then available as a data source for product recommendation blocks, dynamic content in messages, and segmentation filters.

info

Enable Basic Recommendations

Catalog sync makes your product data available in MoEngage, but using it for personalization and product recommendations requires that you enable Basic Recommendations on your account.

arrow_drop_down How often does the catalog sync?

The catalog refreshes automatically once daily, between 8–10 AM IST.

info

Impact on time-sensitive campaigns

Price changes, flash sales, or inventory updates made in Shopify do not reflect in MoEngage until the next daily sync. For campaigns where accuracy is critical, schedule sends after the 8–10 AM IST sync window completes.

arrow_drop_down What product details sync?

Each product variation ID is treated as a unique product identifier. Synced product attributes are Variation ID, product ID, Product title, image_link, Vendor Name, SKU, Variation Title, Currency, Price, Quantity, Status, Description, created_at, and updated_at. Product metafields and custom fields from third-party Shopify apps are not included in the default sync.

arrow_drop_down Why are most products not appearing in MoEngage after sync?

This occurs when a catalog field contains inconsistent data types across products. For example, if the "variation_title" field has string values for some products and numeric values for others, MoEngage rejects the products with non-conforming field types. The sync completes without an error, but the products are silently excluded.

To diagnose this, compare the total product count in MoEngage against your active product count in Shopify. If significantly fewer products appear, review your Shopify product data for fields with mixed data types—particularly variation_title, SKU, and price. Correct the inconsistencies and re-trigger the sync.

arrow_drop_down How do I customize the catalog feed to add more attributes?

The product attributes are currently fixed. To request additional attributes, raise a feature request with your Customer Success Manager. You can also create a separate custom feed with the attributes you need and a sync frequency that suits your use case.

arrow_drop_down What are the limitations of automatic catalog synchronization?

The list of synchronized product attributes is fixed. Product links are not available in the automated product feed. Catalog metafields are also not synced by default.

Additionally, each catalog item's unique identifier is the variation ID and cannot be customized to use SKU or another product field.

Event Tracking

To monitor automated events, review the following questions:

arrow_drop_down How does automated event tracking work?

Based on your app settings, MoEngage automatically tracks the events you enabled. Events are captured through a combination of the MoEngage Web SDK (for browser-side actions such as Product Viewed and Add to Cart) and Shopify Webhooks (for server-side signals such as Order Placed and Order Fulfilled).

info

Which event version to use in campaigns

For any event tracked by both the Web SDK and a Shopify Webhook—such as Add to Cart and Checkout Started—always use the Webhook version when you build segments or trigger campaigns. Webhook events are received directly from Shopify's backend and are the more reliable signal. Using both versions of the same event in a single campaign causes conflicts.

arrow_drop_down Why does my Order Placed count not match Shopify?

Discrepancies often have several causes:

  • Count is lower in MoEngage: Shopify webhook delivery is not guaranteed. Webhook requests can occasionally be missed.
  • Count is higher in MoEngage: Shopify can send duplicate webhook events for the same order. MoEngage applies deduplication, but some duplicates may still be tracked.

Differences with other analytics tools are expected because each platform uses a different counting methodology. Shopify is the source of truth for MoEngage data.

arrow_drop_down Why does my Add to Cart count not match Shopify?

Shopify counts Add to Cart as the number of sessions that result in cart creation. MoEngage counts the number of times the Add to Cart event fired, which includes multiple adds within a single session. Use the MoEngage count for campaign triggers and the Shopify count for conversion funnel benchmarking.

arrow_drop_down Why is the Image URL missing from Shopify events?

Product URL and image URL are not included in Shopify webhook payloads, so they are absent from webhook-based events, including Shopify — Add to Cart, Shopify — Checkout Started, and Shopify — Order Placed.

To use product images or URLs in campaign personalization, use catalog enrichment at send time: set up your product catalog synchronization and reference catalog attributes in your message template. Alternatively, you can track these attributes directly by using custom SDK events.

arrow_drop_down Are fulfillment events tracked automatically?

Fulfillment events (Order Delivered, Out for Delivery) are available via the Shopify webhook setup but are not enabled by default. Enablement requires a configuration step by the MoEngage team. Contact your Customer Success Manager or raise a support ticket to request this.

arrow_drop_down Why is Product Viewed not firing on some pages?

The Product Viewed event is tracked only via the default Shopify product page template. If your store uses custom product page templates, the event does not get triggered on those pages by default. Additional implementation is required to extend track to non-default templates.

arrow_drop_down Are Shopify customer metafields tracked in events or user profiles?

Shopify customer metafields do not sync to user profiles and do not appear in event attributes by default. To pass metafield data to MoEngage, configure the metafields in Shopify:

  • Public storefront access: If the metafield has public storefront access enabled, read it server-side in Shopify Liquid and pass it to MoEngage by using a user attribute call in your theme.
  • No storefront access: If a third-party app creates the metafield, a server-side integration is required. Subscribe to the Shopify customers/update webhook, read the metafield value by using the Shopify Admin API, and then call the MoEngage Data API to update the user attribute.
info

For implementation details

See the "Shopify customer metafields" section in the Events and User Data Tracking article for step-by-step guidance on both paths, and along with a liquid code example. 

arrow_drop_down Are events tracked against my profile?

For pre-checkout events, add the MoEngage Chrome plugin to your browser, and then perform the events again. If the plugin shows the events as tracked, then the track works—check that you look at the correct user profile.

For checkout and post-checkout events, check that the events are enabled for automated track in your app settings. Verify whether the event is tracked against a different profile by filtering on event attributes with your order ID, email, or mobile number.

arrow_drop_down Why are none of the events tracked for my store?

First, use the MoEngage Chrome plugin to check whether the MoEngage SDK loads on your store. If the SDK is not detected:

  • Go to your Shopify admin, open the MoEngage app embed settings, and then un-save and re-save the app embed block. This re-triggers SDK injection.
  • If the SDK still does not load, check your browser console for JavaScript errors on the page.

If the SDK is loading correctly, events are still not flowing, perform the following steps:

  1. Open your event tracking settings in the MoEngage Shopify app.
  2. Uncheck a few events and save, and then re-check all events and save again. 
  3. Wait 5 minutes, and then perform the events in your store.

Link Multiple Stores to a Single MoEngage Account

To understand the setup and limitations of linking multiple storefronts, review the following question:

arrow_drop_down Can I connect more than one Shopify store to a single MoEngage account?

Yes, although MoEngage does not recommend this approach. If you want to link multiple stores, use the same authentication keys during installation across your different stores to link them to the same MoEngage account.

Review the following implications before you proceed:

  • Web Push
    • The same user is prompted for separate web push permission on each store.
    • Users who subscribe to web push on multiple stores receive duplicate notifications if campaigns are not scoped to a specific store.
  • OSM (On-site Messaging)
    • Specify a target URL for each campaign. Without it, all stores display the same campaign including to users who visit multiple stores.
  • Data and Profiles
    • Use the same user identifier across all stores to maintain a single customer view. Different identifiers per store result in multiple profiles for the same user.
  • Segmentation
    • Use either URL or store ID filters in the event attributes to identify the events for each store to isolate them when you build segments.

Previous

Next

Was this article helpful?
0 out of 1 found this helpful

How can we improve this article?