A 5-person sales team at a Jaipur SaaS reseller was getting roughly 200 inbound leads a week into a Google Sheet and working them top to bottom — newest first, no priority. The two best-fit enterprise leads of the month sat untouched for 4 days while reps chased tyre-kickers. We built a no-code lead-scoring pipeline in n8n over a weekend: it scores every new lead on firmographic rules, writes the score back to the Sheet, and pings Slack the moment a hot lead lands. Here are the exact rules and the full build.
200/wk
Inbound leads, unprioritised
1 weekend
Build time, no code
7 nodes
In the n8n workflow
₹0
Software cost (self-hosted n8n + free Sheets)
## The answer in 60 words
Score each inbound lead on simple firmographic rules — company size, industry fit, budget signal, role seniority — and total the points. In n8n, a Google Sheets trigger fires on each new row, a Code or Set node applies the rules, the score writes back to the Sheet, and an IF node sends hot leads (score above your threshold) to Slack. Build time: a weekend. Cost: effectively zero on self-hosted n8n.
## Why this matters now
A small sales team's scarcest resource is rep attention. When every lead looks the same in a flat spreadsheet, reps default to "newest first" or "easiest first," and the high-value leads — the ones a relationship and a follow-up would convert — get buried. Lead scoring is not new; what is new is that a 5-person team can now stand up a working scoring pipeline in a weekend with no developer and no per-seat CRM. n8n is an open-source workflow automation tool you can self-host for the cost of a small server. We have built this exact pattern for several SMBs, and it consistently moves the needle on which leads get worked first. For a heavier-duty version that enriches leads from external data, see our [n8n + Apollo + HubSpot enrichment workflow](/blog/n8n-apollo-hubspot-lead-enrichment-workflow).
## What lead scoring actually is (definition first)
Lead scoring assigns each lead a number that estimates how well it fits your ideal customer and how ready it is to buy. You define rules — for example, +30 if company size is over 50 employees, +20 if the industry matches your best customers, −15 if it is a free-email address like Gmail — and sum them. Leads above a threshold are "hot" and get worked first. The rules encode the judgment your best rep already uses; you are just making it explicit and automatic.
Tip: Start with firmographic and demographic rules (who they are), which you can apply the instant a lead arrives. Behavioural scoring (what they did — opened emails, visited pricing) is more powerful but needs event tracking. For a first version, firmographic-only scoring delivers 80% of the value with 20% of the setup.
## The four signal categories worth scoring
🏢
Firmographic fit
Company size and industry. Does this lead look like the customers you already win? A 200-person firm in your best-fit sector earns the most points; a sub-10-person shop outside it earns negative.
👤
Role seniority
A director or C-level contact can say yes; an intern cannot. Score the buying power of the person who filled the form so reps spend their first calls on decision-makers.
💰
Budget and intent signal
A selected budget band or a high-intent form answer is the strongest predictor of a real deal. Weight these heavily — they separate browsers from buyers.
🚩
Spam and quality flags
Free or disposable email domains and obvious junk get penalised hard, so reps never waste a morning on a lead that was never going to convert.
## The scoring rules (copy and tune these)
Here is the starter rubric we shipped. Tune the points to your business — these are sensible defaults for a B2B SaaS reseller.
| Signal | Condition | Points |
|---|---|---|
| Company size | 200+ employees | +30 |
| Company size | 50–199 employees | +20 |
| Company size | Under 10 employees | −10 |
| Industry fit | Matches top-3 customer industries | +25 |
| Email type | Business domain | +15 |
| Email type | Free email (Gmail, Yahoo) | −15 |
| Role seniority | Director / VP / C-level | +20 |
| Budget signal | Selected "₹5L+" budget on form | +20 |
| Geography | Target metro (Bangalore, Mumbai, Delhi NCR) | +10 |
| Spam signal | Disposable email domain | −40 |
A lead scoring above 50 is "hot" and goes to Slack immediately. 25–50 is "warm" and goes into the daily review. Below 25 is "cold" and sits in the Sheet for nurture. These thresholds are a starting point — watch which scores actually convert over a month and adjust.
## The 7-node n8n workflow
📥
Google Sheets Trigger — fires on new row
🧮
Code node — apply scoring rules, total the points
✍️
Google Sheets node — write score + tier back to the row
🔀
IF node — is the score above the hot threshold?
🔔
Slack node — alert the team on hot leads
## The DIY walkthrough (runnable)
1
Set up your lead Sheet with the right columns
Your Google Sheet needs columns for the raw lead fields (company, size, industry, email, role, budget, city) plus two empty columns: Score and Tier. The form or tool that captures leads should append a new row per lead. Verify by adding a test row manually.
2
Add the Google Sheets Trigger in n8n
Create a new workflow, add the Google Sheets Trigger node, connect your Google account, and set it to fire on "Row Added" for your lead sheet. Set the poll interval to every minute. Verify by adding a row and confirming the workflow runs in the n8n executions log.
3
Add a Code node that applies the scoring rules
The Code node reads the new row's fields and totals the points per the rubric. It outputs the score and a tier (hot / warm / cold). This is the only "code" in the build, and it is plain rule-summing — no framework, no database. Verify by running the node on a test row and checking the score matches a hand calculation.
4
Write the score and tier back to the Sheet
Add a Google Sheets node set to "Update Row," matching on the row's unique ID, writing the Score and Tier columns. Now your reps can sort the Sheet by score descending and work the hottest leads first. Verify the test row's Score and Tier columns fill in.
5
Add an IF node for the hot threshold
An IF node checks whether Score is greater than 50. The true branch goes to Slack; the false branch ends quietly (warm and cold leads stay in the Sheet for the daily review). Verify by running one row above and one below the threshold.
6
Send hot leads to Slack with the details reps need
The Slack node posts to your sales channel: company name, score, why it scored high (the matched rules), and a link to the Sheet row. Reps see a hot lead within a minute of it arriving, with enough context to act. Verify a test hot lead lands in Slack correctly formatted.
7
Activate the workflow and watch it for a week
Turn the workflow on. For the first week, sanity-check a sample of scored leads by hand to confirm the rubric matches your judgment. Adjust point values where the score disagrees with what your best rep would say. Verify the executions log shows clean runs with no errors.
Tip: Keep the scoring logic in one Code node, not spread across five Set and IF nodes. When you want to tune a point value next month, you edit one place. We learned this the hard way on an early build where the rules were scattered across the canvas and every change risked breaking another branch.
## What you will need (prerequisites checklist)
- An n8n instance — self-hosted (free) or n8n Cloud
- A Google account with the lead Sheet, and Google Sheets API access enabled
- A Slack workspace and a channel for sales alerts
- A clear definition of your ideal customer (size, industry, role) to build the rubric
- A lead-capture source that appends new rows to the Sheet (a form, Zapier, or a webhook)
- One person who knows which leads historically converted, to sanity-check the scoring
## Common mistakes (each one hurts)
Symptom: "Every lead is scoring hot." Cause: the threshold is too low or the positive points are too generous. Fix: calibrate against last quarter's actual won deals. If 80% of leads are "hot," the label is meaningless. Aim for the top 15–20% to qualify.
Symptom: "Reps ignore the Slack alerts after a week." Cause: too many alerts, or alerts without enough context to act. Fix: only alert on genuinely hot leads, and include the company, the score, and why it scored high so the rep can act without opening the Sheet.
Symptom: "The score never updates when we change a lead's details." Cause: the trigger only fires on new rows, not edits. Fix: if you need re-scoring on edit, add a second trigger on "Row Updated," or run a scheduled re-score nightly.
Symptom: "Free-email leads are being penalised but some are real buyers." Cause: over-weighting the email-domain signal. Fix: in markets where founders use Gmail, soften the penalty. Scoring rules encode assumptions — check them against your actual customer base, not a generic template.
Symptom: "The workflow silently stopped running." Cause: an expired Google OAuth token or a renamed Sheet column. Fix: add an error-trigger workflow in n8n that pings Slack if any execution fails, so a broken pipeline is a notification, not a month of missed leads.
## When not to build this
Skip the n8n build if (a) you already pay for a CRM with built-in lead scoring you are not using — turn that on first; (b) your lead volume is under ~20 a week, where a human can simply eyeball priority; or (c) you have no agreement on what makes a good lead, in which case fix that conversation before automating it. Automating an undefined process just produces confident nonsense faster. This is the same caution we apply across our [AI automation](/services/ai-automation) work — the process has to be sound before you wire it up.
## Real example — the Jaipur SaaS reseller
The team's complaint was simple: "We are busy all day and still missing the good leads." We did not sell them a CRM migration. We built the 7-node n8n workflow over a weekend, wired it to their existing lead Sheet, and set the hot threshold at 50.
The change in behaviour was immediate. Hot leads now hit the sales Slack within a minute, with the company name and the reason they scored high. Reps started their day by working the top of a score-sorted Sheet instead of the newest rows. Over the first month, the two-enterprise-leads-buried-for-4-days problem disappeared — those leads now triggered a Slack alert the moment they arrived. The whole thing runs on their self-hosted n8n at no extra software cost.
Hrishikesh, our CTO, keeps a rule for builds like this: encode your best rep's judgment into the rules, then check the scores against real outcomes for a month. For teams that outgrow a Sheet, the same scoring logic feeds a full lead-management system like the one we built for
ChipMaker Hub. We have shipped variations of this for sales teams as part of our broader [n8n automation work](/blog/n8n-notion-slack-daily-ai-digest-replace-standup), and it is one of the fastest-payback automations a small team can adopt.
## FAQ
### Do I need to know how to code to build this?
Almost none. n8n is a visual, node-based tool — you connect boxes on a canvas. The only "code" is one small node that sums points per your rules, which is plain arithmetic. If you can write a spreadsheet formula, you can write the scoring node. We hand teams the node and they tune the numbers themselves.
### How is this different from using a paid CRM's lead scoring?
A paid CRM's scoring is great if you already use that CRM and have configured it. This n8n approach works directly on a Google Sheet with no per-seat licence and full control over the rules. For a small team not ready to commit to a CRM, it is the faster, cheaper path to prioritised leads.
### What is a good hot-lead threshold to start with?
Set it so roughly the top 15–20% of leads qualify as hot, then adjust against which leads actually convert. If everything scores hot, the alert is noise. Calibrate against last quarter's won deals rather than guessing.
### Can it score on behaviour, not just firmographics?
Yes, but behavioural scoring (email opens, pricing-page visits) needs event tracking wired into the Sheet or n8n. Start with firmographic scoring, which works the instant a lead arrives, then layer behaviour once the basics are paying off.
### Will it slow down or hit Google Sheets API limits?
For typical SMB volume — a few hundred leads a week — you are nowhere near Google's API limits. The trigger polls every minute. If you ever process thousands of leads an hour, move to a database-backed store, but that is well beyond where most small teams are.
### What happens if a lead is missing some fields?
Write the scoring node to treat missing fields as zero points, not an error. A lead with no company-size field simply does not earn those points. Never let a missing field crash the workflow — handle it gracefully so partial leads still get a score.
### Can I send hot leads somewhere other than Slack?
Yes. Swap the Slack node for WhatsApp, email, or a direct write to your CRM. n8n has nodes for all of them. The pipeline is the same; only the final notification step changes to whatever your team actually watches.
Want This Lead-Scoring Pipeline Built for Your Team?
We build and self-host n8n lead-scoring workflows for small sales teams — your rules, your Sheet or CRM, hot-lead alerts to Slack or WhatsApp. Typical build: one week, fixed scope. We hand over the workflow and a one-page guide so you can tune the rules yourself. Suitable for teams working 50+ inbound leads a week.
Book a 20-min Call
For a deeper enrichment-driven version, read our [n8n + Apollo + HubSpot lead-enrichment workflow](/blog/n8n-apollo-hubspot-lead-enrichment-workflow). Email contact@softechinfra.com and we will send the starter scoring rubric as a Sheet template before the call.