As a marketing automation administrator, you’ve probably run into Race Conditions more than a few times in your career even though you may not have heard of this term before. The symptoms are:
- You get that dreaded email or phone call from your Salesforce Administrator that leads are being misrouted into Salesforce as key lifecycle data were not populated before they were synced over.
- Alerts are going to a generic default mailbox instead of a salesperson as an owner was assigned properly.
- Your lifecycle stages are being overwritten as your lead qualifies for multiple stages in your RCM.
- There is talk in your office that “Marketo is broken”!
If these scenarios sound all too familiar to you, you have a Race Condition.
What is a Race Condition?
Now before we jump into the remedies, a Race Condition is defined as:
“When a successful outcome of a process (e.g. a smart campaign) is dependent upon some other process being completed first, but those processes occur asynchronously and in an uncontrolled way.”
As you may manage Marketo instances that span across multiple countries or even globally, you will inevitably have hundreds of trigger smart campaigns, wait steps, smart lists, and batch campaigns operational at any point in time.
This creates an environment where you can easily lose control of your automation processes. But luckily for us, Marketo provides many methods to control our Order of Operations.
1. Keep Your Flow Actions in a Single Smart Campaign
This may sound obvious, but it is always important to keep it simple. A single smart campaign is the most concise and effective method to deploy a campaign in Marketo.
The order operation is guaranteed to flow sequentially and is sufficient for most campaign scenarios.
But this is assuming that your program is not dependent on other program processes to occur concurrently and is unsuitable for most advanced logic cases (which I will get into later on).
2. Wait Step
Ahhh, the wait step. It is the main culprit of most Race Conditions and the source of many wrong data pushes and pains.
But wait steps are perfectly relevant in most cases if they are used just to pause for a specific period of time. The problem arises when wait steps are used so that other parallel processes take place before moving on, since wait steps offer no guarantee if other processes are not time-bound.
It is common to see administrators program long wait steps for more buffer, but this slows down your entire automation. Every little bit adds up.
3. Request Campaign
This is my personal favorite. Ever had the new member of the team that came from other Marketing Automation Platforms say that “X” platform has much better campaign-builders because of flowcharts?
Request Campaign is Marketo’s answer to flowcharts offered by more visual campaign-builders in competitor Marketing Automation platforms such as Pardot and Eloqua.
Now don’t get me wrong, visual flowcharts are fantastic campaign-building tools.
But Marketo’s Program structure offers stronger scalability and quicker deployment through cloning, and Request Campaign makes it super easy to reference global campaigns nested in other folders.
Request Campaign can be used in a wide variety of situations, and I build my Lifecycle models using the “daisy-chain” method to ensure that key parameters of a lead are checked and populated before pushing them to Salesforce.
4. Static List
Static Lists are the quick and dirty way to deploy one-off campaign and processes.
The great thing about Static Lists is that they can be used as a source of truth – once added to the list, a Static List is a record of the lead activity that stays as long as the lists exist.
The most direct use case of a static list is to use it to trigger another campaign.
In scenarios where leads do a “fast-track” and directly fill up contact forms halfway through nurture but marketing has not “MQL-ed” the lead or assigned an owner, we can use the static list to ensure a sales rep is attached to the lead before pushing into Salesforce.
5. Program Statuses
Program Statuses are not often thought as methods for the order of operations control in Marketo.
But consider this – the next time you create an operational campaign in Marketo for your lead scoring model, why not create a Channel to control lead scoring thresholds to help assign leads into their respective lifecycle stages instead?
Above is an example of implementation by Justine from the Marketo Nation Community.
Creative ways of using Program Statuses means more tools are at Marketo Administrators’ disposal to ensure quality lead nurturing and routing for their organisations.
Tell us about some of the ways that you’ve overcome Race Conditions in your Marketo Instance!