Benefits of Modular Flows
With a product as extensible as Moments, there are an infinite number of possibilities when creating a flow to manage your communication process.
This flexibility makes it easy to create highly complex flows that can contain a lot of logic. Your flow might contain goals, segmentation rules, have multiple messaging channels and have many actors interacting with the flow at different steps. However, without proper care, the flow can easily grow too large, cause a lot of admin overhead, and may even lead to performance issues in the long term.
"But my flow needs to be complex because my process is complex?!" we hear you say. That is fine; Flow can handle the complexity you need. The solution is to build modular flows.
Building modular flows is the practice of taking large, complex flows and splitting them into smaller connected flows. Think of it as a big map of all user journeys connected to each other. By building modular flows there is no longer a single place where you need to update things for better user experience and experimentation, but many smaller stories that can be evolved individually while still being connected to each other seamlessly.
Read on to learn why building modular flows is best practice, understand when and how to build modular flows in Moments, and also see some examples to give you some inspiration.
Before Getting Started
You must have an Infobip account to use the flows in Moments. Log in or register for an account.
Why Build Modular Flows
There are many benefits to building modular flows:
Complex flows have many elements with lots of dependencies. This makes modification, troubleshooting, and flow administration a slow and challenging process. You need to ensure that any changes you make are accurate and do not unintentionally impact other parts of the flow. Furthermore, should you need to troubleshoot a problem in your flow, or even remember how it works after a long time away, it can become a very time-consuming checking all relevant elements and re-learning the entire flow just to make a fix.
Sometimes you may even want to copy only a small part of your flow rather than the entire flow, such as when you are looking to optimize a particular element of your flow. With modular flows, it is much more efficient to copy a smaller flow rather than taking a copy of the entire complex flow.
When you make a change in a large flow you risk unintentionally impacting the whole flow. Use modular flows to limit the risk to a smaller subsection of the flow.
More Granular Reporting
With complex flows that have many branches it is not always easy to garner useful analytics data because it is not clear on which branch the goal is achieved. Using smaller flows mean much more targeted campaigns and events. This makes it easier to analyze results of each campaign and then act on the results so you can continually improve your communication processes in a more focused way.
A Bird's-Eye View of Flow Management
Have you ever noticed that you are configuring the same sequence of actions in different flows; duplicating flows again and again, just because you do not want to repeat it manually? Well, we have a better recipe for you. Build the sequence once and simply end all your flows by sending the audience to the single flow where it is needed. By adopting a bird's-eye view of your flows, your perspective changes you will see where there are inefficiencies in large flows and then be able to rectify them.
Finally, complex flows with many elements may have a negative impact on system performance. Smaller flows run faster and give you a much better user experience.
Build Modular Flows
This section can be split between creating new flows and adapting your existing flows. Both require some planning to ensure that the flow is simple, functional, and scalable for your longer-term growth plans.
Create New Modular Flow
When creating new flows think long term. Create each flow with a defined goal. If you have multiple goals then it suggests you may need to build a modular flow that works for each separate goal.
Try and limit your flow to a small number of elements. If your flow has more than 100 elements then you will need to split the flow. The number of elements you add to your flow will increase at a very fast rate especially when you segment your audience and split the actions in the flow following segmentation rules. If you see that the journey for each segment requires a dozen or more extra steps then consider creating a separate flow for it.
Ultimately, be kind to your future self. Ask yourself what will happen if you or a colleague need to edit the flow in 6 months time? Will it be easy to remember exactly what the flow does?
There are a number of ways modular flows can be built and used in Moments:
- Use the Add to Flow element (Coming Soon) to send the user to a different flow - this bespoke element can be used in conjunction with the Existing Flow trigger to move users between flows
- Using tags - Add a tag at the end of the flow, start a new flow with the Change in People Profile trigger and then remove the tag in the modular flow
- Use Product events, Entered and Exited Flow, and the People Real-time event trigger
Adapt Existing Flows
Review your existing flows and evaluate if they are too complex. In general, it will be obvious that a flow is too complex. Your flow may have groups of elements not connected to each other or you may spend long periods of time troubleshooting or making minor edits.
If your flow is too complex with a lot of branches then you should start thinking about where to make the split. Logically you would create separate flows when there is a branch or separate goal in the complex flow. Once identified you should then create a new flow for the branch and connect the smaller modular flow to the master flow using Add to Flow.
Take a look below to an example of modular flows in action.
Here is a simple example of modular flows in action. One follows modular flow best practices, and the other does not follow best practices.
Both examples are part of a webshop introductory mail campaign for fictional MyCompany. The flow begins with a welcome email being sent to the end-user, a pause of 24 hours, and then a second email is sent. We then segment the audience by the customer's interests (automotive, science, and food) and then send a final bespoke email targeting the customer's interests.
In the poor practice example, you will see that the send email elements are added to the same flow for each segment. This is not ideal. There are now multiple email elements that will make it difficult to gather accurate email analytics for each segment.
In the good practice example, you will see that we created three additional flows for each interest type (i.e. Car audience engagement flow, SciTech audience engagement flow, and Food audience engagement flow). These flows would include individual send email elements. Add the three modular flows using the Add to Flow element so that the user is sent to the appropriate engagement flow depending on their interests when they reach that step in the main flow. As soon as the user enters the new flow the email would be sent but you can now gather valuable analytics for each segment.
Where the primary flow is when we segment audience and then separate bespoke engagement flows start for the user.
If have any difficulties, please get in touch with support for assistance.