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 while the already existing users in the previous flow will continue to move ahead within that version only.
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:
- 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.
-
- Once you've made 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:
Action Description View changes Lets you view the version logs. Delete It lets you delete the current version. Once deleted, the version cannot be recovered. Publish Let's you publish the current version and retire the currently active version of the Flow. Save Allows you to save the changes to the current version of the Flow. Duplicate It lets you duplicate the current version of the Flow.
Note: A duplicate flow of the current version will be created. However, the duplicated Flow will not contain all the versions of the Flow being duplicated. The duplicate Flow will only have the information contained in the current flow version being duplicated.
-
How does limiting user entry work across Versions?
The user entry limits are defined at the flow level. So at any point, the Limit will be decided based on the latest defined value in the Active Version.
For example:
- If the Limit was defined to be 1 in Version 1 and was changed to 2 in Version 2:
- All users who entered once in Version 1 will be able to enter Version 2 once more if they satisfy the entry criteria. While users who never entered Version 1 will be able to enter Version 2 twice at max.
- If the Limit was defined to be 10 in Version 1 and was changed to 2 in Version 2:
- All users who entered more than or exactly twice in Version 1 will not be able to enter Version 2 at all, as they have already met the limit even if they satisfy the entry criteria.
- While users who have never entered will be able to enter Version 2 twice, and users who have entered once in Version 1 can enter Version 2 once more if they meet the criteria.
When is a new version created?
The following actions will lead to the creation of a new version:
Flow Element/Settings | Actions that will lead to the creation of a new version |
---|---|
Audience |
|
User Entry Conditions and Limits |
|
Conversion Goals |
|
Other Flow Settings |
|
Action Stage |
|
Conditions (Check User Attribute/ Has done event/Conditional split) |
|
Controls (Wait for/till, Goto, Intelligent Path Optimizer (IPO), A/B Split) |
|
info |
Note
|
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.
-
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.
-
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.
-
Finding users who entered a Flow Version
Once 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.