MoEngage Streams

Introduction

MoEngage now allows you to forward events present in MoEngage like user actions, campaign interaction events etc. to ​your own API endpoint in near real time via our product - Streams.

With MoEngage Streams, you can configure your own API endpoint, define the events that you want to be forwarded and once done, see a stream of data flowing to your system which you can then utilize to enrich your data warehouses and recommendation systems etc.


Popular Use-cases for MoEngage Streams

A few popular use-cases for Streams are as below - 

  • Enrich central data warehouse with MoEngage events like Notification Clicked Android, Email Clicked, SMS Clicked etc.
  • Forward the Conversion Events like Purchase, Song Played, Bill Payment Done etc. from MoEngage to external Analytics tool.
  • Feed campaign interaction events from MoEngage to your own recommendation system.
  • Export the notification interaction data from MoEngage to our ML system for optimizing the performance of our algorithms.
  • Send all user events present in MoEngage to an external own data lake.

Enabling Streams for your account

MoEngage Streams is currently in Beta. Please reach out to your Customer Success Manager to get this enabled for your account. 

Setting up Streams

Once enabled, to configure Streams for your MoEngage account, please share the below details with MoEngage Team - 

  1. API Endpoint to send the data. It could be something like https://api.example.com/events
  2. List of events that you need to be sent to this API endpoint.
  3. List of User Attributes and Device Attributes that need to be sent to the API endpoint with each event.
  4. If you need all campaign interaction events, we will export such events as mentioned in the next section.

Campaign Interaction Events

Below is a list of Campaign Interaction Events that MoEngage generates and which you will often need to be sent to your API endpoint -

Event Name

event_code

event_channel

Email Sent

MOE_EMAIL_SENT

Email

Email Deferred

MOE_EMAIL_DEFERRED

Email

Email Delivered

MOE_EMAIL_DELIVERED

Email

Email Dropped

MOE_EMAIL_DROP

Email

Email Bounced

MOE_EMAIL_HARD_BOUNCE

Email

Email Soft Bounced

MOE_EMAIL_SOFT_BOUNCE

Email

Email Opened

MOE_EMAIL_OPEN

Email

Email Clicked

MOE_EMAIL_CLICK

Email

Email Unsubscribed

MOE_EMAIL_UNSUBSCRIBE

Email

Email Spam Complained

MOE_EMAIL_SPAM

Email

SMS Sent

SMS_SENT

SMS

SMS Delivered

SMS_DELIVERED

SMS

Notification Received Android

NOTIFICATION_RECEIVED_MOE

Push

Notification Clicked Android

NOTIFICATION_CLICKED_MOE

Push

Notification Swiped Android

NOTIFICATION_CLEARED_MOE

Push

Notification Sent iOS

n_i_s

Push

Notification Clicked iOS

NOTIFICATION_CLICKED_IOS_MOE

Push

Notification Received Web

NOTIFICATION_RECEIVED_WEB_MOE

Push

Notification Clicked Web

NOTIFICATION_CLICKED_WEB_MOE

Push

 

API Request Format

When Streams sends an event to your API endpoint, the request format will be like below - 

Headers:

Content-Type : application/json

Request Body:

 {
"app_name": "App Name",
"source": "MOENGAGE",
"moe_request_id": "moengage unique request id for each request",
"events": [
{
"event_name": "Notification Received Android",
"event_code": "NOTIFICATION_RECEIVED_MOE",
"event_uuid": "moengage unique id for each event",
"event_time": 1580967474,
"event_type": "CAMPAIGN_EVENT",
"event_source": "MOENGAGE",
"push_id": "recipient device’s push token",
"uid": "<MoEngage customer_id>",
"event_attributes": {
"campaign_id": "353df897hkbh67658",
"campaign_name": "Name of the Campaign",
"campaign_type": "Smart Trigger",
"campaign_channel": "Push"
},
"user_attributes": {
"moengage_user_id": "moe_internal_user_id",
"user_attr_1": "user_attr_val1",
"user_attr_2": "user_attr_val2"
},
"device_attributes": {
"moengage_device_id": "moe_internal_device_id",
"device_attr_1": "device_attr_val1",
"device_attr_2": "device_attr_val2"
}
},
{
"event_name": "Email Sent",
"event_code": "MOE_EMAIL_SENT",
"event_uuid": "moengage unique id for each event",
"event_time": 1580967474,
"event_type": "CAMPAIGN_EVENT",
"event_source": "MOENGAGE",
"email_id": "recipient email_id",
"uid": "<MoEngage customer_id>",
"event_attributes": {
"campaign_id": "353df897hkbh67658",
"campaign_name": "Name of the Campaign",
"campaign_type": "General",
"campaign_channel": "Email"
},
"user_attributes": {
"moengage_user_id": "moe_internal_user_id",
"user_attr_1": "user_attr_val1",
"user_attr_2": "user_attr_val2"
},
"device_attributes": {
"moengage_device_id": "moe_internal_device_id",
"device_attr_1": "device_attr_val1",
"device_attr_2": "device_attr_val2"
}
},
{
"event_name": "SMS Delivered",
"event_code": "SMS_DELIVERED",
"event_uuid": "moengage unique id for each event",
"event_time": 1580967474,
"event_type": "CAMPAIGN_EVENT",
"event_source": "MOENGAGE",
"mobile_number": "recipient mobile number",
"uid": "<MoEngage customer_id>",
"event_attributes": {
"campaign_id": "353df897hkbh67658",
"campaign_name": "Name of the Campaign",
"campaign_type": "Smart Trigger",
"campaign_channel": "SMS"
},
"user_attributes": {
"moengage_user_id": "moe_internal_user_id",
"user_attr_1": "user_attr_val1",
"user_attr_2": "user_attr_val2"
},
"device_attributes": {
"moengage_device_id": "moe_internal_device_id",
"device_attr_1": "device_attr_val1",
"device_attr_2": "device_attr_val2"
}
}
]
}

 

Streams Data Glossary

The keys in the API request and their description is as below - 

Key Description
app_name Your app name in MoEngage
source Source = MoEngage to identify the requests coming from MoEngage
event_name Display Name of event. This is also the name for the event that you will see on the MoEngage dashboard.
event_code Event code as present in MoEngage system. This is not visible on MoEngage dashboard but is the raw event name that we save in MoEngage database.
event_uuid This is the unique event identifier for each event added by MoEngage. You can use this for de-duplication
event_time Time of event in UTC, format - epoch time in seconds. This is the time when the event actually happened
event_type CAMPAIGN_EVENT or USER_ACTION_EVENT to differentiate between campaign event and user action
event_source This will have value = MoEngage for you to identify that MoEngage is the source of these events
push_id
Push token of the device to which the push notification was sent. This will only be available for push related events
email_id
Email Id to which the email was sent. This will only be available for email related events.
mobile_number
Mobile Number to which the sms was sent. This will only be available for sms related events.
uid
MoEngage customer_id to uniquely identify a user in MoEngage
campaign_name
Campaign Name in MoEngage
campaign_id
Campaign Id in MoEngage
event_attributes
Additional event attributes, dictionary
campaign_channel
Campaign Type - Push / Email / SMS
user_attributes
Additional user attributes, dictionary
moengage_user_id
Moengage internal user id
device_attributes
Additional device attributes, dictionary

 

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