Most sales teams already have an informal scoring system: it lives in a rep's head. They know that a demo request from a company with 50+ employees is hot, and a newsletter signup from a personal Gmail is not. The problem is that this knowledge doesn't scale, doesn't get documented, and disappears the moment that rep leaves. Multi-step lead scoring just means writing that intuition down as numbers -- points for form fields, points for page visits, points for email engagement -- and letting the CRM tally them automatically so reps only get pinged once a lead crosses a real threshold, not every time someone fills out a contact form.
Start with your intake or contact form, since it's the richest source of firmographic signal you'll get. If you're building forms that feed directly into pipeline stages, it's worth reading through our guide on client intake forms that build your CRM first -- the field structure you choose there determines what you can score here. In ViibeStack, open the lead object's scoring rules and assign weights per field value, not per field. Company size 50-200 employees might be worth 15 points, while 1-10 employees is worth 2. A budget field with 'over $10k' checked might be worth 20 points, while 'just researching' is worth 0 or even -5. Job title matters too: 'VP' or 'Director' picks up 10 points, 'Student' or 'Other' picks up nothing. The key discipline here is being honest about your actual win data, not your aspirational ICP -- if your last 20 closed deals were mostly 20-50 person companies, don't weight the 500+ employee field higher just because it looks impressive.
Form data tells you who someone is. Page visits and email engagement tell you what they're actually doing, which is a better predictor of timing. Set up page-visit scoring so that a visit to your pricing page is worth more than a visit to your blog -- say 10 points versus 1. A visit to a comparison page like Buy vs. Build vs. ViibeStack suggests someone is actively evaluating, which deserves its own bump. Repeat visits within a short window (three site visits in 48 hours) should add points on top of the base visit score, since velocity is often a stronger signal than any single action. For email, don't just score opens -- score clicks separately and weight them higher. An open is passive; a click into a demo or Templates page is active interest. Replies should score highest of all and probably should just trigger an alert on their own, threshold or not, since a human reply overrides any point system.
Once fields and behaviors are weighted, the threshold is the number that decides whether a rep gets notified. Don't guess this in a vacuum -- pull your last 50-100 closed-won and closed-lost deals and calculate what their scores would have been under your new rule. If closed-won deals cluster at 60+ points and closed-lost deals cluster below 40, your threshold sits somewhere in that gap, probably 50. Also build in decay: a lead that hit 55 points three months ago but has gone quiet shouldn't sit in a rep's hot queue forever. A simple decay rule -- subtract 5 points per week of inactivity -- keeps the list honest and stops reps from wasting calls on leads that cooled off.
In ViibeStack, this lives as a workflow automation rule attached to the lead or contact object. Create a trigger that fires on any of the three event types -- field update, page visit, email engagement -- and have it recalculate a running score field on the record. Then add a second rule: when score crosses your threshold (not just 'when score is above X' on every event, which would re-fire constantly), assign the lead to a rep and post a notification. Use a status change rather than a raw number check so the rule only fires once per crossing, and add a cooldown so a lead that dips below threshold and pops back up the same day doesn't spam the rep twice. If your team also runs nurture sequences, this pairs well with the setup described in Automated Follow-Up Sequences in ViibeStack CRM -- score crossing threshold is a natural trigger to pull a lead out of a drip sequence and into a rep's queue.
Before turning the rule loose on live leads, run it backward. Pull records for your last quarter or two of deals, feed their historical form data, visit logs, and email activity into the scoring model, and see where each one would have landed. You're checking two things: did the model correctly rank your real winners above your real losers, and did any won deals fall below your threshold (a sign your threshold is too high or a weight is off). It's common to find that a field you assumed mattered -- like industry -- barely correlates with close rate, while something you underweighted, like number of pricing page visits, turns out to be a strong signal. Adjust weights, rerun the backtest, and only then turn the rule live. Check the results periodically in Analytics & Reporting to see whether scored leads are actually converting at a higher rate than unscored ones were -- if they're not, the model needs another pass, not a discard.
Lead scoring tools bolted onto a separate marketing platform usually break down at the handoff -- the score lives in one tool, the rep works in another, and by the time the alert reaches a human it's stale. Because form data, page visits, email engagement, and the rep's pipeline all sit in the same CRM, the score updates and the notification fires in the same system the rep already has open. That's a meaningfully different experience than exporting MQLs from a marketing tool into a spreadsheet and hoping someone checks it.