> ## Documentation Index
> Fetch the complete documentation index at: https://moengage.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Branching of Users in Flows

> Split users in MoEngage Flows using conditional branches, event checks, attribute filters, or random splits to personalize journeys and experiments.

# 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 Merlin 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>
  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.
</Info>

# Add Condition Stages

Perform the following steps to add condition stages:

1. On the MoEngage Canvas, click **+**.
2. 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. <img src="https://mintcdn.com/moengage/cFTwc93vQdTanvKi/images/moengage_bdc71d.png?s=fec9d787f29faae3cda0e2ffc59f7a81" alt="Adding by Searching.gif" width="1920" height="1040" data-path="images/moengage_bdc71d.png" />
   * On the **All stages** tab:
     1. Under **Conditions & controls**, click the category to explore the condition stages you can add:
        | Category            | Stages Available                                                                                                               |
        | ------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
        | **AI TOOLS**        | Intelligent path optimizer                                                                                                     |
        | **USER CONDITIONS** | <ul><li>Check User Attribute</li><li>Has done event</li></ul>                                                                  |
        | **SPLIT USER PATH** | <ul><li>Conditional Split</li><li>A/B Split</li></ul>                                                                          |
        | Action conditions   | <ul><li>Has received push notifications</li><li>Has dismissed push notifications and other campaign-based conditions</li></ul> |
     2. Click the stage you want to add. <img src="https://mintcdn.com/moengage/xjBZUVmmH3jDrySH/images/moengage_c69347.png?s=52270bf6c42da4783d641c7daa4a0da3" alt="Adding via Category.gif" width="1920" height="1040" data-path="images/moengage_c69347.png" />
        <Info>
          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. <img src="https://mintcdn.com/moengage/epqsPEpMsGQCYy1r/images/moengage_5e19dd.png?fit=max&auto=format&n=epqsPEpMsGQCYy1r&q=85&s=38103a348d07b58d5abe016df1a4b940" alt="image.png" width="1854" height="1246" data-path="images/moengage_5e19dd.png" />
        </Info>
   * On the **Conditions & controls** tab, click the stage you want to add. <img src="https://mintcdn.com/moengage/QVZKszouQuxXOzFr/images/moengage_1ce0e5.png?s=520ba590e0853be7cbcd6f645b63a280" alt="Adding via Tab.gif" width="1920" height="1040" data-path="images/moengage_1ce0e5.png" /> The selected stage is added to the canvas.

# Configure Condition Stages

## Split Users on Conditions

<Tabs>
  <Tab title="Conditional Split">
    After adding a **Conditional Split** stage, perform the following steps to configure it:

    <Accordion title="New Navigation">
      <Note>
        This is an Early Access feature. To enable it for your account, please contact your MoEngage Customer Success Manager (CSM) or the Support team.
      </Note>

      #### **Step 1: Define Branches**

      <img src="https://mintcdn.com/moengage/cFTwc93vQdTanvKi/images/moengage_bed781.png?fit=max&auto=format&n=cFTwc93vQdTanvKi&q=85&s=827af124cf890d1600d86fc4f58c1650" alt="Conditional Split Default state UI.png" width="2880" height="1622" data-path="images/moengage_bed781.png" />

      | Field          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
      | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
      | **Stage name** | Enter a name for the stage to manage and identify the condition.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
      | **Branches**   | Users are evaluated against each branch in sequence. All users are evaluated first against Branch 1, then Branch 2, and so on, until the default branch. <ol><li>Click the pen icon beside the branch name to change the name of the branch or path. This name helps you identify the path or condition. <br />**Note**: Ensure the *display name* does not exceed 20 characters.</li><li>Use one of the following: <ul><li>User property <ol><li>In the list, select a user property.</li><li>Provide the property details. The filter is the primary filter condition.</li><li>Click **+ Filter** to add more filters to the primary filter condition.</li></ol></li><li>User behavior <ol><li>In the list, select one of the following: <ul><li>**Has Executed**</li><li>**Has Not Executed**</li></ul></li><li>In the list, select an event. Events include any flow entry conditions.<br /><img src="https://mintcdn.com/moengage/fzuvJT_0bqJ-FYAA/images/ConditionalSplitnewUIwithLinkedCondition.png?fit=max&auto=format&n=fzuvJT_0bqJ-FYAA&q=85&s=133ead2b0f25470beb66e3930d80f353" alt="Conditional Splitnew U Iwith Linked Condition" title="Conditional Splitnew U Iwith Linked Condition" width="2880" height="1622" data-path="images/ConditionalSplitnewUIwithLinkedCondition.png" /></li><li>Click **+ Attributes** to add filters to the primary condition. <ul><li>The default **Constant value** helps you complete the filter with specific static values.</li><li>Use **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) to link this primary condition with the event-trigger or business event trigger conditions and define dynamic checks.</li><li>For more information, refer to [Linked Conditions](/docs/user-guide/flows-cross-channel-messaging/create/create-flows/linked-conditions)</li></ul></li></ol></li></ul></li></ol> |
      | **+Filter**    | <ol><li>Click to add another filter with the primary condition.</li><li>Click **AND** or **OR** to define the relationship between filters.</li><li>In the list, select the type of user attributes.</li><li>Add additional conditional checks and link them to previous user actions with [Linked Conditions](/docs/user-guide/flows-cross-channel-messaging/create/create-flows/linked-conditions).</li></ol>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |

      1. Click **+** **Add** to include more branches as part of the conditional   split stage.

      * Branches are evaluated in sequence. **Branch 1** has the highest priority, which decreases as you move down the list. The **Default branch** has the lowest priority.
      * For example, when there is a conditional split where a user matches both branch 1 and branch 2 conditions, they move down Branch 1 because of its highest priority. So, in a conditional split, where the user matches more than one branch's criteria, the order of the branches matters.

      2. To delete a branch within Conditional Split or to duplicate the branch, hover over the list of branches mentioned on the left side.
         1. Click **Duplicate** to create a copy of a branch. The new branch is automatically named "Copy of Branch `<x>`"
         2. Similarly, click **Delete** to remove a branch from the stage. <img src="https://mintcdn.com/moengage/7H2dU4CG2W0DQCPI/images/moengage_71aa5f.png?fit=max&auto=format&n=7H2dU4CG2W0DQCPI&q=85&s=34288f6660729e70dc94170e41cccab0" alt="Conditional Split Duplicate  Delete icon.png" width="2880" height="1622" data-path="images/moengage_71aa5f.png" />
      3. To reposition branches, drag and move branches.

      Click **Next** to proceed to Step 2.

      #### **Step 2: Configure Evaluation Window**

      In this step, define the time window for evaluating the condition by setting a **start point** (using the timeline slider) and an **end point** (using the wait duration).

      <img src="https://mintcdn.com/moengage/wjYnJKL0xml-g3HM/images/moengage_443569.png?fit=max&auto=format&n=wjYnJKL0xml-g3HM&q=85&s=e3bfe0d99b474f0f02593ba5f9f6b243" alt="Conditional Split Step 2.png" width="2880" height="1622" data-path="images/moengage_443569.png" />

      **How It Works:** The evaluation window consists of a **start point** and an **end point** (calculated as: when the user enters the stage + wait duration).

      | Slider Position                                | Configuration Fields                                                                                                                                                                                                                                                                                                                                                           | Evaluation Window                                                                                                                                                                                                                                                                                                                                                                        | Old UI Equivalent              |
      | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
      | **A fixed time before users enter this stage** | <ol><li>**Enter the fixed time to evaluate before users reach this stage.** <ol><li>Enter duration (number).</li><li>Select unit: mins, hours, days.</li><li>Max: 30 days</li></ol></li><li>**Enter the fixed duration to wait after users enter this stage** <ol><li>Enter duration (number).</li><li>Select unit: mins, hours, days</li><li>Max: 30 days</li></ol></li></ol> | <ul><li>**Start**: Time before reaching the stage.</li><li>**End**: Time after reaching the stage.</li></ul> <br />***Example***: *User reaches stage at 2:00 PM*<br />*- "5 mins before" + "10 mins after"*<br />*- Evaluates: 1:55 PM to 2:10 PM*                                                                                                                                      | "In the past"                  |
      | **When users enter this flow**                 | **Enter the fixed duration to wait after users enter this stage** <ol><li>Enter duration (number)</li><li>Select unit: mins, hours, days</li><li>Max: 30 days <br />    ***Note:*** Start time is automatically set to flow entry time (max 30-day lookback)</li></ol>                                                                                                         | <ul><li>**Start**: When the user enters the flow</li><li>**End**: When the user reaches the stage + wait duration</li></ul> <br />***Example:*** <ol><li>User enters flow on Jan 1, reaches stage on Jan 5 at 2:00 PM - "5 hours after" - Evaluates: Jan 1 to Jan 5 7:00 PM</li><li>If the user enters on Jan 1 but reaches the stage on Feb 15, it evaluates from Jan 16 only</li></ol> | "Since entering the flow"      |
      | **When users reach this stage**                | **Enter the fixed duration to wait after users enter this stage** <ol><li>Enter duration (number)</li><li>Select unit: mins, hours, days</li><li>Max: 30 days <br />  ***Note:*** Start time is automatically set to when the user exited the previous stage</li></ol>                                                                                                         | <ul><li>**Start**: When the user exits the previous stage</li><li>**End**: When the user reaches this stage + wait duration</li></ul> <br />*Example:* User exits previous stage at 2:00 PM, reaches this stage at 2:30 PM <br />- "2 hours after" <br />- Evaluates: 2:00 PM to 4:30 PM                                                                                                 | "Since exiting the last stage" |
    </Accordion>

    <Accordion title="Old Navigation">
      1. Click the pen icon to edit the condition.
      2. 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: <ul><li>**Since entering the flow** <br />This defines the start time to be *from the time the user has entered the current flow*. MoEngage evaluates the condition from the time the user entered the flow to decide whether the user meets the condition. However, the maximum look-back is 30 days. <br />For example: <ul><li>If a user enters the flow on January 1 and reaches the condition stage that’s defined to evaluate “Since they entered the flow” on February 15, MoEngage can evaluate only from January 14 because the maximum look-back it has is 30 days. <br /></li><li>If a user enters the flow on January 1 and reaches the condition stage that’s defined to evaluate “Since they entered the flow” on January 15, MoEngage can evaluate from January 1, that is, the time they entered, because this falls within the max limit defined.</li></ul></li><li>**Since exiting the last stage** <br />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.</li><li>**In the past** <br />This defines the start time to be *from the set timeframe in the past*. Set the time in minutes, hours, or days. MoEngage evaluates the condition for the time you mention with this option. <br />For example: <ul><li>If a user enters the flow on January 1 and reaches the condition stage that’s defined to evaluate “In the past for 30 Days” on January 15, MoEngage will evaluate from December 14, effectively for the defined 30-day period.</li><li>If a user enters the flow on January 1 and reaches the condition stage that’s defined to evaluate “In the past for 30 Days” on February 20, MoEngage can evaluate from January 21, effectively for the defined 30-day period.</li></ul></li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
      | **Condition is satisfied if the user** | <ol><li>In the **Display name** box, type or paste the name of the branch or path. <br />   **Note:** Ensure that the *display name* has a maximum of 20 characters only.</li><li>Use one of the following: <ul><li>User property <ol><li>In the list, select the user property.</li><li>Provide the property details. The filter is the primary filter condition.</li><li>Click **+ Filter** to add additional filters to the primary filter condition.</li></ol></li><li>User behavior <ol><li>In the list, select one of the following: <ul><li>Has Executed</li><li>Has Not Executed</li></ul></li><li>In the list, select one of the events. Events include any of the flow entry conditions as well.   <img alt="Screenshot 2024-12-19 at 5.19.29 PM.png" src="https://mintcdn.com/moengage/50ZszvUJB4M_6y_L/images/moengage_e6f165.png?fit=max&auto=format&n=50ZszvUJB4M_6y_L&q=85&s=7dcca023cd6a438d3e02ca79f7b28e82" width="2736" height="1166" data-path="images/moengage_e6f165.png" /></li><li>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](/docs/user-guide/flows-cross-channel-messaging/create/create-flows/linked-conditions)</li></ol></li></ul></li></ol> |
      | **+ Filter**                           | <ol><li>Click to add another filter with the primary conditions.</li><li>Click **AND** or **OR**.</li><li>Similar to the step above, you can add additional conditional checks and link them to previous user actions with [Linked Conditions](/docs/user-guide/flows-cross-channel-messaging/create/create-flows/linked-conditions).</li></ol>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
      | **Keep evaluating for the next**       | <ol><li>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**.</li><li>Type or use the up and down arrow keys to set the time duration.</li><li>In the list, select the minutes, hours, or days to set the evaluation duration.</li></ol>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |

      3. 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>
        * The default branch does not have any conditions.
        * You can add personalized and dynamic conditional checks based on the previous user actions with [Linked Conditions](/docs/user-guide/flows-cross-channel-messaging/create/create-flows/linked-conditions).
        * Users navigate to the default branch when they do not meet the conditions applied in the conditional split.
        * The order of branches will influence which branch path the user takes in a conditional split, because the priority of the branches decreases from the first branch to the last branch or the default branch.
        * Users meeting the primary branch will leave as soon as they meet the criteria. Meanwhile, in the other branches, they will leave only after the completion of the evaluation period.
        * Users navigate the branch and follow the branch after meeting the evaluation criteria.
      </Info>

      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.
    </Accordion>
  </Tab>

  <Tab title="Check user attribute">
    After adding a **Check User Attribute** stage, perform the following steps to configure it:

    <Accordion title="New Navigation">
      <Note>
        This is an Early Access feature. To enable it for your account, please contact your MoEngage Customer Success Manager (CSM) or the Support team.
      </Note>

      <img src="https://mintcdn.com/moengage/iCae3l_a7eOJMTbz/images/moengage_1f125e.png?fit=max&auto=format&n=iCae3l_a7eOJMTbz&q=85&s=1acd5ea690a579749b1efe6b6476b58a" alt="Check User Attribute.png" width="2880" height="1622" data-path="images/moengage_1f125e.png" />

      | Field                                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
      | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
      | **Stage name**                       | Enter a name for the stage to manage and identify the condition.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
      | **Condition(s)**                     | Define the user property condition by selecting a user attribute from the list  The default Constant value helps you complete the filter with specific static values. <ul><li>Use the ***User attribute*** (applicable to all flow types) and ***Business event attribute*** (applicable only to Business Event Triggered flows) options to link this condition to other user attributes or the business event trigger condition, and to define dynamic checks. To know more, refer to [Linked Conditions](/docs/user-guide/flows-cross-channel-messaging/create/create-flows/linked-conditions).  <br /> <img alt="LinkedCondition_In_CheckUserAttribute.png" src="https://mintcdn.com/moengage/B1ZqBU-ISgaoSx_O/images/moengage_536129.png?fit=max&auto=format&n=B1ZqBU-ISgaoSx_O&q=85&s=b4596fc780ef3e1bbe96f37e481ce243" width="2008" height="297" data-path="images/moengage_536129.png" /></li></ul> |
      | **+Filter**                          | <ol><li>Click to add another filter with the primary condition.</li><li>Click **AND** or **OR** to define the relationship between filters.</li><li>Select the type of user attribute from the list.</li></ol>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
      | **Evalutation Window Configuration** | Specify the maximum duration to wait before evaluating the condition in ***Evaluation Ends***: <ol><li>Enter the time duration (number)</li><li>Select the time unit: minutes, hours, or days</li></ol>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |

      **How it works:**

      Once a user reaches this stage:

      * MoEngage checks the evaluation window to see if the condition is met.
      * If the condition is met, the user immediately moves to the "Yes" path.
      * If the condition is not met, MoEngage waits up to the specified duration before moving the user to the "No" Path.
      * In the meantime, if the user attribute is updated, they are evaluated to move users in real-time.

              <img src="https://mintcdn.com/moengage/2FjM3dGfEH1CYo8k/images/moengage_6888d3.png?fit=max&auto=format&n=2FjM3dGfEH1CYo8k&q=85&s=60dc5dab2ea506e73693e536518596d2" alt="Check User Attribute New UI Filled state.png" width="2880" height="1622" data-path="images/moengage_6888d3.png" />
    </Accordion>

    <Accordion title="Old Navigation">
      1. Click the pen icon to edit the condition.
      2. 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. <br /> 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](/docs/user-guide/flows-cross-channel-messaging/create/create-flows/linked-conditions).  <img src="https://mintcdn.com/moengage/xGyg9rXr6djolSrt/images/moengage_dd27a6.png?fit=max&auto=format&n=xGyg9rXr6djolSrt&q=85&s=54e8edd08168baf1e31cd76fc5a79f71" width="2012" height="496" data-path="images/moengage_dd27a6.png" /> |   |
      | **+ Filter**                       | <ol><li>Click to add another filter with the primary filter.</li><li>Click **AND** or **OR**.</li><li>In the list, select the type of user attributes.</li></ol>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |   |
      | **Keep evaluating for the next**   | <ol><li>Turn it on to check if the condition is met for the set time duration.</li><li>Type or use the up and down arrow keys to set the time duration.</li><li>In the list, select minutes, hours, or days to set the evaluation duration.</li></ol>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |   |

      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.

      <img src="https://mintcdn.com/moengage/UX7SFw6G5JwoHWFq/images/moengage_62c4bf.png?fit=max&auto=format&n=UX7SFw6G5JwoHWFq&q=85&s=14ecdbee74dc1b58d965703eebbf4606" alt="HasDoneEventExample01.png" width="1357" height="702" data-path="images/moengage_62c4bf.png" />

      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.

      <img src="https://mintcdn.com/moengage/N1a7P_mcSpm-5bMa/images/moengage_58e832.png?fit=max&auto=format&n=N1a7P_mcSpm-5bMa&q=85&s=10ced89d0cda0b709d579ef9fbdd05bd" alt="HasDoneEventExample02.png" width="1437" height="715" data-path="images/moengage_58e832.png" />

      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.
    </Accordion>

    #### 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.
  </Tab>

  <Tab title="Has done event">
    After adding a **Has done event** stage, perform the following steps to configure it:

    <Accordion title="New Navigation">
      <Note>
        This is an Early Access feature. To enable it for your account, please contact your MoEngage Customer Success Manager (CSM) or the Support team.
      </Note>

      Click the pen icon to define the condition:

      #### **Step 1: Define Condition(s)**

      | Field                                  | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
      | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
      | **Stage name**                         | Enter a name to identify and manage this condition.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
      | **Condition is satisfied if the user** | <ol><li>In the list, select one of the following:<ul><li>**Has Executed**</li><li>**Has Not Executed**</li></ul></li><li>Select an event from the dropdown. This includes: <ol><li>Custom events tracked in your workspace</li><li>Flow entry events (to check the event that triggered the flow entry)</li></ol></li><li>Click **+ Attributes** to add additional filters to the primary condition.<ul><li>Use this default **Constant value** to complete the filter with specific static values.</li><li>Use **Event attribute** (applicable for all types of flows), **User attribute** (applicable for all types of flows), and **Business event attribut** (applicable only for Business Event Triggered flows) option to link this primary condition with the event-trigger or business event trigger condition and define dynamic checks. For more information, refer to [Linked Conditions](/docs/user-guide/flows-cross-channel-messaging/create/create-flows/linked-conditions).<img alt="Has Done Event Stage Step 1 Filled UI.png" src="https://mintcdn.com/moengage/Vec55CKt-wYQ1h5L/images/moengage_425b5e.png?fit=max&auto=format&n=Vec55CKt-wYQ1h5L&q=85&s=a41cbd542021ffb8f777b9c3c5aedd39" width="2880" height="1622" data-path="images/moengage_425b5e.png" /></li></ul></li></ol> |
      | **+Filter**                            | <ol><li>Click to add another filter to the primary condition.</li><li>Select **AND** or \*\*OR \*\*to define the relationship between filters.</li><li>In the list, select the type of user attributes.</li><li>Add additional conditional checks and link them to previous user actions with [Linked Conditions](/docs/user-guide/flows-cross-channel-messaging/create/create-flows/linked-conditions).</li></ol>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |

      Click **Next** to proceed to Step 2.

      #### **Step 2: Configure Evaluation Window**

      In this step, you define the time window for evaluating the condition by setting a **start point** (using the timeline slider) and an **end point** (using the wait duration).

      <img src="https://mintcdn.com/moengage/cFTwc93vQdTanvKi/images/moengage_bec87e.png?fit=max&auto=format&n=cFTwc93vQdTanvKi&q=85&s=c21456271bac97539adfcaee9123b6ea" alt="Has Done Event Stage Step 1 Default state.png" width="2880" height="1622" data-path="images/moengage_bec87e.png" />

      **How It Works:** The evaluation window has a **start point** (determined by slider position) and an **end point** (always when the user enters this stage + wait duration). Together, they create the complete timeframe for checking if your condition is met.

      | Slider Position                                | Configuration Fields                                                                                                                                                                                                                                                                                                                                                               | Evaluation Window                                                                                                                                                                                                                                                                                                    | Old UI Equivalent              |
      | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
      | **A fixed time before users enter this stage** | <ol><li>**Enter the fixed time to evaluate before users enter this stage.** <ul><li>Enter duration (number)</li><li> Select unit: mins, hours, days.</li><li> Max: 30 days</li></ul></li><li>**Enter the fixed duration to wait after users enter this stage** <ul><li>Enter duration (number) </li> <li>Select unit: mins, hours, days </li><li> Max: 30 days</li></ul></li></ol> | Start: \[Time before reaching stage] End: \[Time after reaching stage] <br />***Example***: *User reaches stage at 2:00 PM*<br />*- "5 mins before" + "10 mins after"*<br />*- Evaluates: 1:55 PM to 2:10 PM*                                                                                                        | "In the past"                  |
      | **When users enter this flow**                 | **Enter the fixed duration to wait after users enter this stage** <ul><li>Enter duration (number)</li><li>Select unit: mins, hours, days</li><li>Max: 30 days</li></ul> <br />***Note:***\_ Start time is automatically set to flow entry time (max 30-day lookback)\_                                                                                                             | <ul><li>Start: When user entered the flow</li><li>End: When user reaches stage + wait duration</li></ul> <br />***Example:*** User enters flow Jan 1, reaches stage Jan 5 at 2:00 PM - "5 hours after" - Evaluates: Jan 1 to Jan 5 7:00 PM If user enters Jan 1 but reaches stage Feb 15, evaluates from Jan 16 only | "Since entering the flow"      |
      | **When users reach this stage**                | **Enter the fixed duration to wait after users enter this stage** <ul><li>Enter duration (number)</li><li>Select unit: mins, hours, days</li><li>Max: 30 days</li></ul> <br />***Note:*** Start time is automatically set to when user exited previous stage                                                                                                                       | <ul><li>Start: When user exited previous stage</li><li>End: When user reaches this stage + wait duration</li></ul> <br />***Example:*** <br />User exits previous stage at 2:00 PM, reaches this stage at 2:30 PM <br />- "2 hours after" <br />- Evaluates: 2:00 PM to 4:30 PM                                      | "Since exiting the last stage" |

      **How Evaluation Works**

      Once a user reaches this stage, MoEngage evaluates the window (start point to end point):

      1. **If the condition is already met:** The user immediately moves to the **"Yes"** branch
      2. **If the condition is not yet met:** MoEngage continues checking until the end point is reached
      3. **At the end point:**

      * Condition met: The user moves to the **"Yes"** branch
      * Condition not met: The user moves to the **"No"** branch
    </Accordion>

    <Accordion title="Old Navigation">
      1. Click the pen icon to edit the condition.
      2. 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: <ul><li>**Since entering the flow** <br />This defines the start time to be *from the time the user has entered the current flow*. MoEngage evaluates the condition from the time the user entered the flow to decide whether the user meets the condition. However, the maximum look-back is 30 days. For example: <ul><li> If a user enters the flow on January 1 and reaches the condition stage that’s defined to evaluate “Since they entered the flow” on February 15, MoEngage can evaluate only from January 14 because the maximum look-back it has is 30 days. </li><li> If a user enters the flow on January 1 and reaches the condition stage that’s defined to evaluate “Since they entered the flow” on January 15, MoEngage can evaluate from January 1, that is, the time they entered, because this falls within the max limit defined.</li></ul></li><li>**Since exiting the last stage** <br />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.</li><li>**In the past** <br />This defines the start time to be *from the set timeframe in the past*. Set the time in minutes, hours, or days. MoEngage evaluates the condition for the time you mention with this option. For example: <ul><li> If a user enters the flow on January 1 and reaches the condition stage that’s defined to evaluate “In the past for 30 Days” on January 15, MoEngage will evaluate from December 14, effectively for the defined 30-day period. </li><li> If a user enters the flow on January 1 and reaches the condition stage that’s defined to evaluate “In the past for 30 Days” on February 20, MoEngage can evaluate from January 21, effectively for the defined 30-day period.</li></ul></li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
      | **Condition is satisfied if the user** | <ol><li>In the list, select one of the following: <ul><li> **Has Executed**</li><li> **Has Not Executed**</li></ul></li><li>In the list, select one of the user attributes. <br />The filter is the primary filter condition.</li><li>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](/docs/user-guide/flows-cross-channel-messaging/create/create-flows/linked-conditions).  <img alt="Screenshot 2024-12-19 at 5.25.36 PM (1).png" src="https://mintcdn.com/moengage/epqsPEpMsGQCYy1r/images/moengage_5e8575.png?fit=max&auto=format&n=epqsPEpMsGQCYy1r&q=85&s=b566be2443e2505757a3a8aa2eceb8b1" width="2734" height="868" data-path="images/moengage_5e8575.png" /></li></ol> |
      | **+Filter**                            | <ol><li>Click to add another filter with the primary condition.</li><li>Click **AND** or **OR**.</li><li>In the list, select the type of user attributes.</li><li>You can add additional conditional checks and link them to previous user actions with [Linked Conditions](/docs/user-guide/flows-cross-channel-messaging/create/create-flows/linked-conditions).</li></ol>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
      | **Keep evaluating for the next**       | <ol><li>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**.</li><li>Type or use the up and down arrow keys to set the time duration.</li><li>In the list, select minutes, hours, or days to set the evaluation duration.</li></ol>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |

      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.

      <img src="https://mintcdn.com/moengage/UX7SFw6G5JwoHWFq/images/moengage_62c4bf.png?fit=max&auto=format&n=UX7SFw6G5JwoHWFq&q=85&s=14ecdbee74dc1b58d965703eebbf4606" alt="HasDoneEventExample01.png" width="1357" height="702" data-path="images/moengage_62c4bf.png" />

      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.

      <img src="https://mintcdn.com/moengage/N1a7P_mcSpm-5bMa/images/moengage_58e832.png?fit=max&auto=format&n=N1a7P_mcSpm-5bMa&q=85&s=10ced89d0cda0b709d579ef9fbdd05bd" alt="HasDoneEventExample02.png" width="1437" height="715" data-path="images/moengage_58e832.png" />

      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.
    </Accordion>
  </Tab>
</Tabs>

### Campaign-Based Conditions

The following are the types of campaign-based conditions provided by MoEngage:

<Accordion title="Email">
  Perform the following steps for an email campaign:

  1. 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.                                                      |
  2. Check for event occurrence.
     1. Type or use the up and down buttons to set the time.
     2. In the list, select minutes, hours, or days.
  3. Click **Done** to add the action or **Cancel** to cancel the action.

  <Info>
    The evaluation will be done for the mentioned timeframe since the user has entered the stage.
  </Info>
</Accordion>

<Accordion title="Connector">
  Perform the following for the Connector campaign:

  1. Select Connector sent successfully to check whether the connector is sent to the user.
  2. Check for event occurrence.
     1. Type or use the up and down buttons to set the time.
     2. In the list, select minutes, hours, or days
  3. Click **Done** to add the action or click **Cancel** to cancel the action.

  <Info>
    The evaluation will be done for the mentioned timeframe since the user has entered the stage.
  </Info>
</Accordion>

<Accordion title="Push">
  Perform the following for the push campaign:

  1. 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.   |
  2. Check for event occurrence
     1. Type or use the up and down buttons to set the time.
     2. In the list, select minutes, hours, or days
  3. Click **Done** to add the action or **Cancel** to cancel the action.

  <Info>
    The evaluation will be done for the mentioned timeframe since the user has entered the stage.
  </Info>
</Accordion>

<Accordion title="SMS">
  Perform the following for the SMS campaign:

  1. Select SMS sent successfully to check whether the SMS is sent to the user.
  2. Check for event occurrence
     1. Type or use the up and down buttons to set the time.
     2. In the list, select minutes, hours, or days.
  3. Click **Done** to add the action or **Cancel** to cancel the action.

  <Info>
    The evaluation will be done for the mentioned timeframe since the user has entered the stage.
  </Info>
</Accordion>

<Accordion title="On-Site Messaging">
  Perform the following for the On-site Messaging campaign:

  1. 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.  |
  2. Check for event occurrence.
     1. Type or use the up and down buttons to set the time.
     2. In the list, select minutes, hours, or days.
  3. Click **Done** to add the action or **Cancel** to cancel the action.

  <Info>
    The evaluation will be done for the mentioned timeframe since the user has entered the stage.
  </Info>
</Accordion>

<Accordion title="In-App Messaging">
  Perform the following for the In-app Messaging campaign:

  1. 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.  |
  2. Check for event occurrence.
     1. Type or use the up and down buttons to set the time.
     2. In the list, select minutes, hours, or days.
  3. Click **Done** to add the action or **Cancel** to cancel the action.

  <Info>
    The evaluation will be done for the mentioned timeframe since the user has entered the stage.
  </Info>
</Accordion>

<Accordion title="Cards">
  Perform the following for the Card campaign:

  1. 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.  |
  2. Check for event occurrence.
     1. Type or use the up and down buttons to set the time.
     2. In the list, select minutes, hours, or days.
  3. Click **Done** to add the action or **Cancel** to cancel the action.

  <Info>
    The evaluation will be done for the mentioned timeframe since the user has entered the stage.
  </Info>
</Accordion>

<Accordion title="WhatsApp">
  Do the following for the WhatsApp campaign:

  1. 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.      |
  2. Check for event occurrence
     1. Type or use the up and down buttons to set the time.
     2. In the list, select minutes, hours, or days.
  3. Click **Done** to add the action or **Cancel** to cancel the action.

  <Info>
    The evaluation will be done for the mentioned timeframe since the user has entered the stage.
  </Info>
</Accordion>

<Accordion title="Facebook">
  Do the following for the Facebook campaign:

  1. Select **Facebook audience synced successfully** to check whether the users of Facebook campaigns are synced with MoEngage.
  2. Check for event occurrence
     1. Type or use the up and down buttons to set the time.
     2. In the list, select minutes, hours, or days.
  3. Click **Done** to add the action or **Cancel** to cancel the action.

  <Info>
    The evaluation will be done for the mentioned timeframe since the user has entered the stage.
  </Info>
</Accordion>

<Accordion title="Google Ads Audience">
  Do the following for the Google Ads Audience campaign:

  1. Select **Google Ads audience synced successfully** to check whether the users of Google Ads campaigns are synced with MoEngage.
  2. Check for event occurrence
     1. Type or use the up and down buttons to set the time.
     2. In the list, select minutes, hours, or days.
  3. Click **Done** to add the action or **Cancel** to cancel the action.

  <Info>
    The evaluation will be done for the mentioned timeframe since the user has entered the stage.
  </Info>
</Accordion>

## Split Users Randomly

<Tabs>
  <Tab title="A/B Split">
    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](#overview).
    </Info>

    ### Test Setup

    Add A/B Split at any part of your flow from the control category of flow stages.

    <img src="https://mintcdn.com/moengage/wjYnJKL0xml-g3HM/images/moengage_400362.png?fit=max&auto=format&n=wjYnJKL0xml-g3HM&q=85&s=061e0f4cd6b3ff72c74e61968a45e516" alt="A.png" width="2880" height="1556" data-path="images/moengage_400362.png" />

    * 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.

    <Tip>
      **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.
    </Tip>

    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. <img src="https://mintcdn.com/moengage/50ZszvUJB4M_6y_L/images/moengage_ea3566.png?fit=max&auto=format&n=50ZszvUJB4M_6y_L&q=85&s=7aa9633de9bb46ef1dddfe6118164d5c" alt="Screenshot_2021-01-11_at_11.34.07_PM.png" width="381" height="187" data-path="images/moengage_ea3566.png" />

    * **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](/docs/user-guide/flows-cross-channel-messaging/create/intelligence-in-flows/intelligent-path-optimizer).

    <Info>
      **What is a branch?**

      * All the action stages from an A/B split node to the flow exit stage are included in tracking the branch's performance.
      * If the branch splits into multiple branches, the resulting branches are considered part of the parent branch.
      * If a branch merges into another branch at some point, the common flow path is considered a part of both the merging branches.
    </Info>

    ### 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.

    <img src="https://mintcdn.com/moengage/rlD8iAX6JQFx0hql/images/moengage_b8addd.png?fit=max&auto=format&n=rlD8iAX6JQFx0hql&q=85&s=75d8cd9e0ce57d2c271838034f6ad34d" alt="Screenshot_2021-01-12_at_10.20.29_AM.png" width="1094" height="156" data-path="images/moengage_b8addd.png" />

    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.
  </Tab>

  <Tab title="Intelligent path optimizer">
    Intelligent Path optimizer allows you to A/B test up to five branches where Merlin AI 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 Merlin AI optimize the user distribution.

    While deputizing Merlin AI 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](/docs/user-guide/flows-cross-channel-messaging/create/experimentation/ab-split-in-flows).
    </Info>

    ### 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, Merlin AI 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.
          </Warning>
    * **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](mailto:product@moengage.com).
    </Info>

    * **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)**.

    Merlin AI distributes maximum users toward the best-performing branch when the user reaches the path optimizer stage.

    <Tip>
      **Keep Experimenting**

      Merlin AI 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.
    </Tip>

    ### Analyze the Performance

    Each flow branch's performance keeps updating on the flow canvas as more and more users go through it.

    <img src="https://mintcdn.com/moengage/jnaevUpPOwD04mEl/images/moengage_821e17.png?fit=max&auto=format&n=jnaevUpPOwD04mEl&q=85&s=44eb3403e62b1a6d5bb389a712da6146" alt="Screenshot_2021-01-11_at_11.27.51_PM.png" width="222" height="152" data-path="images/moengage_821e17.png" />

    * 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 E**ngagement score** of the branch is also shown for each branch, regardless of which metric is maximized for the branch.

    <Info>
      - All action stages, from an Intelligent Path Optimizer stage to the flow exit stage, are included in tracking the branch's performance.
      - If the branch splits into multiple branches, the resulting branches are considered part of the parent branch.
      - If a branch merges into another branch at some point, the common flow path is considered a part of both the merging branches.
    </Info>

    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.

    <img src="https://mintcdn.com/moengage/T-dEj4C-7pywzBS3/images/moengage_a1004b.png?fit=max&auto=format&n=T-dEj4C-7pywzBS3&q=85&s=5d33fe2a54f42b07d87e60e9282b07ab" alt="mceclip0.png" width="1122" height="291" data-path="images/moengage_a1004b.png" />
  </Tab>
</Tabs>

All MoEngage AI products, which were previously referred to as *Sherpa AI*, are now known as *Merlin AI*.
