Skip to main content

Introduction

The mParticle integration does not currently support Unified Identity (Identity Resolution) or Portfolio.
With the MoEngage × mParticle integration, all your user and event data that you are sending to mParticle will be sent to MoEngage via our server to server APIs.

Integration

  • Ensure that you have access to your MoEngage settings
  • Ensure that you have access to your mParticle dashboard.

Scope

IntegrationDetails
Server to server APIAlso called cloud mode. The data is sent directly from mParticle servers to MoEngage servers. Note that you need integrate with MoEngage SDKs for messaging needs on Push and inApps.
mParticle bundled kitAlso called device mode. For more information, refer here.

Server to server integration

mParticle forwards all data as events to MoEngage. MoEngage system then creates events or user attributes based on the event type and user identities.
ImportantServer-to-server integration does not support features such as In-Apps, Cards, or Push notifications. You need integrate with MoEngage SDKs if you are using these channels.

Supported data types

TypeDetails
mParticle input sourcesAll mParticle input sources are supported-
  • Android
  • iOS
  • Custom Feeds
  • Web
User IdentitiesMoEngage allows you to export all MoEngage user attributes. For user identities, only these are supported-
  • Customer ID
  • Email Address
  • MPID
By default, the integration works on Customer ID. If you want to use any other identity (from the ones mentioned above), please reach out to your MoEngage CSM or MoEngage support team.
Event typesThe following event types are supported-
  • Commerce Events
  • Custom/App Events
  • Push Subscription
  • User Attribute Change
  • User Identity Change
System Notification TypesThe following types are supported-
  • CCPA Consent State
  • GDPR Consent State

Steps

Step 1. Setup MoEngage as output on mParticle

On mParticle dashboard,
  1. Navigate to Setup > Output
  2. Go to the Event tab. Click Add Event Output on top right.
  3. Search for MoEngage.
  4. In the pop up, provide the details of your MoEngage app. Screenshot_2022-10-20_at_1.13.18_PM.png
FieldDetails
Configuration nameYou can give any name to your configuration - eg. “MoEngage Prod”
App IDThe Workspace ID of your MoEngage account is available at Settings - > Account -> APIs ->Workspace ID. The Data API ID and the Workspace ID of your MoEngage account are the same.
Secret keySecret key is the Data API Key. The Data API key of your MoEngage account is available at **Settings - > Account -> APIs -> API keys **>Data API settings.

Step 2: Setup a MoEngage connection

On your mParticle dashboard,
  1. Navigate to Connections >> Connect.
  2. Select your desired input stream.
    Input Stream
  3. Select your MoEngage account as Output. This is the one that you had configured in the Step 1.
  4. Define the forwarding rules as per your requirement. Read more about data forwarding in mparticle here. Screenshot_2022-10-20_at_1.19.49_PM.png
Once activated, you would start seeing your users and events on MoEngage dashboard.

Data mapping

Data mapping

mParticle data typeMoEngage data typeDetails
Reserved user attributesStandard MoEngage attributesThe reserved mParticle attributes are mapped to the standard MoEngage attributes.
User identitiesStandard MoEngage attributesThe user identities in mParticle are mapped to the standard MoEngage attributes.
Other user attributesCustom user attributeAny user attributes passed to mParticle that fall outside of its reserved user attribute keys are logged in MoEngage as a custom attribute. User attributes support string, numerical, boolean, date, arrays and even objects. Note that object support is not supported out of the box. Please reach out to your MoEngage CSM or our support team to get it enabled.
Custom eventCustom eventmParticle custom events are recognised by MoEngage as a custom event. Event attributes are forwarded as custom event attributes. Event attributes passed to MoEngage support string, numeric, boolean, and date objects.
Purchase commerce eventCustom eventPurchase commerce events are mapped to custom events in MoEngage.
  • Action name of purchase event will be the event name.
  • All attributes specific to the purchase event are stored as event attributes.
  • Other event attributes such as products, transaction details, total amount, etc are mapped to their respective attributes.
  • Refer to the Commerce Event mapping section below for more information.
  • Please get in touch with your Customer Support Manager to understand how to add support for these events.
Other commerce eventsCustom eventOther commerce events are mapped to custom events in MoEngage.
  • The action name of the commerce event will be the event name.
  • All attributes specific to these events are stored as event attributes.
  • Refer to the Commerce Event mapping section below for more information.
  • Please get in touch with your Customer Support Manager to understand how to add support for these events.
Other mParticle eventsNot supportedEvents like “session_start”, “session_end”, “custom_event”, “screen_view”, “error”, “privacy_setting_change”, “push_subscription”, “application_state_transition”, “push_message_receipt”, “promotion_action”, “impression”, “attribution” are currently not supported.
User update related events (user_attribute_change)User attributes are updatedEach request on mParticle is triggered by an event. When a user attribute is changed, such as updating an email address:
  • If the change is tracked by SDKs, it is passed to MoEngage as “user_attribute_change” event. And MoEngage updates the user attributes on its side.

Portfolio Support

This feature allows you to route events from a single mParticle source to specific projects within your MoEngage workspace using attribute mapping.

Configuration Requirements

To route events to specific projects, you must configure the following in your mParticle workspace:
  • Map the project identifier: When forwarding events to MoEngage, map your source property (for example, brand_name or app_id) to the MoEngage event attribute moe_project_name.
  • Ensure an exact match: The value in your source field must exactly match the project name configured in your MoEngage portfolio. Matching is case-sensitive.

Event Ingestion Rules

MoEngage handles event ingestion based on the following logic:
  • Successful routing: If the value in moe_project_name matches a configured project name, MoEngage ingests the event at that specific project level.
  • Fallback behavior: If the moe_project_name attribute is missing, blank, or does not exactly match a configured project name, MoEngage ingests the event at the global portfolio level. Note: Data ingested at the portfolio level is not associated with any specific project. This data is unusable for project-specific analysis, segmentation, or campaign targeting.
For more information, refer to Portfolio and Portfolio: Data Ingestion and Management.
LimitationsProject-level routing for mParticle events is available. The following features are managed at the global portfolio level:
  • User sync: Not supported at the project level. Users are tracked at the global portfolio level by default during outbound user syncs.
  • Cohort sync: Not supported at the project level.

Commerce Events mapping

  • MoEngage does not support expanding of Commerce Events.
  • The action name of product action events will be the event name in MoEngage.
  • Please get in touch with your Customer Support Manager to understand how to add support for these events for your Workspace.

Product-based

Product-based commerce events measure all interactions with a product that can lead up to a purchase. Product events can include:
  • Add to cart
  • Remove from cart
  • Checkout
  • Checkout option
  • Click
  • View Detail
  • Purchase
  • Refund
  • Add to wishlist
  • Remove from wishlist

Common Event Attributes

Commerce Event FieldMoEngage Event AttributeData TypeRequiredDescription
ProductAction.TransactionIdTransactionIdstringNoThe ID associated with the given transaction.
ProductAction.Products[]Products[]object-arrayNoThe list of products.
ProductAction.Products[].NameProducts[].NamestringNoThe name associated with the given product.
ProductAction.Products[].CategoryProducts[].CategorystringNoThe category associated with the given product.
ProductAction.Products[].BrandProducts[].BrandstringNoThe brand associated with the given product.
ProductAction.Products[].TotalProductAmountProducts[].TotalProductAmountstringNoThe total amount associated with the given product for the given transaction.
ProductAction.Products[].Attributes["myProductAttribute"]Products[].Attributes["myProductAttribute"]stringNoA custom attribute associated with the given product.
ProductAction.Attributes["myEventAttribute"]myEventAttributeanyNoCustom attributes of the event.

Purchase Event

Commerce Event FieldMoEngage Event AttributeData TypeRequiredDescription
CurrencyCodecurrencystringNoCurrency Code.
ProductAction.Products[]Products[]object-arrayNoThe list of products.
ProductAction.Products[].IdProducts[].IdstringNoThe ID associated with the given product.
ProductAction.Products[].PriceProducts[].PricedoubleNoThe price associated with 1 unit of the given product.
ProductAction.Products[].QuantityProducts[].QuantityintNoThe quantity associated with the given product.
ProductAction.TotalAmountTotal AmountstringNoThe total amount associated with the given transaction.
ProductAction.ShippingAmountShipping AmountstringNoThe shipping amount associated with the given transaction.
ProductAction.TaxAmountTax AmountstringNoThe tax amount associated with the given transaction.

Non-Purchase Events

Commerce Event FieldMoEngage Event AttributeData TypeRequiredDescription
ProductAction.Products[].IdProducts[].IdstringNoThe ID associated with the given product.
ProductAction.Products[].PriceProducts[].PricedoubleNoThe price associated with 1 unit of the given product.
ProductAction.Products[].QuantityProducts[].QuantityintNoThe quantity associated with the given product.

Promotion-based

Commerce Event FieldMoEngage Event AttributeData TypeRequiredDescription
PromotionAction.Promotions[].IdPromotions[].IdstringNoThe ID associated with the given promotion.
PromotionAction.Promotions[].NamePromotions[].NamestringNoThe name associated with the given promotion.
PromotionAction.Promotions[].CreativePromotions[].CreativestringNoThe creative is associated with the given promotion.
PromotionAction.Promotions[].PositionPromotions[].PositionstringNoThe position associated with the given promotion.
PromotionAction.Attributes["myEventAttribute"]myEventAttributeanyNoCustom attributes of the event.

Impression-based

Commerce Event FieldMoEngage Event AttributeData TypeRequired
ProductImpressions[].ProductImpressionListImpressions[]["product impression list"]stringNo
ProductImpressions[].Products[].IdProducts[].IdstringNo
ProductImpressions[].Products[].NameProducts[].NamestringNo
ProductImpressions[].Products[].CategoryProducts[].CategorystringNo
ProductImpressions[].Products[].BrandProducts[].BrandstringNo
ProductImpressions[].Products[].PriceProducts[].PricestringNo
ProductImpressions[].Products[].QuantityProducts[].QuantitystringNo
ProductImpressions[].Products[].TotalProductAmountProducts[].TotalProductAmountstringNo
ProductImpressions[].Products[].Attributes["myProductAttribute"]Products[]["myProductAttribute"]anyNo
ProductImpressions[].Attributes["myEventAttribute"]myEventAttributeanyNo

User identity mapping

The following user identities are supported-
  • Customer ID
  • Email Address
  • MPID (mParticle ID)
By default, the integration works on Customer ID. If you want to use any other identity (from the above), please reach out to your MoEngage CSM or MoEngage support team.

Rate Limits

To maintain platform stability, MoEngage limits ingestion of mParticle data to a maximum of 500 requests per second (RPS) per workspace. If your workspace exceeds this limit, MoEngage returns an HTTP 429 (Too Many Requests) status code. Refer to mParticle’s default retry policy to understand how rate limiting affects your data flow. For more information, see the mParticle documentation. Retry Exhaustion: If mParticle exhausts all retry attempts for a batch of data, you must contact the mParticle Support Team to replay the failed requests.

Frequently Asked Questions

Each request on mParticle is triggered by an event. When a user attribute is changed, such as updating an email address, mParticle triggers an event.
  • If the change is tracked by SDKs, it is passed as “user_attribute_change” event to any output such as MoEngage. And MoEngage then updates the user attributes.
  • If the user attributes are updated by a separate input feed (custom feed, partner feed, calculated attribute) on mParticle, these are not forwarded to any output such as MoEngage.
    • In such cases, the new value is only passed to an output like MoEngage in the next event triggered by the user. If there is no future action, the updated values are not passed to MoEngage.
    • It is generally recommended to create a separate “user attribute updated” event (dummy event) that only sends the specific user attribute(s) that have to been updated in MoEngage.
MoEngage accepts events from any timeframe. So, you can resend historical data to mParticle and it will flow into MoEngage automatically.If you already have the data on mParticle and want to forward it to MoEngage, mParticle has a way to replay the data. Please reach out to your mParticle POC to replay the historic data.
MoEngage integration only supports specific type of events. Refer to this section of the document to validate if the specific events are supported with the integration.mParticle sends all the events to MoEngage in real time. However, we support a through put rate of 15k RPM (requests per minute). If your rate of sending is higher than the threshold limit, some of the events might be dropped.Recommendations -Short term- mParticle has a way to replay the data that was dropped by MoEngage due to higher throughput rate or system downtime. Please reach out to your mParticle POC to replay the historic data.Long term- It is recommended to control the rate (max limit is 15k RPM) at which you are sending data to mParticle.
The format or naming change can be done directly on the mParticle platform using mParticle Rules. You can directly work with your mParticle POC to enable and define rules for any attribute.
No, Data Exports is primarily built to export your Events in near real-time and user attributes in MoEngage are updated asynchronously so it is currently not possible to guarantee the latest values of user attributes in the exports.