How good is Journey Builder?
When you think of working with Salesforce Marketing Cloud you typically think of Journey Builder. Over the years the tool for creating visual marketing automation flows became the main module in Marketing Cloud. At the same time other ways of sending messages in SFMC lost their relevance. Although it is possible to get Marketing Cloud without Journey Builder in Basic and Pro editions, I wouldn’t recommend any customer to do so. If you look at the developments of the latest releases, you quickly realize that Salesforce continues to expand this component as a central piece of Marketing Cloud. So one should assume that the Journey Builder is the marketing automation tool of the next few years. But is that really the case? What are the strengths and weaknesses of Journey Builder? Are there already better alternatives to it? To put it in a nutshell, how good is Journey Builder? These are the questions I want to address in this article.
1. Journey Builder Capabilities
At this point I don’t want to explain every detail of Journey Builder and how to use it. If you are interested in an introduction I recommend this post by DESelect or the Salesforce documentation. But I want to talk about the nature of Journey Builder.
In Journey Builder every contact is considered individually, even if the Journey only consists of sending one email in a single send journey. This results in some great abilities. Theoretically it is possible that each contact takes different routes at different times within the journey. Using the Data Designer in Contact Builder you can update the data that is available about your contacts while they are in the journey. This allows you to affect path decisions based on the most current information or even take a contact out of the journey if criteria don’t match anymore. In addition, the use of Data Extensions makes it possible to use various information in journeys and messages that can but don’t need to be contact related. Let’s have a look at the different types of Journey Builder Entry Sources and Activities.
Beside a Data Extension there are other ways to get contacts into a journey. You can use Audiences from Cloudpages, Audience Builder or other Salesforce Solutions like Audience Studio (DMP), Customer 360 Audiences, Sales Cloud or Service Cloud. But also from Google Analytics 360 or any other tool using the API. So the entry into a journey can be done in real time, not only when it is activated or scheduled. That is really nice, especially when you look at many other marketing automation tools that only support a part of these functions.
The main channel in Salesforce Marketing Cloud is email. This is due to the beginnings of Exacttarget (the company and e-mail marketing platform that Salesforce bought and turned into the foundation of Marketing Cloud) but also to the technical possibilities of the channel. Over time more outbound channels like SMS, In-App- and push messages were added. In addition you can already use the messaging service LINE. WhatsApp support is announced for this year with no precise release date, yet. For most Marketing Cloud users that’s a great selection already. But there is more. Custom activities can be built by yourself to add more and alternative channels. We did this for using another SMS service and an external whitemailing service to send letters. So if you want to use a channel that is not available in Marketing Cloud by default this is the way to send any information from a journey to your endpoint.
Another strength of the Journey Builder are the many possibilities in building and controlling different paths or let’s say “Customer Journeys”. I try to summarize it in three categories, Wait Activities, Splits and Joins. The Wait Activities wait until a specific time or event. The event again can be the change of a contact attribute or an external trigger. You can even use Einstein Send Time Optimization to wait until the best moment to trigger the next message.
Especially at the beginning the variety of split activities probably is a bit overwhelming. There are simple splits like dividing by contact attributes and randomly by percentages. The attributes or any other information can also be expanded by custom splits. This allows you to pull the criteria for a decision from any external system. Then there are engagement splits which you can use to define the following actions depending on the reaction to a message. If that’s not enough you even have smart splits that are using AI capabilities of Einstein and automated A/B testing in the Path Optimizer. I personally don’t know any better tool in this part.
Updates at a customer record are often used as a substitute to know what happens in a journey. The update contact activity enables you to write any information into a data extension. I often used it to document a recipients participation or the current position in a journey. Why this might be useful you can read in the section about reporting and analytics. However, for journey performance Salesforce recommends to avoid too many update activities.
Sales & Service Cloud Activities
I like to say “Salesforce loves to work with Salesforce”. You will experience that in these awesome activities. If you are using one of the Salesforce “core” clouds (Sales, Service, Community, CPQ, B2B Commerce, …) and Marketing Cloud Connect this is a great feature set between those tools. You can make updates on contacts and leads, create tasks and cases and opportunities. What really outshines almost any other tool integration I know is that you aren’t limited to those standard objects. You can work with about every object that has a relation to Leads, Contacts or even Users. This is extremely powerful because it lets you create seamless communication and business processes across clouds and organizational teams without a single line of code. It really is drag & drop and works out of the box when Marketing Cloud Connect is set up. Combine this with Salesforce Lightning Flow and you can trigger almost any process using this connection. Unfortunately it is obviously limited to Salesforce CRM but I would not be surprised if Salesforce comes up with Mulesoft activities in the future. Mulesoft is the Salesforce integration platform that already has powerful connectors to other platforms like SAP or Microsoft which might empower integrated out of the box Journey Builder activities for external platforms.
Goal and Exit Criteria
As the name suggests Goal Criteria are used to tell Journey Builder that the goal of the journey is met by a contact. With this information it is not only possible to messure the success of the communication but also to stop it for the contact if required.
Exit Criteria on the other hand enable you to take a contact out of a journey when the contact disqualifies from it. A common use case for Exit Criteria is the change of permissions or customer intend. When I have recurring communication in a journey related to a topic or product the customer is interested in, I use Exit Criteria when I recognize that the customer lost interest or withdrawed the permission to contact him or her.
Miscellaneous Journey Builder Functions
There are some more activities that are available with other Salesforce tools and functions. For example the Advertising Studio activities to use contacts in advertising audiences and campaigns. Another function is Behavioral Triggers. These are almost not worth mentioning. They only work with the collect tracking code of Einstein Recommendations to contact customers who abandon unpurchased items or services. The recommendation feature itself does only work with predefined scenarios. So in previous projects we decided to use a more powerful recommendation engine instead. Hopefully Salesforce will put some more work into this. Then Behavioral Triggers could also become really exciting.
Other helpful features are the pause function and journey versions. Pausing allows you to hold a journey for up to 14 days and let the contacts continue on the exact same spot of the journey they were at pausing. With journey versions you can update a journey and start a new instance without stopping the old one. So you do not only make sure that the contacts that are already in a campaign can end it in their version but you also do not lose the journey configuration and need to do it again.
With all these functions a creative and experienced marketer is able to create complex and powerful communication flows.
2. The Challenging Parts
Now that we know the capabilities of Journey Builder it is time to have a look on the bad side.
As mentioned in the beginning Journey Builder handles every contact individually. Besides the benefits of this it also results in some performance limitations. In my experience it sometimes took a few minutes until a journey started running after activation. Especially when you try to start a journey with 100.000 records and more at a time it sometimes gets quite slow. Or it is running and the events were displayed only after a few minutes. Here you get the result for using a tool that is not made for batch processing as such. And no one wants to differentiate the creation between campaigns for few and many records. Salesforce has noticed this development and improved the performance of Journey Builder in October 2020.
|Key figure||Old throughput value (up to)||New throughput value (up to)|
|API Entry||1M per hour||7M per hour|
|Injection from Data Extension||3M per hour||12M per hour|
|Email Sending||2M per hour||4M per hour|
|Custom and Sales/Service Cloud Activities||depending a lot on the endpoint||increased to five times|
You find tips how to increase the journey performance in the Salesforce documentation: https://help.salesforce.com/articleView?id=mc_jb_optimize_sending_in_journey_builder.htm&type=5
Journey Builder is a tool to create communication flows for single contacts. This results in the fact that it can not work with any data that is not contact related or do some fancy data processing. So most of the time you need to use Automation Studio before or after the contacts were used in Journey Builder. For example to import data in Marketing Cloud, to prepare it for the journey or to collect reporting data. As mentioned the update contact activity is not suited for big data writing processes.
Similar to the previous part is the inability of Journey Builder to use one-to-many relationships. A common use case for these relationships is when one customer has many contracts, purchases or products. In this case it is not possible to create a Decision Split like “If the customer has purchased product 123 in one of his orders, take path A” because Journey Builder can’t check all related records. The way to solve this problem is to prepare the data for Journey Builder and to remove these one-to-many relationships in the journey data. This can be done with an Automation but prevents Journey Builder from being used as a standalone tool.
To be honest: Journey Builder is not really a tool for realtime or instant communication as of now. Salesforce is working on improvements but let me explain: When you insert contacts into a journey they are processed. Sometimes this can take up to 3-5 minutes. For time critical messages this can be a show stopper. If you want to send a message really fast, use the Transactional Messaging API. In my tests it was able to deliver messages in a few seconds after it was triggered. In this case the event that triggers a journey or a message still comes from another tool. One for example can be the Interaction Studio, a module for Marketing Cloud. After the message was sent up to now Journey Builder can not react directly to the opening or click in a message. Engagement Split activities check after a specific time the engagement status and reacts to it. It is not able to act directly when the engagement is done by the user. This would need another service or the channel that triggers the next step. In my experience most of the time when a realtime process was really useful or needed it was possible to get the trigger from another source like a webpage or app. Nevertheless, having more realtime in Journey Builder would still be a good enhancement.
Limited Channel Integration
I already listed the main channels Journey Builder supports. There is email, SMS, LINE and push messages. Using the connections with Social Studio, Advertising Studio, Sales Cloud, Service Cloud and other tools you can enhance the messaging opportunities even more. And if the channels given by Salesforce are not enough there even are custom activities. This is a lot.
The only problem I would have is that no channel can be integrated like the email channel and it gets complicated as soon as you try to add non-Salesforce channels. You don’t have the same amount of features and data views available for the other channels. So you have to build your own using the resources of Marketing Cloud or other tools. There are also almost no out of the box connectors to software that is not owned by Salesforce. If you look at other tools that focus on one channel like mobile push there are more capabilities than Journey Builder offers. If you use another CRM system than Salesforce you do not have the activities for leads, tasks, cases and other CRM functions. However Salesforce offers many different channels and is continuing to improve them.
Reporting and Analytics
Now we come to a big weakness of Marketing Cloud and Journey Builder. Logging, Reporting and Analytics. Let’s start with the messages. There are reporting functions in Marketing Cloud and simple dashboards in Journey Builder. But I do not like to use them because they are not really customizable so that they fit my needs. In this case I prefer to build my own reports using data views, SQL and emails or cloudpages. The article How to create a customizable Email Performance Report as a Marketing Cloud App details how this can be done.
Unfortunately I don’t expect reporting and analytics to improve much in the future. With Datorama Salesforce offers another cloud for this purpose (Marketing Analytics) and obviously wants you to use it.
Logging and Monitoring
In Journey Builder you find the Journey History tab. It allows you to see the activities that happened for every contact in a journey. The problem is, you can not export them. There is no data view of activities a contact went through or errors that occurred. You can only access Journey Builder activities using an undocumented API call. But this only gives you back a limited number of records and as it is not officially supported it’s generally not a good idea to use it in any live process.
Logging and in consequence the documentation of many errors is only accessible by support which can be extremely annoying. So we ended up creating our own reports in many projects by using Update Activities, SQL and scripts. This is an area where Marketing Cloud needs to improve drastically if it wants to justify ranking in the enterprise market.
Campaign Planning and Metadata
Unlike some other marketing tools SFMC has no module where you can plan journeys in a summary overview. So for example if you have multiple journeys related to one business topic you want to see in one dashbaord or you want to note metadata to journeys like goals, runtime, budget, related people, target groups, tasks and more information this is not covered by Salesforce Marketing Cloud out of the box. Therefore you will need another tool or build something on your own. Until now Marketing Cloud is not suited to be used for the initial planning of campaigns as well as holding all the campaign related information.
3. The Alternatives
So after all this explanation, what are the alternatives? Are there better tools on the market?
As always there is one answer I can give to this: It depends. The question is more: How do you want to work and what are you expecting from Salesforce Marketing Cloud and Journey Builder. The Marketing Cloud is like a craftmans toolbox with various functionalities. For some use cases a craftsman would probably have special tools that can be used to work even more precisely. With Marketing Cloud it is quite the same. You have many marketing tools in one place and for most tasks this is what you need. Many use cases can be handled with out of the box features or a little bit of configuration.
If you have particularly high demands for a single function you can use a specialised tool together with or instead of Marketing Cloud or Journey Builder. For example a customer data platform (CDP) for audience selection or another tool for sending messages in channels that are not available in Marketing Cloud. In between there could still be Journey Builder for campaign orchestration and to trigger the message delivery. If you only need a tool for one job (like sending a few SMS every month) without the other Journey Builder or SFMC capabilities, you should think about starting with a smaller solution.
In the end many customers decide to go with Marketing Cloud in order to be prepared for the future. Because on the one hand you can scale well with Markeitng Cloud and on the other hand you can be sure that Salesforce is constantly developing the tool further.
To put it in a nutshell, Journey Builder like Marketing Cloud in general is not a out of the box one size fits all solution for everyones needs, wishes and workflows. There are some marketing use cases that are not or only partially covered by Marketing Cloud itself. But Salesforce offers additional modules and software for marketers. There is the AppExchange store where you can find extensions for Marketing Cloud and there is always the possibility to connect external software and services via API.
Many tools on the market offer similar visual designers for communication workflows but in my experience Journey Builder is the most powerful one suited for marketers. I have not seen any tool that offers so many options in creating a communication orceven business process and sending messages to different channels with its out of the box functionalities alone.
There are weak spots I wish Salesforce to improve since I know Marketing Cloud. But there are also many things they improved and enhanced over the years. So if you look at what Journey Builder wants to be, a tool for personalized journey orchestration and execution over different channels, it is awesome. If you need a high end marketing solution that covers all the needs of a mid-size or big company, you probably will need more tools or Marketing Cloud modules.
As I said Marketing Cloud with Journey Builder in it is like a toolbox. You do not have the best tool in every category. But you have a solution for many different demands.
What is your opinion about Journey Builder? What could be improved and what are the features you find in no other tool? Let me know in the comments.