Skip to main content

Overview

Optimizing a flow is often an iterative process. To iteratively improve your flow, you must edit your published flows. You can experiment with a new channel or a new strategy altogether to improve flow performance. Versioning of flows enables you to achieve the same for any published flow without creating multiple separate flows. It allows you to keep all the analytics and context of the flows intact. Versioning helps you edit published flows while efficiently managing them and viewing the revision history using logs rather than creating duplicate independent flows. You can add, remove, and change elements, add stages and parameters, and change flow paths and configurations in published flows. This improves operational efficiencies when experimenting and optimizing customer journeys while reducing confusion and clutter. Versioning also provides you with clear reporting and insights on the performance of each version of your flow.

Use Cases

  • A retail brand runs a monthly discount campaign in the last week of each month. They communicate this through a multi-channel approach using a series of carefully crafted emails, SMS, and Push notifications. But the performance of these campaigns has dropped in the last few months. They can edit their flow to create improved versions of the running campaigns and optimize these campaigns.
  • A retail brand can edit its flows and create multiple versions to test different user paths messaging, and creative elements in a published flow without having to duplicate the entire flow. They can create multiple versions of the same flow with different channels, conditions, and stages to evaluate whether this drives improved engagement and conversions.
  • By editing a flow and iteratively creating flow versions, a fintech app can make changes to its published flows based on feedback from its customers. For example, if customers are having trouble navigating through the app, the fintech app can use versioning to quickly make changes to the flow and improve the user experience.

How does versioning work?

When a published flow is edited, a new version is created. For example, on adding or deleting a stage or changing the Flows settings (like conversion tracking and control group), a new version of the flow is created regardless of whether the changes are saved. When you are done with all the changes, you can publish the newly created version. When published, the new users that satisfy the entry condition will enter the latest published version. For users who are already active in the previous version, you decide what happens at the time you publish. You can either let them finish the version they are in, or move them into the new version. For more information, refer to Publishing a new version. When a new version is created for the Flow, the following happens:
  • The versions are typically named ‘Version ‘n” depending on the number of versions spanned for the Flow. In the case of our example, the active Flow is labeled as ‘Version 1’, and the version being edited is termed as ‘Version 2’.
  • A version selector(dropdown) is added next to the flow name to help you track the versions. The version being edited is selected in the dropdown. The version selector has the following information: Version_Dropdown.png
  • You can view the changes by clicking on the “View Changes” hyperlink at the top ribbon (Flow details section) of the page above the Flows canvas. This hyperlink will open the version logs, where you can see the unsaved and saved changes. For more information, refer to Version Logs. View_Changes.png
  • After you make the desired changes, click Save on the top ribbon of the page above the Flows canvas. The changes saved will be available in the Saved section of the Version Logs.
  • Upon saving a version, you’ll get the following option on the top of the page above the Flows canvas:

How_does_versioning_work_.gif

How does limiting user entry work across Versions?

The User Entry Limit carries over across Flow versions. It doesn’t reset when a new version publishes. A user’s past entries count against whatever limit the current version defines, so they can only enter the new version enough times to reach that limit. For example, say a Flow’s User Entry Limit is 2 per year in Version 1, and a user has already entered twice:
  • Version 2 keeps the limit at 2: the user can’t enter for the rest of the year, since they’ve already used up the limit carried over from Version 1.
  • Version 2 raises the limit to 3: the user can enter once more, since only 2 of the 3 entries have been used.
  • Version 2 lowers the limit to 1: the user can’t enter at all, since their entry count already exceeds the new limit.

When is a new version created?

The following actions will lead to the creation of a new version:
  • Versioning is not applicable for the following flow statuses: Stopped, Retired, Completed, and Draft, and also for the ‘One-time’ time-based Entry flows. To bring back an earlier version of an active flow, refer to Restoring a previous version.
  • The Entry Type cannot be changed for a published Flow.
  • Changing the control group settings or the User Entry Limit condition in a Scheduled Flow will not create a new version.
  • For active and paused flows, the Flow’s schedule settings cannot be edited except for the ‘End Date’ for periodic times.
  • Changes to flow name, flow status, DND, and FC settings, and changes in the content of existing action campaigns, do not lead to creating new versions of the Flow.

Publishing a New Version

When you publish a new version, MoEngage asks what should happen to the users who are still active in the previous version. To publish a new version, perform the following steps:
  1. On the flow canvas, click Actions, and then click Publish. Flow canvas with the Actions menu open and the Publish option highlighted
  2. In the Publish new version dialog box, select one of the following options:
  3. Click Publish. Publish new version dialog box showing the two options for handling active users on the previous version
If the version you publish is scheduled to start later, the current version keeps running until the scheduled version becomes active. MoEngage retires the current version only once the new one is active, not when you publish it.
There is no default selection, so you must select one of the two options before you can publish. Publish stays unavailable until you do.The choice affects only the version published immediately before this one. If you publish Version 3, it applies to the active trips in Version 2 and not to any earlier version.

How Users Move Between Versions

When you select Move them to this version as soon as possible, where each user lands depends on the change you made. Users at a wait stage, at a condition stage with Keep Evaluating For turned on, or at an action stage where DND is not ignored move only after their pending delay ends. MoEngage raises the User Exited Flow event for each user who leaves the previous version, with one of the following exit reasons:
  • Move to new version, when the user enters the new version.
  • Dropped off as the path was no longer defined, when no matching stage exists for the user in the new version.
MoEngage attributes drop-offs to the version the user left. You can find these users in Behavior Analytics by querying the User Exited Flow event with the exit reason, constrained on the flow ID.

Sending a New Version for Approval

If your workspace uses the campaign approval workflow, Actions shows Send for approval instead of Publish, and the dialog box has the following two steps: Manage users from previous version and Send for approval. To send a new version for approval, perform the following steps:
  1. Under Manage users from previous version, select one of the two options, and then click Next. Manage users from previous version step showing the two options and the Next button
    There is no default selection, so you must select one of the two options before you can continue. Next stays unavailable until you do.MoEngage asks for the user movement choice every time the version goes for review, so you answer it again when you edit a version that is already under review or resubmit one that an approver rejected.
  2. Under Select Approvers, type the approver’s name in the Start typing to filter approvers box, and then click + Add beside the approver. Send for approval step showing the approver list with the Add option and the empty Selected Approvers panel
  3. Optionally, enter a note for the approvers in the Add your comment here box.
  4. Click Send for approval. Send for approval step with an approver added and the Send for approval button available
The approvers you add appear under Selected Approvers, and Send for approval stays unavailable until you add at least one. To remove an approver, click the minus icon on their avatar, and to change the user movement choice, click Previous.

Viewing the Choice Later

Flow Settings shows the option you selected when you published the version, so you can check the decision later. To view the choice, perform the following steps:
  1. Open the flow, and then click Settings. Flow canvas with the Settings option at the top right of the Flow tab
  2. Scroll to Users movement from previous version to this version, and then check which option is selected. Flow Settings panel showing the Users movement from previous version to this version options in a read-only state
On this screen the two options are worded differently, as Let users in this version continue and Move users to this version as soon as possible, but they are the same choices you made when you published. Both options are read-only, so you cannot change the choice after you publish the version. The field appears only on flows that have two or more versions. Approvers use it to see the decision before they approve a version.

Restoring a Previous Version

If a newer version is not performing as expected, you can bring back an earlier version instead of rebuilding it. Restoring copies that version into a new draft, which you can then edit and publish like any other version. To restore a previous version, perform the following steps:
  1. Beside the flow name, click the version selector, and then select the version you want to restore. Version selector listing each version with its status, and the details of the selected version
  2. Click Actions, and then click Restore as draft. Actions menu showing the Restore as draft option below Pause, Retire, Stop, Duplicate and Export
  3. In the Restore as draft dialog box, click Restore as draft. Restore as draft dialog box confirming that restoring creates a new version in draft state
The dialog box names the version number it creates. MoEngage copies the version you selected into that new version in Draft status, and the draft stays inactive until you publish it.
  • The option is available while the latest version is active, scheduled, paused, or retired.
  • The option is not available when the latest version is stopped.

Stopping a Flow That Has Active Older Versions

Stopping the latest version also stops every older version of the flow, so that users still active in an earlier version do not keep receiving messages from it. MoEngage shows this confirmation only when an earlier version still has active trips. When no earlier version has active trips, stopping the flow shows the standard confirmation described in Stop. To stop the flow, perform the following steps:
  1. Click Actions, and then click Stop.
  2. In the Stop all versions of this flow? dialog box, click Stop Flow. Stop all versions of this flow dialog box listing what happens when you stop the flow
After you stop the flow, the following happens:
  • No new users enter the flow.
  • Active users in all versions stop at their current stage.
  • You cannot resume or edit the flow later.
You can still duplicate the flow after you stop it.

Switching between versions

When you switch between versions, the following happens:
  • If the current version is not saved, you will be asked if you want to save the changes. If you choose not to save, the version will not be retained, and all the changes will be discarded.
  • When you switch versions after saving (but the saved version is not published), you’ll be notified of the same with the following alert beside the version selector. Save_Options.png

Logs

With the possibility of editing a published flow comes the question What are the changes made, Who made the changes, and when. The following logs will help marketers answer the above questions both for a Version and across multiple versions of a flow:

Version Logs

Version logs are available for the versions of the Flow in the draft state and answer the above three questions to a version. You can access the version logs by clicking the View Changes label at the top ribbon (Flow details section) of the page above the Flows canvas. The following details are available in the version logs:
  • Unsaved - Details and Dates are available in this section. You can see the details of the changes made to the version listed. Click on the change listed, and you will be shown the node/stage where the change was made, as illustrated in the image below.
  • Saved- User, Details, and Date are available in this section, as shown below. Also, you can see the details of the changes made to the version.
VersionLogs.gif

Audit Logs

Audit logs are available for all versions of the Flow. They contain the following information for each version:
  • Version - This field indicates the version name of the Flow.
  • Status - This field indicates the status of the version.
  • Details - This field contains information about whether the version was published and the list of changes made, has saved changes with a list of changes made, and so on.
  • User - This field contains information about who made the most recent edit to the version of the Flow.
  • Date - This field contains information about when the most recent edit to the version happened.
AuditLogs.gif

Finding users who entered a Flow Version

After you create a new version, you might want to find users who have entered the new version and compare their performance with respect to an older version of the same flow. You can create a segment with all the users who have performed the User entered flow event with the Flow Id Attribute value being the flow-id of your flow, with the Flow Version Name attribute as the particular version name (For more information, refer to finding the version name for a Flow. Segmentation.png