MoEngage Flows is a series of Cross-channel (across the channels viz. Email, Push, SMS etc.) Lifecycle campaigns to be sent to your customers on the basis of their actions/in-actions on your app/website.

Flows have been divided into four key pieces:

  • Entry Condition
  • Actions
  • Conditions
  • Flow Control 

Entry Condition 

Entry trigger conditions can be configured by clicking on the Add Entry Condition block.


An entry trigger condition determines who will enter into the MoEngage flow. All the users who satisfy the entry condition will enter the flow. In Entry condition, you can segment the users basis user events/properties condition.

For the example below, users who have "Last known city" as Bangalore and have not executed Made Purchase in past 30 days, enter them into the Flow, 2 hours after they open the App again.


Note: Segments are refreshed at regular intervals. Hence a user may take up-to 45 to 60 mins to be correctly evaluated under segment condition.

Users can enter the Flow via two means:

On event trigger

The trigger can be of two types

1. With the Primary IF Condition combined with secondary AND condition

Such triggers restrict the user entry until all the conditions are fulfilled by the user within the configured time period. As seen below, the user will enter only when they have done the app opened event and have also not done a Made Purchase event that is tracked for the user. 


2.   With the Primary IF Condition only

Such triggers are often used by marketers to speed up the user entries into the flow. Flows with such triggers are designed to enter the user in the flow within 60seconds of them fulfilling the Primary IF condition. 

While configuring the entry condition, the option to enter users immediately into the flow is shown only when the Primary IF Condition is configured, the option is disabled when both Primary and Secondary conditions are configured.  

This "Immediate Entry" feature is currently in closed beta.
Reach out to to get your hands on this.


At a fixed time

With this users can enter into the Flow

  1. One-time - As soon you publish a flow or at a scheduled time 

It will help marketers to target users in bulk e.g. Bringing all the 30-days dormant users once inside the Flow and follow-up with them till the time they become active


    2. Periodically 

It will help marketers to target users in bulk on a regular basis e.g. Targeting 7-days dormant users regularly and attempting to re-activate them.



Currently, the supported actions are: 

  1. Send Push
  2. Send Email
  3. Send Connector
  4. Send SMS
  5. Show Onsite Message
  6. Show Mobile in-app 
  7. Sync Facebook Audience



Send Push

When a user comes to this stage, a push will be sent to him/her if they have active devices present against them. Marketers can configure messages for Andriod, iOS, and Web devices simultaneously. 

Marketers can set the new push message (personalize-able on User attributes) or import the message from an existing campaign using the campaign id of that campaign.

Send Email

When a user comes to this stage, an email will be sent to him/her if they have an active email subscription present against him/her.

Marketers can create the email from scratch or use an existing email template.

Send Connector

If used in Flow, when a user comes to this stage, a connector request will be sent as per-user data to the chosen Connector End-point.  You can use connectors to do a lot of tasks as mentioned here.

You can personalize all the messages using Personalization as mentioned here.

Send SMS

If used in Flow, when a user comes to this stage, an SMS will be sent to the user as per the SMS settings.  Before planning to use SMS in your Flows, ensure that you have configured SMS Settings as mentioned here.

You can personalize your SMS message using Personalization as mentioned here.

Show Mobile In-App

When a user comes to this stage, they will become eligible to receive a mobile in-app message when they satisfy the trigger condition within the configured schedule for the in-app message. 

You can personalize the in-app message using user attribute, flow user event's attribute, in-app trigger event attribute, and flow entry event attribute. 

Show Onsite message

When used in the flow, an onsite message will be shown to the user that reaches this stage of the flow when they satisfy the trigger conditions. 


Conditions are evaluated when users arrive at the state. Conditions are always evaluated within a certain time range starting from the time when the user moves to this stage from the previous stage to the time set by you in condition.


Has done event condition

Evaluates whether the user has done a certain event/action (or a combination of them) basis which the marketer may direct them to different treatments/paths in the Flow. 

Say your user came to Event Condition evaluation at time T (after viewing a Product page) and you want to track whether your user has Added the product to the cart and made the purchase within 2 hours. The system will check for next two hours if the condition is fulfilled or not.  





If yes, it will immediately move to the Yes branch. If the condition is not fulfilled at the end of two hours, it will move to No branch. Marketers can accordingly decide the subsequent Flow paths. Screen_Shot_2017-08-21_at_12.02.21_PM.png

In the example above, the evaluation was being done since user reached the Event Condition evaluation. For certain use cases, marketers might want to check whether some actions have been taken since their users have entered the journey. Marketers can use the option accordingly.

The example below will check if the actions are taken in the past since the user entered the journey. The system will further wait for 2 hours if the condition is not being satisfied. After two hours, it will move to Yes/No branch as per the current status.


Check Attribute condition

Evaluates whether a specific user attribute (or a combination of them) is set as the required value. Can be used when marketers set tags/user property when the user fulfills a certain condition in their backend systems.

Wait time period will depend on :

  1. If it is an existing attribute for which value is being checked
  2. If it is a new attribute that is being added to user profile basis action on sent communication

For case 1, it can be kept minimal while for case 2, it should be checked within the expected time in which the value is being set.


Campaign Conditions


  1. Has received push notification (Valid only for Android) - Checks whether the user has received the push notification. The condition is synonymous with Impression in Android Push.
  2. Has dismissed push notification (Valid only for Android) - Checks whether the user has dismissed the received push notification.
  3. Has clicked push notification - Checks whether the user has clicked the received push notification.



  1. Has opened email message - Checks whether the user has opened the email message sent to him/her
  2. Has clicked email message - Checks whether the user has clicked any link in the email message sent to him/her
  3. Has unsubscribed email - Checks whether the targeted user has unsubscribed from the email communication
  4. On hard bounce - Checks, whether the email sent to the targeted user, was hard-bounced
  5. On email drop - Checks whether the targeted email for the user was not sent because of previous hard bounces/ marked spam/complaints
  6. On email spam - Checks, whether the email sent to the targeted user, was marked-as-spam




Flow Control

Control blocks allow marketers to control the user movement inside the Flow.


Add Wait time

The system waits for the configured time before taking the succeeding action. 


Note: The system does not evaluate any condition during this time nor take any action. It is generally used to delay the communication by days or hours once the user becomes eligible to receive any communication. Using it before event condition evaluation might be logically incorrect as the system will not evaluate the user events during that time.

Go To

Using Go To, you can send your users to any existing stage in the same Flow.


A/B split

With an A/B split, you can perform an A/B test with up to 5 branch variations at any stage of the flow to identify the best branch. Read more about it here


Intelligent path optimizer

Using an intelligent path optimizer, you can split the flow into more than 1 path and let sherpa optimize the user distribution in favor of the best-performing branch. Read more about it here


Was this article helpful?
12 out of 14 found this helpful