Marketing Tool Stackby Amit Gupta
← Learn

How to Build a Lead Scoring Model in Marketo

To build a lead scoring model in Marketo, create separate demographic and behavior score fields, drive each with trigger and batch smart campaigns that change the score, surface points in a scoring token, set an MQL threshold, add a decay program for inactivity, and sync the score and MQL flag to your CRM.

Plan your score fields

Before touching a smart campaign, decide which fields hold your scores. Marketo ships with a single Person Score field, but a maintainable model splits the signal into at least two custom score fields: Demographic Score (fit: title, industry, company size) and Behavior Score (engagement: page views, form fills, email clicks, event attendance). The default Person Score then acts as the combined total that drives qualification.

Why separate fit from engagement

Splitting fit and engagement tells you why someone qualified. A high demographic score with a low behavior score is a great-fit account you haven't activated. The reverse is an engaged but poor-fit contact you may not want to route to sales. Keeping them apart also makes decay and troubleshooting far cleaner, because you only ever subtract from behavior, never from fit.

The build, step by step

The whole model is assembled from smart campaigns that fire a Change Score flow step. Build it in this order:

  1. Create the score fields. Add custom Demographic Score and Behavior Score number fields in Admin → Field Management, and keep Person Score as the running total.
  2. Agree on a point scale with sales. Workshop which attributes and actions earn points and how many, before you automate anything. Use modest, round numbers so the model stays readable.
  3. Build demographic scoring as batch campaigns. Use batch (or data-value-change trigger) smart campaigns that add points for good-fit attributes and subtract points for disqualifiers: for example, +10 for a target job title, −20 for a free-email domain or a student role.
  4. Build behavior scoring as trigger campaigns. Create trigger smart campaigns on actions such as Visits Web Page, Fills Out Form, Clicks Link in Email, and event check-in, each adding behavior points. Weight high-intent actions (pricing page, demo request) far higher than passive ones (one email open).
  5. Maintain the combined total. Whenever Demographic Score or Behavior Score changes, mirror that change into Person Score so the total always reflects both halves, or compute Person Score as the sum.
  6. Cap and de-duplicate where needed. Use smart-campaign qualification rules (for example, "each person can run through once every 24 hours") so a refreshing visitor can't inflate their own score.
  7. Set the MQL threshold and decay (covered below), then test with sample leads before turning anything live.

Using a scoring token

A scoring token is a program token (typically a number token, {{my.token}}) that stores the point value for an action in one place, so every smart campaign references the token instead of a hard-coded number. Define the value once at the program or folder level and reuse it across campaigns.

Why tokens beat hard-coded points

When the value lives in a token, you re-weight an action everywhere at once by editing a single token, with no hunting through dozens of Change Score steps. Local tokens also let a child program override a default value when one campaign really needs a different weight, which keeps the global model consistent while allowing controlled exceptions.

Setting the MQL threshold

The MQL threshold is the combined Person Score at which a lead is handed to sales. There is no universal number. Set it so the leads crossing it match sales' real definition of "ready," then validate it against conversion data. Use a trigger smart campaign that watches Score is Changed and, when Person Score reaches the threshold, stamps an MQL flag, sets the lifecycle stage, and timestamps the moment.

Validate the threshold, don't guess it

Pick a working value, then watch your MQL-to-SQL conversion rate over a few weeks. If sales rejects most MQLs, the bar is too low; if great leads never trip it, the bar is too high. Treat the threshold as a dial you tune against downstream conversion, not a fixed constant.

Adding a decay program

A decay program prevents stale engagement from keeping leads permanently qualified. Build it as a recurring batch smart campaign that finds people with no meaningful activity for a set window and subtracts behavior points so they gradually fall back below the MQL threshold. Decay only the behavior score, since fit doesn't expire.

A simple decay pattern

A common approach removes a chunk of behavior points after a period of silence. For example, when a person has had no qualifying activity (no web visit, form fill, or email click) for 30 days, identified with a "Not Was [activity]"-style smart list filter using a date constraint. Run the batch on a recurring schedule (often weekly), and keep the deduction small enough that one quiet stretch nudges a lead down rather than wiping their score. For a deeper treatment, see the lead scoring decay guide.

Syncing the score to your CRM

For scoring to drive routing, the score and MQL signal must reach your CRM. With the native Salesforce or Microsoft Dynamics sync, Marketo writes the lead score to a mapped field automatically, so map Person Score (and, if useful, the demographic and behavior fields) to CRM fields and confirm the integration user can update them.

Sync the signal, not just the number

Sales acts on the qualification event, not the raw integer. When a lead crosses the threshold, have the same trigger campaign set the MQL flag and lifecycle stage and, where appropriate, create or assign the record so it lands in the right queue. Always include a timestamp for when the lead became an MQL. It's what lets you measure handoff speed and conversion later.

Frequently asked questions

Does Marketo have built-in lead scoring?

Marketo has no out-of-the-box scoring engine, but it ships with a Person Score field and the smart-campaign framework you need to build one. You construct your own model by creating trigger and batch smart campaigns that add or subtract points using the Change Score flow step.

Should demographic and behavior scores be separate fields in Marketo?

Yes. Create separate custom score fields, such as Demographic Score and Behavior Score, and keep the default Person Score as the combined total. Splitting them lets you see whether a lead is a good fit, actively engaged, or both, and makes troubleshooting and MQL routing far easier.

What MQL threshold should I set in Marketo?

There is no universal number. Set the threshold so the leads crossing it match sales' real definition of a qualified lead, then validate it against your MQL-to-SQL conversion rate. Start with a working value, watch downstream conversion for a few weeks, and adjust the threshold up or down.

How does score decay work in Marketo?

Decay is a recurring batch smart campaign that subtracts behavior points from leads who have gone quiet. A common pattern reduces the behavior score after a set period of inactivity, such as 30 days with no web visit or email engagement, so stale leads fall back below the MQL threshold over time.

Last updated: 14 June 2026