How to Set Up Marketo Behavioral Lead Scoring Batch Campaigns

Lead scoring in Marketo requires fine-tuning, and quite a deal of it. Marketo behavior score is really a proxy variable for sales-readiness, and it varies depending on your website, content, emails, and all other interactions. The first time you set up your behavior scoring, it won’t be perfect. The problem is that redoing behavior score is extraordinarily difficult to do out of the box, since traditional methods mean that you lose all of the previous lead score and have to start over from scratch (since they’re all triggered, and not easily applicable to the past behaviors for rescoring). BUT there’s hope for us yet!


How to redo Marketo lead behavior scoring:

The goal is to build up a nexus of requestable scoring campaigns that can be triggered by running a single batch campaign, as poorly modeled below:


Let’s dig into some incremental logic with the web activity campaign example.

Before you set this up, you have to ask yourself how granular you want the scoring to be, and how much time you need to invest in creating these third-level campaigns. If you look at your website metrics and people are visiting your website every single day for 90 days, then you could be looking at 90 separate smart campaigns doing exactly this. OR if you see that 90% of leads visit 20 times, and there’s a long-tail of the rest going up to 200 visits, you can do something like below. Your ideal setup depends on your situation.

Here’s the formula for how the third-level smart campaigns under “Web Activity” should be structured:

“Visited web page (is any)” & “Min number of times = x” -> Increase score by (value of [this number of times minus the number lower below it] visits)

Here are example smart campaigns at this third-level:

  • Filter “Visited web page (is any)” & “Min number of times = 20” -> Increase score by (value of FIVE visits)
  • Filter “Visited web page (is any)” & “Min number of times = 15” -> Increase score by (value of FIVE visits)
  • Filter “Visited web page (is any)” & “Min number of times = 10” -> Increase score by (value of FIVE visits)
  • Filter “Visited web page (is any)” & “Min number of times = 5” -> Increase score by (value of TWO visits)
  • Filter “Visited web page (is any)” & “Min number of times = 3” -> Increase score by (value of ONE visit)
  • Filter “Visited web page (is any)” & “Min number of times = 2” -> Increase score by (value of ONE visit)
  • Filter “Visited web page (is any)” & “Min number of times = 1” -> Increase score by (value of ONE visit)

Each of these should be requestable by a Marketo flow action, and the second-level requestable campaign (in this case, Web Activity) should request each of these.


I don’t get it. Does that math work? Let’s say a person visited 10 times in the last 90 days (because 90 days is all you get with storing web activity history in Marketo!).
1st visit = +1
2nd visit = +1
3rd visit = +1
5th visit = +2
10th visit = +5
Total visits = +10

Excellent! The math DOES works! This is also what I meant regarding how specific you want data to be. In this case, someone who visits 10 times will have the same behavior score as someone who visits 14 times. Ask yourself—how much of a difference do these visits make in this prospect’s sales-readinesss? If it makes a difference, spend some time and add more detail. If it doesn’t, spend your time elsewhere.


How to scale your Marketo behavioral scoring campaigns:

Let’s face it, you’ll have to refactor your behavior scoring again. It always happens. You may put it off because it’s so difficult to do, but you know you need to do it at some point. Just do it right the first time, and then you can hone in your scoring whenever you want, with ridiculous ease.
  • Make all of the second-level campaigns and third-level campaigns requestable by a Marketo flow action. Create a first-level master behavior rescoring campaign that is a batch campaign. Make the second-level campaigns requestable, and have their flow steps be to request the third-level campaigns underneath them. Make the third-level campaigns all requestable by a Marketo flow step. This makes it so you just have to run that single batch campaign once to go through all of those individual page scoring campaigns. One campaign, entire database rescored based on behavior.
  • Tokenize those scoring values. If you’re doing a more-than-one score (e.g., jumping from the 5th visit to the 10th visit) to save setup time, add multiple separate flow steps with each one increasing the score by a token, not a hardcoded number of the final product. In extreme cases of something like twenty times, create a separate token that does the multiplication for you. NOTE: This also means you have to be wary of your folder and token hierarchy. Make an encapsulating folder to contain both the triggered scoring and the batch rescoring campaign, so the tokens apply to both instead of just the triggered scoring. Don’t just put the tokens in the triggered behavior scoring program!

And there you have it. When this is set up, you can now run a single campaign, the Master Behavior Rescoring Campaign on the first level, to change all of your database from their behavior that is stored. Remember that some activities are only stored for 90 days, so this isn’t necessary bullet-proof data from all time, but it’s leaps and bounds better than refactoring your behavioral score, starting everyone at 0, and having them move from there.

Pin It
  • Daniel Crespo

    So just to clarify, when setting up these campaigns, do you mean set up an operational program, then within that set up a smart campaign that has the special flow step that is “Request Campaign”. And then from their make the requested campaign, “Web Activity” (for example)? Then use the same flow step within “Web Activity” to request the third level?

    For some reason, whenever I click the drop down in any of these smart campaigns in the Flow steps where I’m supposed to select the subsequent smart campaign, it is blank and won’t let me select any campaigns at all.


    • Edward Unthank

      Hey Daniel:

      Yes, that is what I mean!

      In order to make the campaigns request-able, you need to add a trigger to the smart list of the smart campaign—”Campaign is Requested, source is Marketo Flow Action”—and that will make it available as a request-able campaign.

      The idea is to daisy-chain all of these together from one original batch campaign, in the most intuitive organization for future use/future editing.

      – Edward