Skip to main content
ethical sustainable seo29 Apr 2026·5 min read

Automated Lead Scoring for B2B with HubSpot and n8n

Dragoș-Adrian BuhoiuDragoș-Adrian BuhoiuFounder · Digital Ecosystem Architect
Automated Lead Scoring for B2B with HubSpot and n8n
FEATURED.IMG
Automated Lead Scoring for B2B with HubSpot and n8n

Without scoring, sales cherry-picks the wrong leads. This guide covers building a composite fit + intent scoring model in HubSpot, extending it with n8n enrichment, and routing hot leads automatically.

The Lead Quality Problem Every B2B Sales Team Has

Your marketing team generates 200 leads per month. Your sales team has capacity to meaningfully engage with 40. Without a systematic scoring system, the sales team cherry-picks based on brand name recognition or position title — missing high-intent SMEs from unfamiliar companies and wasting time on enterprise-branded leads who are just browsing.

Automated lead scoring solves this: a systematic, consistent, data-driven score that reflects each lead's likely fit and intent — so your sales team focuses on the 40 leads with the highest probability of converting, not the 40 with the most impressive email domains.

The Lead Scoring Model Components

A production B2B lead score combines two dimensions:

Demographic/firmographic fit score (who they are): How well does this lead match your ideal customer profile (ICP)?

  • Company size (employee count or revenue range): +20 for ICP range, +10 for adjacent range, 0 for out-of-range
  • Industry vertical: +15 for primary ICP verticals, +8 for adjacent verticals, 0 for non-ICP
  • Job title/seniority: +20 for C-suite/VP/Director, +12 for Manager/Head of, +5 for Analyst/Specialist, 0 for unidentifiable
  • Geographic market: +10 for primary markets, +5 for secondary markets, 0 for unsupported markets
  • Technology stack alignment: +10 if company uses tools your product/service complements (detected via Clearbit or Builtwith enrichment)

Behavioral intent score (what they're doing): How much intent are their actions signaling?

  • Pricing page visit: +25 (highest intent signal)
  • Case study or testimonial page visit: +15
  • Competitor comparison page visit: +20
  • Demo booking page visit (even if they didn't book): +30
  • Blog/resource consumption (3+ articles): +10
  • Email open rate: +5 per campaign email opened
  • Form submission with detailed message: +15
  • Webinar attendance: +12

Composite score = fit score + intent score

  • 60+: Hot (immediate sales follow-up)
  • 35-59: Warm (enrollment in nurture sequence, sales outreach within 48 hours)
  • Under 35: Cold (marketing nurture only, no sales outreach yet)

Building the Scoring System in HubSpot

HubSpot's native lead scoring (HubSpot Score property) handles demographic signals well. For behavioral scoring, HubSpot's contact activity tracking (page views, email engagement) feeds the score automatically.

Setting up HubSpot lead scoring:

  1. Navigate to Contacts → Lead Scoring
  2. Configure positive attributes: company size criteria, job title patterns, page view events (pricing page, case study pages)
  3. Configure negative attributes (factors that reduce score): invalid email domain, company size outside ICP, low engagement over 60 days
  4. Set HubSpot to re-calculate scores dynamically as new activities occur

Limitations of HubSpot's native scoring: No external enrichment data integration (HubSpot Score only uses HubSpot-native data), no custom scoring formula control, limited conditional logic.

Extending with n8n:Custom Scoring Logic

For more sophisticated scoring (incorporating enrichment API data, multi-source behavioral signals, or complex conditional logic), build the scoring engine in n8n and write the result back to a custom HubSpot contact property.

n8n lead scoring workflow:

Trigger: HubSpot contact activity webhook (fires when a contact has a new activity — form submission, email open, page view)

Step 1: HubSpot node → Get full contact record (all properties)

Step 2: HTTP Request → Clearbit Enrichment API (company size, industry, technology stack)

Step 3: Code node → Apply scoring formula:

const contact = $json.contact;
const enrichment = $json.enrichment;
let score = 0;

// Fit scoring
const employeeCount = enrichment.company?.metrics?.employees;
if (employeeCount >= 50 && employeeCount <= 500) score += 20;
else if (employeeCount > 500) score += 12;

const title = contact.jobtitle?.toLowerCase() || '';
if (['ceo','cto','coo','founder','vp','director'].some(t => title.includes(t))) score += 20;
else if (['manager','head of','lead'].some(t => title.includes(t))) score += 12;

// Intent scoring
const pricingVisits = contact.hs_analytics_num_page_views > 0 ? 25 : 0;
const emailEngagement = (contact.hs_email_open || 0) * 3;
score += pricingVisits + emailEngagement;

const tier = score >= 60 ? 'hot' : score >= 35 ? 'warm' : 'cold';
return { ...contact, leadScore: score, leadTier: tier };

Step 4: HubSpot node → Update contact properties: lead_score and lead_tier

Step 5: IF node → If tier changed to 'hot': Slack notification to sales, assign to senior sales rep via HubSpot workflow

Sales Routing and Alert Configuration

Lead scoring value is only realized when it drives action:

HubSpot workflow triggered by score threshold:

  • Contact reaches Score ≥ 60 → Enroll in "Hot Lead" sequence: assign to sales rep, create deal in "Meeting Booked" pipeline, send internal Slack alert
  • Contact reaches Score 35-59 → Enroll in "Warm Nurture" email sequence, schedule a follow-up task for sales in 48 hours
  • Contact's score drops below 20 after 60 days → Move to "Re-engage" list, suppress from active sales pipeline

At Verdant Mindset, we design and implement B2B lead scoring systems for agencies and professional services. See our automation and growth services.

INITIATE.SEQUENCE
// 01_OF_01
// Next Step

Scale Your Ecosystem

30-min discovery call — no cost, no pitch. We audit your digital architecture and deliver a clear operational plan.

  1. 01Short message with your business context
  2. 02Reply within 24h with a discovery-call proposal
  3. 03Operational plan + scope recommendation
Schedule a Discovery Callor browse resources
24h replyZero spamDirect with the founder

FAQ.PROTOCOL

Frequently Asked Questions

Run a retrospective analysis: take your last 50 closed-won deals and score them using your model. If the model doesn't identify these as high-scoring leads, recalibrate the weights. Also run the model on lost deals and stale leads — they should cluster in the lower score bands.
At minimum: company name (for enrichment), email (for behavioral tracking), and a reliable source of behavioral data (website visits via HubSpot tracking pixel). Without these three, scoring accuracy is too low to be actionable.
Quarterly for growing businesses; every 6 months for stable businesses. Recalibrate whenever: your ICP changes, your product/service offering changes, or your close rate data shows the model's predictions are diverging from actual conversions.
Yes — transparency about the score and the factors that contribute to it increases buy-in from sales teams. A score with no explanation is a black box that reps will distrust. Show them which activities raised the score and which signals are most strongly correlated with closed deals.
Not directly — it improves efficiency of the existing team. The same team can handle 50-100% more pipeline with scoring-driven prioritization vs. manual evaluation. This translates to either more pipeline with the same team, or lower customer acquisition cost.