Overview
You would often want to split your users based on certain conditions within a flow to personalize the experience or split your users randomly to experiment. MoEngage offers the following ways to split your users:
Way to Split | Description |
---|---|
Check User Attribute | This stage allows you to split your users based on who meets the defined user properties check. |
Has Done Event | This stage allows you to split your users based on who meets the defined actions-based check. |
Conditional Split | This stage allows you to divide users based on a combination of their user properties and actions, resulting in a maximum of 25 different paths. |
Campaign-Based Conditions | These are custom stages that are displayed after you add Action stages in the flow. This allows you to split users based on conditions related to the previously-added campaigns. |
A/B Split | This stage allows you to split users randomly based on the defined allocation percentage and experiment on them. |
Intelligent Path Optimizer | This stage allows you to split users randomly using the Sherpa AI intelligence of MoEngage and help you experiment on them. |
Use Cases
Split Users Based on Conditions
The following are the use cases for splitting users on conditions:
- Want to split your users based on their preferred languages? Add a Conditional Split to help you achieve the same.
- Want to exit users who have done a specific action? Add a Has Done Event stage to help you achieve the same.
- Want to exit users whose user property meets a specific value? Add a Check User Attribute stage to help you achieve the same.
- Want to split users based on whether the last email was sent to the users? Add an On Send Email Message stage to help you achieve the same.
Split Users Randomly
The following is the use case for splitting users randomly:
- Want to split users randomly to find the channel type that works for my user base? Add an A/B split stage to help you achieve the same.
info |
Information When you want to divide your users based on the Entry Criteria, add a Conditional Split or a Has Done Event Stage and select the option under the Flow Entry Events Category. When this option is selected, MoEngage considers the event that allowed the user to enter the flow while deciding the path for the user. |
Add Condition Stages
Perform the following steps to add condition stages:
- On the MoEngage Canvas, click +.
- In the Add stage dialog box, do one of the following:
- In the search bar, search for the stage directly. From the search result, click the option you want to add. For example, if you search for "conditional", the Conditional Split option is displayed.
- On the All stages tab:
- Under Conditions & controls, click the category to explore the condition stages you can add:
Category Stages Available AI TOOLS Intelligent path optimizer USER CONDITIONS - Check User Attribute
- Has done event
SPLIT USER PATH - Conditional Split
- A/B Split
Action conditions - Has received push notifications
- Has dismissed push notifications and other campaign-based conditions
- Click the stage you want to add.
info Information
The five frequently used stages are displayed under the Frequently Used section on the All stages tab. The list of available stages changes dynamically based on your workspace. Click the required stage to add it to the flow.
- Under Conditions & controls, click the category to explore the condition stages you can add:
- On the Conditions & controls tab, click the stage you want to add.
The selected stage is added to the canvas.
- In the search bar, search for the stage directly. From the search result, click the option you want to add. For example, if you search for "conditional", the Conditional Split option is displayed.
Configure Condition Stages
Split Users on Conditions
After adding a Conditional Split stage, perform the following steps to configure it:
- Click the pen icon to edit the condition.
- Do the following:
Field Description Stage name Type to modify the condition's name to manage and identify the condition.
Evaluate the following conditions In the list, click an option to choose the start of your evaluation window:
-
Since entering the flow
This defines the start time to be from the time the user has entered the current flow. -
Since exiting the last stage
This defines the start time to be from the time the user has moved from the previous stage in the flow to the next stage. -
In the past
This defines the start time to be from the set timeframe in the past calculated from the entry to this stage or from the time the user has entered the current flow, whichever is lesser. Set the time in minutes, hours, or days.
Condition is satisfied if the user - In the Display name box, type or paste the name of the branch or path.
info Information
Ensure that the display name has a maximum of 20 characters only.
- Use one of the following:
- User property
- In the list, select the user property.
- Provide the property details.
The filter is the primary filter condition. - Click + Filter to add additional filters to the primary filter condition.
- User behavior
- In the list, select one of the following:
- Has Executed
- Has Not Executed
- In the list, select one of the events.
Events include any of the flow entry conditions as well.
- Click + Attributes to add additional filters to the primary condition. The default Constant value helps you complete the filter with specific static values. The Event attribute (applicable for all types of flows), User attribute (applicable for all types of flows), and Business event attribute (applicable only for Business Event Triggered flows) option, as shown above, helps you link this primary condition with the event-trigger or business event trigger condition and define dynamic checks. To know more, refer to Linked Conditions
- In the list, select one of the following:
- User property
+ Filter - Click to add another filter with the primary conditions.
- Click AND or OR.
- Similar to the step above, you can add additional conditional checks and link them to previous user actions with Linked Conditions.
Keep evaluating for the next - Turn it on to check if the condition is met for the set time duration from the start time defined in Evaluate the following conditions.
- Type or use the up and down arrow keys to set the time duration.
- In the list, select the minutes, hours, or days to set the evaluation duration.
-
Since entering the flow
- Use the + icon to add more branches as part of the conditional split stage. Branch 1 has the highest priority, and the priority reduces as you progress down. Default branch has the least priority. For example, when there is a conditional split where a user X matches both branch 1 and branch 2 conditions, the user moves down Branch 1 as that has the highest priority. So, for a conditional split, the order of branches plays an important role where the user moves provided they match more than one branch's criteria.
info |
Information
|
When you edit a published flow having a conditional split, the following are applicable:
- Change the display name.
- Change the branch evaluation conditions.
- Cannot add a new branch.
- Cannot delete a branch.
After adding a Check User Attribute stage, perform the following steps to configure it:
- Click the pen icon to edit the condition.
- Do the following:
Field Description Stage name Type to modify the condition's name to manage and identify the condition.
Condition is satisfied if user In the list, select one of the attributes.
The default Constant value helps you complete the filter with specific static values. The User attribute (applicable for all types of flows) and Business event attribute (applicable only for Business Event Triggered flows) options, as shown below, help you link this condition with other user attributes or the business event trigger condition and define dynamic checks. To know more, refer to Linked Conditions.
+ Filter - Click to add another filter with the primary filter.
- Click AND or OR.
- In the list, select the type of user attributes.
Keep evaluating for the next - Turn it on to check if the condition is met for the set time duration.
- Type or use the up and down arrow keys to set the time duration.
- In the list, select minutes, hours, or days to set the evaluation duration.
Next Steps
If the condition is met, the user will immediately move to the yes branch. If the condition is not met at the end of the evaluation window, the user will move to the no branch. Marketers can accordingly decide the subsequent flow paths.
After adding a Has done event stage, perform the following steps to configure it:
- Click the pen icon to edit the condition.
- Do the following:
Field Description Stage name Type to modify the condition's name to manage and identify the condition.
Evaluate the following conditions Select from the drop-down to choose the start of your Evaluation Window:
-
Since they entered the flow
This defines the start time to be from the time the user has entered the current flow. -
Since they exited previous stage
This defines the start time to be from the time the user has moved from the previous stage in the flow to the next stage. -
In the past
This defines the start time to be from the set timeframe in the past calculated from the entry to this stage or from the time the user has entered the current flow, whichever is lesser. Set the time in minutes, hours, or days.
Condition is satisfied if the user - In the list, select one of the following:
- Has Executed
- Has Not Executed
- In the list, select one of the user attributes.
The filter is the primary filter condition. - Click + Attributes to add additional filters to the primary condition. The default Constant value helps you complete the filter with specific static values. The Event attribute (applicable for all types of flows), User attribute (applicable for all types of flows), and Business event attribute (applicable only for Business Event Triggered flows) option, as shown above, helps you link this primary condition with the event-trigger or business event trigger condition and define dynamic checks. To know more, refer to Linked Conditions.
+Filter - Click to add another filter with the primary condition.
- Click AND or OR.
- In the list, select the type of user attributes.
- You can add additional conditional checks and link them to previous user actions with Linked Conditions.
Keep evaluating for the next - Turn it on to check if the condition is met for the set time duration from the start time defined in Evaluate the following conditions.
- Type or use the up and down arrow keys to set the time duration.
- In the list, select minutes, hours, or days to set the evaluation duration.
-
Since they entered the flow
For example, a user came to the 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. MoEngage Flows will check for the next two hours if the condition is met.
If yes, it will immediately move to the yes branch. If the condition is not met at the end of 2 hours, it will move to the no branch. Marketers can accordingly decide the subsequent flow paths.
The system checks if the actions have been taken in the past since the user entered the journey. The system will wait 2 hours if the condition is not met. After 2 hours, it will move to the yes or no branch based on the current status.
The evaluation starts when the user reaches the event condition. 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.
Campaign-Based Conditions
The following are the types of campaign-based conditions provided by MoEngage:
Perform the following steps for an email campaign:
- Select one of the following conditions:
Field Description On send email message
Checks whether the email is sent to the user.
Has opened email message
Checks whether the user has opened the received email message.
Has clicked email message
Checks whether the user has clicked any link in the received email message.
Has unsubscribe email
Checks whether the targeted user has unsubscribed from receiving the email campaigns.
On email drop
Checks whether the targeted email for the user was not sent because of previous hard bounces, marked spam, or complaints.
On email spam
Checks whether the email sent to the targeted user was marked as spam mail.
On email bounce
Checks whether the email sent to the targeted user was bounced.
On hard bounce
Checks whether the email sent to the targeted user was hard-bounced.
-
Check for event occurrence.
- Type or use the up and down buttons to set the time.
- In the list, select minutes, hours, or days.
- Click Done to add the action or Cancel to cancel the action.
info |
Information The evaluation will be done for the mentioned timeframe since the user has entered the stage. |
Perform the following for the Connector campaign:
- Select Connector sent successfully to check whether the connector is sent to the user.
-
Check for event occurrence.
- Type or use the up and down buttons to set the time.
- In the list, select minutes, hours, or days
- Click Done to add the action or click Cancel to cancel the action.
info |
Information The evaluation will be done for the mentioned timeframe since the user has entered the stage. |
Perform the following for the push campaign:
- Select one of the following conditions:
Field Description Has received push notification
Checks whether the user has received the push notification.
Has dismissed push notification
Checks whether the user has dismissed the received push notification.
Has clicked push notification
Checks whether the user has clicked the received push notification.
-
Check for event occurrence
- Type or use the up and down buttons to set the time.
- In the list, select minutes, hours, or days
- Click Done to add the action or Cancel to cancel the action.
info |
Information The evaluation will be done for the mentioned timeframe since the user has entered the stage. |
Perform the following for the SMS campaign:
- Select SMS sent successfully to check whether the SMS is sent to the user.
-
Check for event occurrence
- Type or use the up and down buttons to set the time.
- In the list, select minutes, hours, or days.
- Click Done to add the action or Cancel to cancel the action.
info |
Information The evaluation will be done for the mentioned timeframe since the user has entered the stage. |
Perform the following for the On-site Messaging campaign:
- Select one of the following conditions:
Field Description Has seen the on-site message
Checks whether the user has seen the on-site message.
Has clicked on-site message
Checks whether the user has clicked the on-site message.
Has closed on-site message
Checks whether the user has closed the on-site message.
-
Check for event occurrence.
- Type or use the up and down buttons to set the time.
- In the list, select minutes, hours, or days.
- Click Done to add the action or Cancel to cancel the action.
info |
Information The evaluation will be done for the mentioned timeframe since the user has entered the stage. |
Perform the following for the In-app Messaging campaign:
- Select one of the following conditions:
Field Description Has seen mobile in-app message
Checks whether the user has seen the mobile in-app message.
Has clicked mobile in-app message
Checks whether the user has clicked the mobile in-app message.
Has closed mobile in-app message
Checks whether the user has closed the mobile in-app message.
-
Check for event occurrence.
- Type or use the up and down buttons to set the time.
- In the list, select minutes, hours, or days.
- Click Done to add the action or Cancel to cancel the action.
info |
Information The evaluation will be done for the mentioned timeframe since the user has entered the stage. |
Perform the following for the Card campaign:
- Select one of the following conditions:
Field Description On send card
Checks whether the card was sent successfully.
Has received card
Checks whether the card was received by the user successfully.
Has seen card
Checks whether the card was seen by the user successfully. Has clicked on card
Checks whether the card was clicked by the user successfully. -
Check for event occurrence.
- Type or use the up and down buttons to set the time.
- In the list, select minutes, hours, or days.
- Click Done to add the action or Cancel to cancel the action.
info |
Information The evaluation will be done for the mentioned timeframe since the user has entered the stage. |
Do the following for the WhatsApp campaign:
- Select one of the following conditions:
Field Description Message Delivered Successfully
Checks whether the message was delivered successfully.
Message Delivery Failed
Checks whether the message delivery failed.
Message Sent Successfully
Checks whether the message was sent successfully.
Message Read
Checks whether the message was read successfully.
-
Check for event occurrence
- Type or use the up and down buttons to set the time.
- In the list, select minutes, hours, or days.
- Click Done to add the action or Cancel to cancel the action.
info |
Information The evaluation will be done for the mentioned timeframe since the user has entered the stage. |
Do the following for the Facebook campaign:
- Select Facebook audience synced successfully to check whether the users of Facebook campaigns are synced with MoEngage.
-
Check for event occurrence
- Type or use the up and down buttons to set the time.
- In the list, select minutes, hours, or days.
- Click Done to add the action or Cancel to cancel the action.
info |
Information The evaluation will be done for the mentioned timeframe since the user has entered the stage. |
Do the following for the Google Ads Audience campaign:
- Select Google Ads audience synced successfully to check whether the users of Google Ads campaigns are synced with MoEngage.
-
Check for event occurrence
- Type or use the up and down buttons to set the time.
- In the list, select minutes, hours, or days.
- Click Done to add the action or Cancel to cancel the action.
info |
Information The evaluation will be done for the mentioned timeframe since the user has entered the stage. |
Split Users Randomly
A/B Split allows you to test up to five flow paths variations to determine which is the best-performing option. You can experiment with different channels, different messages on the same channel, and different message frequencies across these flow paths.
You can configure the experiment and, after analyzing the performance of each branch on publishing the flow, change the user distribution in favour of the winning branch. This enables most users entering the flow to go forward with the best-performing branch.
info |
Opt for intelligence You can configure MoEngage Flows to automatically adjust the user attribution in favor of the best-performing branch as more and more users enter the flow. For more information, refer to Intelligent Flow Path optimizer. |
Test Setup
Add A/B Split at any part of your flow from the control category of flow stages.
- Add the number of branches you want to experiment with. You can add up to five branches in one A/B split stage.
- Configure the user distribution split for each branch. The variation percentage can be between 0-100 for each branch.
- Make sure that the sum of all the branch variation percentages is 100.
check_circle |
Test Everything You can use the A/B split at any stage in a flow and add up to five A/B splits in one flow. |
Make sure to add different display names for each branch to distinguish between the branches on the canvas.
Understand the Performance
As users enter the flow, each branch's performance keeps updating on the canvas.
- Email (50%) denotes the display name of the branch and the configured user distribution for the branch, which is 50 in this example.
- 4 Done is the number of flow trips that have gone through this branch.
- Converted trips are the number of branch trips that resulted in at least one conversion. 75% is the conversion rate for the branch in the example above.
- The Engagement Score is a derived metric reflecting the engagement of the branch. The higher the number, the better the engagement. For more information on how the engagement score is calculated, refer here.
info |
What is a branch?
|
Find a Winner
You can analyze and compare the branches' performances in the report for your split node. You can click the report option hovering over the stage on canvas or go to the split node stats section in the flow's detailed stats page and filter on a particular split node from the list.
After analyzing the branch performance, you can choose to edit the configured user distribution so that most of the users entering the flow next will go forward through the best-performing branch.
Intelligent Path optimizer allows you to A/B test up to five branches where Sherpa automatically keeps adjusting the user distribution towards the best-performing path. You can focus on experimenting on which channel to use or what should be the messaging frequency in each branch and let Sherpa optimize the user distribution.
While deputizing Sherpa to optimize the user distribution, you must also configure the metric you are expecting to maximize in your flow. This can be one of Engagement, Conversion, or both.
info |
Worthy Alternative If you wish to handle the user distribution manually, you can opt for A/B Split. For more information, refer here. |
Configure Intelligent Path Optimizer
You can add an Intelligent Path Optimizer at any part of your flow where you want to experiment with some worthy alternative options.
Make sure you name each branch distinctly to identify them on the canvas. At every stage, you can experiment with up to five flow paths, and in each flow, you add up to five such stages.
Maximized Metric Selection
MoEngage Flows can solve a variety of use cases which can be generalized into two main categories.
- For increasing user engagement
- For increasing user conversions
So while optimizing a flow, MoEngage depends on your selection of metrics to be maximized to align the optimization to the flow goals.
How Does This Work?
Initially, the users get uniformly distributed, and as MoEngage get more performance results, Sherpa keeps adjusting the user distribution towards the best-performing branch. Based on which metric is configured to be maximized, MoEngage tracks different performance stats of each branch involved in the experiment.
-
Maximizing conversions
For each branch, MoEngage aims to maximize the ratio of converted branch trips/total trips of the branch. This can be loosely termed as the Branch CVR as well.
warning Things to notice
MoEngage refrained from using total branch conversions as the maximized metric because that would give preference to users doing multiple conversions on a branch and would also favour a branch having more action campaigns. Both necessarily would not mean that the branch that eventually wins is the most optimized one.
MoEngage tries to find the optimized branch based on the most common user behavior leading to conversion.
-
Maximizing engagement
Similar to the conversion calculation, MoEngage aims to optimize the total engaged trips instead of total engagement for each branch. To do this, MoEngage gives an engagement score to each branch and tries to maximize that score instead of total clicks or email opens of the branch.
The engagement score for the branch is the ratio between the number of branch trips that have fetched a click from at least one of the action campaigns (BTC) + one-tenth of the number of branch trips that have only fetched email opens (BTO) and Total Branch Trips.
Engagement Score = (BTC+ 1/10(BTO))/Total Branch Trips
info Help us
The engagement score allows MoEngage to optimize for the best-performing branch, which might not necessarily be the branch with the most clicks or most emails open.
If this approach does not suit your use case or expectation, contact MoEngage at product@moengage.com.
-
Maximizing the combination of engagement and conversion
For each branch, MoEngage combines Branch CVR and Engagement score with emphasis on branch CVR because fetching conversions is more important than generating engagement. So the Maximized metric, in this case, becomes Branch CVR + 1/10( Engagement Score).
Sherpa distributes maximum users toward the best-performing branch when the user reaches the path optimizer stage.
check_circle |
Keep Experimenting Sherpa does not stop distributing users towards low-performing branches even when a branch is identified to be performing better as the best-performing branch may keep changing from time to time as more and more users go through the flow. |
Analyze the Performance
Each flow branch's performance keeps updating on the flow canvas as more and more users go through it.
- A branch can be identified by its branch name. Email is the branch name in the above example.
- 4 done is the number of branch trips in the example above, and these 4 trips constitute 66.67% of the total trips reaching the Intelligent Path Optimizer stage.
- Convertrip trip count is the number of branch trips that lead to at least one conversion from one of the action campaigns in the branch.
- The Engagement score of the branch is also shown for each branch, regardless of which metric is maximized for the branch.
info |
What is in a branch?
|
You can analyze and compare the branches' performances in the report for your split node. You can click the report option that appears on hovering over the stage on canvas or go to the split node stats section in the flow's detailed stats page and filter on a particular split node from the list.