Journeys work hard for you—sometimes, a little too hard. 😅 Maybe you’re noticing a lot of users stuck in one tile, or some of your journey campaigns are sending more slowly than expected.
Here are some tips and tricks for making your journeys run as efficiently as possible.
In this article
Evaluating journey performance
It’s important to understand how to evaluate journey performance so you can determine whether there may be something you should do to improve it.
One way to see how a journey’s performing is to look at the user badge on a tile, like this one, which displays the number of users who are currently finished with that tile and are waiting to move on to the next one. A high user count might be a result of normal journey processing, or it might indicate there's something to address to improve a journey's performance.
When you see that users are waiting on a tile, consider the possible causes. For example, you may see this on a delay tile because users are waiting for the delay to expire. In other cases, if a significant number of users are added to a journey at the same time, you may just need to wait for the journey to finish processing the queue.
In the event that you see user counts that don’t decrease after refreshing the journey page, consider these other factors that might contribute to slower journey performance:
- The number of filter tiles in the journey
- How your filter tiles are set up
- The size of the lists you may be using in the Start or filter tiles
- Whether you're using static or dynamic lists in the Start or filter tiles
Here are some tips to keep your journeys running smoothly.
Add entry rules to the Start tile
It's really important to only add the users who should go through the journey (and no one else). One of the best things you can do to speed up your journey's processing times is to prevent ineligible users from entering the journey in the first place.
Instead of adding a filter tile right after the Start tile, set up Additional entry rules in the Start tile settings to prevent ineligible users from entering the journey.
This is much faster than adding ineligible users to the journey and then filtering them out afterwards.
Simplify your filter tiles
Filter tiles are incredibly powerful—but if they're not set up efficiently, they can take a lot of processing time and slow down your journey's performance.
Choosing the right comparator
When you add a filter to a journey, you'll want to pay attention to the types of comparisons you set up in your segmentation query.
There are six different options for setting up comparisons:
-
Is Set
: A value has been set for the field (the field is not blank) -
Equals
: The field must exactly match the value you select -
Does Not Equal
: The field must NOT match the value you select -
Starts With
: The field must start with a certain word or phrase -
Contains
: The field contains a certain word or phrase -
Matches Regex
: Compares the field to a regular expression (RegEx) to find every instance of the same value (including all formatting variations)
Some of these comparators work better than others for building efficient queries:
Use these | Avoid these |
---|---|
✅ Is Set | ❌ Starts With |
✅ Equals | ❌ Contains |
✅ Does Not Equal | ❌ Matches Regex |
For example, to search for users whose email addresses match a particular
domain, use the Equals
operator, like this:
Email Domain
Equals
domain.com
Don't use the Contains
operator. This query takes longer to run and could slow
down your journey performance.
Setting up event-based searches
Refining an event-based search (for example, searching for exactly 1 SMS open) adds to the intensity of your segmentation query. If you decide to do this, be strategic about how you set it up.
Let's say you want to search for users who have opened an email at least twice. Instead of setting up a query that checks for 2-5 opens, check for 2-infinity.
It may seem counterintuitive, but this is actually a shorter search—this tells Iterable to stop checking as soon as it finds 2 opens for a user. If you search for 2-5 opens, Iterable will keep searching until it can tell if the user opened the message 2, 3, 4, or 5 times.
Searching custom events vs. user profile fields
Segmentation queries that search user profile fields generally run faster than queries that search for custom events. When possible, set up queries to search user profile fields instead of custom events.
If you need to filter by a custom event, your segmentation query will run faster if you use the Only the event that triggers this journey option. If you select All user properties and events, your query will search every past event in your project, which may take longer.
Check what kind of lists you're using (if applicable)
If you're noticing slower performance than you expect in one of your journeys, it could be because of a list you're using in the Start tile or a filter tile. In the Start tile, you can select a list to add users to the journey (using the List Subscribe, List Unsubscribe, or Schedule entry source). And in filter tiles, you can check whether or not users belong to a particular list by searching for Contact Property > List Membership. If you're using a large or complex list in one of these places, it can impact processing times.
When you use Iterable's Segmentation tool, you can save your results as either a static or dynamic list.
Static lists include all users that match the segmentation query when the list is saved. Dynamic lists periodically refresh the results of the segmentation query, providing an up-to-date set of users. You can also build dynamic lists from other dynamic lists (this is called a nested dynamic list).
Just like filter tiles, dynamic lists are a powerful tool. But if your segmentation queries use overly complex search/filter logic, it can lead to performance slowdowns.
For optimal journey performance:
- Use static lists whenever possible.
- Avoid nested dynamic lists.
- Keep the segmentation queries that build your dynamic lists simple, especially for lists that will be used in journeys that run frequently. For example, if you have multiple groups of criteria in your segmentation query, remove any that may be repetitive.
To learn more about using dynamic lists in journeys, see Optimizing Dynamic User Lists.
Questions?
For help troubleshooting one of your journeys, see Journeys: Frequently Asked Questions or reach out to your customer success manager.
Comments
0 comments
Article is closed for comments.