Have you ever had a lead routed to the wrong sales rep because it hadn’t finished being run through new lead processing by Marketo? Or perhaps your “Wait” step that you thought was definitely long enough…just wasn’t quite long enough and you sent a “Demo Request” alert email to no one because the sales owner hadn’t sync’d back to Marketo?
Yeah…I’ve been there 😑 BUT, with some nifty system processor fields, we can cut out some of the unreliability between the two systems and make it more streamlined.
What are “System Processor Fields”?
**Disclaimer, I made up the name ^^ so they could be called something else, anyone know? lemme know**
System Processor Fields are fields (obv lol) that are shared between both Marketo and Salesforce that are primarily used to indicate when an operational process in one system has completed. Therefore, a dependent process (in the other system) can begin processing, thus bringing more asynchronous processing harmony to our tech stacks.
These are not only exclusive to Marketo and Salesforce, but can be rolled out to really any tool in your stack where you have a process that is dependent on some other process in another system finishing.
What do they look like?
I currently have 3 system processor fields in use between Marketo & Salesforce. They are all boolean fields and are set to “false” by default. Here are the ones I’m using below and how I define them in our stack:
- “Marketing Processing Completed”- Used to indicate that all new lead processing has completed in Marketo (enrichment, scoring, normalization, lifecycle sorting, etc…)
- “Sales Processing Completed”- Used to indicate that a lead has been received and successfully created in Salesforce.
- “Routed to Sales Rep”- Pretty self explanatory, but used to indicate that a lead has been routed to the corresponding sales rep (gone through territory routing) in Salesforce and no longer owned by the sync user or a queue.
Preventing Leads From Being Incorrectly Routed
Here we are using the “Marketing Processing Completed” system processor field. It’s appended to the very end of our new lead processing that happens in Marketo, right after a lead is sorted into the correct lifecycle stage. This “change data value” step indicates to Salesforce that new lead processing has completed.
Then, in the criteria for our lead routing tool (we use LeanData but you can bake this into however you route leads in Salesforce), we’ve set the trigger to only route leads whose “Marketing Processing Completed” field is set to true.
BOOM, Marketo is now telling Salesforce (and LeanData) when a lead has finished processing in Marketo, and now Salesforce (LeanData) can begin routing. So even if the lead syncs over to Salesforce before marketing processing is finished, it won’t be routed until Marketo gives it the go-ahead. 🤘🏻
Having a Back Up Sync, Just In Case It Fails The First Time
The MOPs worst nightmare….a hot lead just came in through the website, something fails, and it falls through the tech stack cracks and never makes it to sales. Sike, not anymore by using system processor fields.
Here, we use the “Sales Processing Completed” system processor field to give Marketo a heads up when a new lead has been received in Salesforce. We use LeanData again (but you can build this into whatever is routing your leads in Salesforce) to tag every single new leads that processed, setting “Sales Processing Completed” = true.
Then, in Marketo, we have a back up sync built in to our new lead processing operational program. At the end of all new lead processing, leads enter a 15 minute wait step. If at the end of the wait step, “Sales Processing Completed” ≠ true, it requests a backup sync campaign which manually syncs the lead over to Salesforce.
No more hot leads falling through the tech stack cracks ™️ (I’m trademarking “tech stack cracks” by the way, just made that up now and sounds sweet)
Sales Alert Emails Going To…..No One
Last, but certainly not least…removing those pesky “Wait” steps from your sales alert campaigns that are seemingly just never long enough. Nothing like a hot lead alert going to no one.
Here, we are using the “Routed to Sales Rep” system processor field.
**This field is baked into our lead routing tool (LeanData) and is set to true anywhere in our routing flow that a lead is assigned to a sales rep and not a marketing owned/nurturing queue**
Here’s your Tl;DR version:
- Demo Request program adds new leads to a “holding tank” operational list in Marketo
- Lead syncs over to Salesforce and our lead routing tool sets “Routed to Sales Rep” = true
- Sales Alert operational campaign waits until “Routed to Sales Rep” = true syncs back from Salesforce and then sends the alert.
Confused? Here, I gotchu with some screenshots below 👇🏻
Step 1: First, we have to create a couple operational lists in Marketo as “holding tanks” to single out leads that we want to send alerts to sales.
Here are a couple of examples of the “holding tank” lists we use:
Step 2: Great! Now that we’ve got those built, we need to add an “Add to List” flow step in each of our demo request programs, free trial programs, MQL programs, etc. Therefore we have a way of triggering alert emails to only leads who have taken the desired action.
Awesome, now the lead is just chilling in the “holding tank” list waiting to be sync’d over to Salesforce, routed to a sales rep, thus having the system processor field “Routed to Sales Rep” set to true.
Step 3: Have Salesforce (or whatever lead routing tool you use, we use LeanData), update set the “Routed to Sales Rep” field to true whenever a lead is routed to a sales rep (not a marketing owned queue/nurturing queue, has to be the sales rep)
Step 4: The final step is the alert campaign itself, here’s what it looks like:
Smart List: Has 2 triggers & 2 filters
- Added to List- This is used for existing leads who are already assigned to a sales rep. That way, if they request a demo and are added to the “holding tank” list, the alert will be sent right away because the “Routed to Sales Rep” field will already = true.
- Data Value Changes- This is exclusively for new leads. This alert campaign will NOT fire immediately when the lead is added to the “holding tank” list because it hasn’t sync’d over to Salesforce OR been routed to a sales rep (thus having the “Routed to Sales Rep” field set to true). Therefore, the lead will remain in the holding tank and the smart campaign will only fire once the Salesforce tells Marketo that the lead has been routed to a sales rep (via “Routed to Sales Rep” = true)
Pretty simple, it sends the alert and removes the lead from the list.
The finished product is a completely asynchronous sales alert system that no longer relies on “Wait” steps. Ahh nothing like Marketo and Salesforce harmoniously talking back and forth 😎
Wow…you made it all the way to the end. Thanks for reading! Hopefully you learned something or maybe you didn’t….in that case, thanks for reading my Marketo ramblings for a couple minutes 😅 Back to your scheduled LinkedIn scrolling 👋🏻