Before you start: you need CRM contacts with email tracking, page visit tracking, and form submission data. If activity isn’t being logged, there’s nothing to score.
Two Approaches
Rule-based
Hand-tuned point system. Transparent and adjustable.
AI-based
Let the AI score based on context. Less tuning, less transparency.
Option 1: Rule-Based Scoring
- Point System
- Workflow
Start with a simple additive model:
A score of 0-40 is cold, 41-74 is warm, 75+ is hot.
| Signal | Points |
|---|---|
| Visited pricing page | +20 |
| Opened last 3 emails | +15 |
| Submitted a form | +25 |
| Company size > 50 employees | +10 |
| Role is Director or above | +15 |
| Responded to last cold email | +30 |
| Unsubscribed | -50 |
| No engagement in 30+ days | -20 |
Step 1: Create the Workflow
Add a Schedule trigger
Set to every hour for near-real-time scoring, or daily if you don’t need fast turnaround.
Step 2: Compute the Score
Add a Code action (JavaScript) or a series of Condition steps. The code action is usually cleaner:Step 3: Route Hot Leads
Option 2: AI-Based Scoring
If you don’t want to hand-tune rules, let the AI do it. Add an AI Action in the workflow:lead.score.
AI scoring works well when you have rich context per lead. It’s weaker when you need to explain why a score is what it is — reps sometimes want that transparency.
Displaying Scores in the CRM
Show scores in your CRM contact list with color coding:- 75+ (Hot) — red/green badge, pinned at top
- 41-74 (Warm) — yellow badge
- 0-40 (Cold) — gray
Using Scores in Sequences
Route different messaging based on score:- Hot: immediate personal outreach from a rep, demo CTA
- Warm: educational content, case studies
- Cold: nurture sequence, drip campaign
Verify It Worked
- Pick a test lead with rich activity data
- Manually trigger the workflow
- Confirm the
scorecolumn updated - Check the stage moved if score crossed 75
- Confirm the Slack notification fired (if applicable)
Troubleshooting
Scores seem random or unchanging
Scores seem random or unchanging
Event tracking isn’t firing. Verify page visits, email opens, and form submissions are being logged — visit a pricing page yourself, then query the events table. If nothing appears, fix tracking first. Scoring without data produces noise.
Too many 'hot' leads and sales is overwhelmed
Too many 'hot' leads and sales is overwhelmed
Threshold is too low. Raise the hot cutoff from 75 to 85 or 90. Alternative: tighten the point weights — visiting a pricing page once shouldn’t count the same as visiting five times over two weeks.
Sales says the hot leads don't close
Sales says the hot leads don't close
The scoring model doesn’t match your ICP. Pull 50 closed-won deals and 50 closed-lost deals. What signals differ? Rebuild the rules to emphasize those. Firmographics often matter more than behavior — company size and role are usually the strongest predictors.
Missing signals in the query
Missing signals in the query
You’re scoring on what you have, not what predicts. Add more tracked events (LinkedIn visits, document views, video watches) and more CRM fields (industry, tech stack, last funding round) to enrich scoring.
Slack notifications for the same lead multiple times
Slack notifications for the same lead multiple times
Only notify on transition to hot, not on every workflow run for a hot lead. Check the previous score:
What’s Next?
Cold Email Sequences
Route leads into sequences based on their score
CRM Contacts
Enrich leads with firmographic data for better scoring