This is a guest post from Steven Moody at Beachhead.io, a marketing technology consultancy. Steven’s weekly newsletter is a great read for marketing, technology, and deep thinking.
We recently worked with a high-growth technology startup to reengineer their lead routing program in Marketo. They wanted to quickly route leads but also lay the foundation to scale. This was important to them because they receive a high number of inbound leads that are not ready to buy, and they plan to grow from 3 to 30 sales reps quickly, so they need something that works now and also in a year.
We worked with them to understand their present and future requirements, discussed some of the tradeoffs they would need to make for scaling, and implemented a lead routing program that matched their needs.
Ultimately, this saved about 20 hours per week (960 man-hours/year) for their sales manager, who had spent much of his time just manually sorting through leads.
Below are the technical details that we hope can help other companies considering a lead routing program in Marketo.
The client wanted a program that would be easy to adjust and scale as they plan to grow from three to 30 sales reps within 2 years.
The Client Request
Initially, the client asked for a lead routing program that split up US States with Annual Revenue and buying intent as criteria.
In a discovery workshop, we determined this routing was too complicated for their needs, and suggested a simpler program. First, they did not want to collect the data for location, beyond State and Country. Second, they did not see a large difference in buying behavior or average contract value between large companies and smaller companies. This discovery led to a much simpler routing system.
Questions you should ask when defining your territories:
- Do you have the data you need to make this lead routing program effective?
- If your primary sales are by phone, does location matter more than industry and company size?
- Are you prematurely optimizing territories through micro-splits of the territories?
- How will your lead distribution change, and will this make the territories unfair?
After reviewing the above questions, we settled on a revised lead routing that looked like the following:
Territory Rules:
- ACME’s objective is to successfully route leads according to two different criteria: Location, Interaction.
- ACME has 6 different sales reps covering the US, they divided the country into 3 different territories, Western, Central, Eastern.
- ACME has 2 sales reps per territory, a Business Development Rep (BDR) and an Account Executive (AE).
- The BDR will receive all new leads.
- The AE will only receive leads who made a Sales Contact Request (SCR).
- The 6 sales reps are West_BDR, West_AE, Central_BDR, Central_AE, East_BDR, East_AE.
Planning the Lead Routing System in Marketo
This routing program is decentralized (can start from multiple entry points). When a program is designed in this way, careful attention must be paid to ensure the entry points don’t overlap, or leads will be subject to a race condition. Here, the distinction is set between SCR and !SCR (Not SCR). The blue is the area we selected.
Here is the process chart for a new lead given the above conditions. We can end up in 6 outcomes depending on how the Lead acts.
Implementing the Lead Routing System in Marketo
Create a Program “Lead Routing”, then create three smart campaigns as shown.
- Route New Leads – this listens for any new lead and then calls either Not SCR or SCR depending.
- Route Leads Not SCR – if the Lead did not fill out an SCR form, then it will be routed to the BDR based on the territory.
- Route Leads SCR – if the Lead did fill out the SCR form, it is fast tracked to the Account Executive based on the territory.
Routing New Leads Campaign
Route Leads Who Did Fill Out a Contact Form (SCR)
Let’s handle the leads who fill out a SCR form. This may happen to a lead who already exists in the database, so we also need to use Fills Out Form as a trigger.
The lead is selected if he fill out the form “Contact Us” or is added to the list “Lead Routing…” AND his Lead Owner is not (already) one of the Account Executives.
These filters create the distinction between the SCR and Not SCR requirement for the routing system.
Then assign the lead to an Account Executive according to the value in the field “State”.
This time we set up a limit for the lead to run this Smart Campaign. Once a lead is assigned to an Account Executive by the routing campaign, he should only be assigned to a different person manually so the AE concerned is aware of the change and can pass on useful informations. This is why we set up the limit to “once” in the Schedule, so the lead will be assigned to an AE the first time one of the trigger is activated and will not run through the campaign if he matches the trigger criteria one more time.
Route Leads Who Did Not Fill Out a Contact Form (Not SCR)
Then, we want to take care of the leads who do not fill a SCR form.
The Lead may only continue if it is true that the lead never filled a “Contact Us” form, even when the Campaign is Requested.
It is possible to use different triggers such as Lead is Created to route the Lead immediately when it is created.
In this case, the lead will be assigned to a User in SFDC depending on their State value. We can also include choices based on the location detection by Marketo (Inferred State) in the same way that we did with State.
Within the flow steps, it’s important to note the first choice applies. To avoid a race condition here, careful consideration must be paid to the order of the choices. For example, there will be leads who declare their State as California, but have an inferred State of Texas due to a VPN. Should they be routed to the territory for California or Texas? The same applies to the Country and Inferred Country fields.
The Schedule defines how many times the lead will run through this Smart Campaign. In this case it will only happen one time since the lead can only be created one time (the system will alert that the email address already exists).
Testing the Routing System
Before launching your lead routing program, you should test it thoroughly to make sure leads go where you expect. Marketo typically doesn’t provide a sandbox environment like Salesforce, so these steps will enable you to test all scenarios before activating the new program. A fairly simple routing system will require a few key tests. For our more complex system, it is worth following the testing scenarios.
Step 1: Create a spreadsheet of example leads with every scenario that matters.
We built 2 lists of 52 leads each. One group of leads are for Lead Routing Not SCR and the other for Lead Routing SCR.
The columns for your CSV will look a lot like this.
- An ID Number for each lead. This is just for your needs, do not upload this column!
- A name describing the example, here State_Territory_Status. Which gives us Lead_CA_w_NotSCR for a lead from California who did not fill an Sales Contact Request.
- Same procedure with the email address: team+7_CA_w_NotSCR@beachhead.io so with only the email address you’re able to judge the accuracy of the results. Note that you can use “+” sign to create a new virtual email that goes to the same box.
- Country does not influence our routing, but is a part of the location and may be important in global routing.
- State is the key element to route leads by territory. You can see the first to leads as example of edge cases we want to monitor to make sure our routing is flawless.
- And finally your expected Lead Assignment. In your CSV, add a column to define who you expect your Lead to route to. This will make it easier to review later.
Step 2: Notify Sales that they may see these test leads.
Remember to make their names and Titles as clear as possible, but avoiding triggering any other “Test Suppression Lists” that might cause a sync to be missed because Title=Test. The reason is you want the flow to work fully so you can see the results in the CRM too.
Step 3: Add a Brake to the Campaign Flows to ensure only your leads go through right now.
Later you will remove this brake to fully activate the system.
Step 4: Verify the results next to each Lead, row by row.
Step 5: Fix any Errors
Step 6: Confirm with Sales if needed.
Step 7: Confirm with Sales when the routing will go live.
Step 8: Delete the Leads from the system.
Migrating to the New System
Once you’ve validated your new lead routing works as expected, here are the general steps to replace an old routing program with your new routing program:
- Plan the change for the weekend, if possible. Even with testing, things can go wrong, and you’ll be better able to handle updates if the volume of new leads is lower
- Set aside 1-2 hours of uninterrupted time to make the changes, just in case.
- Create reports for potential bugs. For example, if you have five sales reps and ten total salesforce users, your smartlist might be all new leads assigned to someone who isn’t a sales rep. If you require a 2-digit state value for leads to route, then create a report of new leads this week by state. These reports will make it easier to spot issues as the routing goes live.
- Deactivate the current routing campaigns (5 minutes)
- Activate the new routing campaigns (5 minutes)
- Notify the stakeholders of the updates and share instructions to submit bugs.
- Monitor the reports for issues. We recommend checking at least once the first two hours, then the first two business days, then once per week for the first two weeks.
Create a report to get people who are assigned to someone who’s not a sales rep:
Here’s a report to see leads who don’t have a State information matching one of the 50 US states.
We can Setup to view daily, weekly, monthly etc. You can start daily for the first week and if everything is working well, then move on to weekly.
Triage Lead Routing Bugs
When bugs happen, we’ve found most clients want to share a Salesforce link to the lead record. You will also need the lead’s email address and expected Lead Owner. Be sure that you also have Lead Owner history turned on in the Lead/Contact record history, otherwise it will be hard to see how things unfolded.
Most routing errors are due to Sales not informing Marketing Ops of territory and people changes. Occasionally an error may be cause on Marketo’s end because a smart list used CONTAINS instead of IS, or OR instead of AND. So be careful during setup!
Beachhead.io invites you to download the complete guide.
Trask Rogers says
We’ve been using Marketo for lead routing and it has really helped manage the intricacy of our routing process today. One thing I’d add is that there is sometimes a lag between a lead being created in SFDC and when all of the specifications outlined by Marketo ‘catch up’. An example is that we set all new web leads to have a lead status of Open. The default lead status in SFDC is ‘New’. So I’ve seen some instance where the lead is pushed, assigned correctly, but the status is set to New until the next time Marketo syncs over.
Josh Hill says
Hi Trask, yes, that’s an interesting delay I don’t see much. Could you adjust the default Lead Status? I suppose you could add a batch or another campaign to force it if the lead isn’t updated quickly enough.