HubSpot + Slack: score leads and route the best
New leads show up, everyone gets excited, and then… they sit. Someone has to look them up, guess if they’re any good, assign them, create a deal, and ping the right person. That “quick check” turns into a daily mess.
This HubSpot Slack lead automation hits sales managers first because pipeline hygiene is on them. But marketing ops and RevOps feel it too, because handoffs get sloppy fast. The outcome is simple: better lead prioritization and faster follow-up without living inside spreadsheets.
This workflow scores and enriches each lead with AI, routes it into HubSpot, then alerts your team in Slack while logging everything to Google Sheets. You’ll see how it works, what you need, and where teams typically tweak it.
How This Automation Works
See how this solves the problem:
n8n Workflow Template: HubSpot + Slack: score leads and route the best
flowchart LR
subgraph sg0["Scheduled Lead Watch Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Scheduled Lead Watch", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Incoming Lead Webhook"]
n2@{ icon: "mdi:cog", form: "rounded", label: "CRM Lead Extraction", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Company Profile Enricher", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Financial Profile Enricher", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Lead Scoring Engine"]
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Lead Category Router", pos: "b", h: 48 }
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/hubspot.svg' width='40' height='40' /></div><br/>CRM Contact Generator"]
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/hubspot.svg' width='40' height='40' /></div><br/>CRM Deal Builder"]
n9@{ icon: "mdi:message-outline", form: "rounded", label: "Welcome Email Dispatch", pos: "b", h: 48 }
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/hubspot.svg' width='40' height='40' /></div><br/>Sales Follow-up Task"]
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Slack Lead Alert"]
n12@{ icon: "mdi:database", form: "rounded", label: "Pipeline Sheet Logger", pos: "b", h: 48 }
n2 --> n3
n2 --> n4
n4 --> n5
n5 --> n6
n1 --> n2
n6 --> n7
n6 --> n8
n6 --> n9
n6 --> n10
n6 --> n11
n6 --> n12
n3 --> n5
n0 --> n2
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n6 decision
class n12 database
class n1 api
class n5 code
classDef customIcon fill:none,stroke:none
class n1,n5,n7,n8,n10,n11 customIcon
The Challenge: Lead scoring and routing breaks under pressure
Manual lead qualification sounds manageable until volume spikes. One person checks LinkedIn, another hunts for company size, somebody else guesses deal value, and the “best leads” become whoever got noticed first. Then the follow-up slips into tomorrow, and tomorrow becomes “we’ll circle back next week.” Worse, your CRM ends up full of half-filled contacts and duplicate deals, so nobody trusts the pipeline report during the meeting that actually matters. It’s not just time. It’s momentum.
It adds up fast. Here’s where it breaks down in real teams.
- Leads get worked in the wrong order because there is no consistent scoring logic.
- Research happens in browser tabs, which means the context disappears the moment someone gets interrupted.
- HubSpot updates become “later” work, so contacts and deals are created inconsistently (or not at all).
- Slack notifications are either missing or noisy, so reps stop paying attention.
The Fix: AI scoring + HubSpot routing with Slack alerts
This workflow takes a new lead the moment it arrives (via webhook) or when your scheduled check runs, then builds a usable profile automatically. First, it pulls the raw lead details and enriches them using external research (think LinkedIn- and Crunchbase-style data sources). Next, an AI-assisted scoring engine evaluates the lead across about seven factors and assigns a score from 0–100 plus a grade like A+ or B. After that, routing logic decides what should happen: create or update the HubSpot contact, open a deal, add a follow-up task, and optionally send a welcome email. Finally, the workflow alerts the team in Slack and logs a clean row to Google Sheets, so your pipeline dashboard stays current without manual copy-paste.
The flow starts with either the scheduled monitor or an incoming lead webhook. Enrichment and scoring run in the middle, then HubSpot and Slack get the “actionable” output. Google Sheets becomes your lightweight audit trail and reporting layer.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you get 20 inbound leads on a busy day. If a rep spends maybe 10 minutes researching and another 5 minutes updating HubSpot and Slack, that’s about 5 hours of scattered work. With this workflow, you still “pay” for a quick review, but it’s closer to 2 minutes per lead because enrichment, scoring, deal creation, task creation, Slack alerting, and Google Sheets logging happen automatically. That’s roughly 4 hours back on a day when speed matters.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- HubSpot to create contacts, deals, and tasks.
- Slack to alert reps in the right channel.
- ScrapeGraphAI API key (get it from your ScrapeGraphAI dashboard).
Skill level: Intermediate. You’ll connect accounts, add API keys, and make a few judgment calls about scoring and routing rules.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
A lead arrives (or your schedule checks for new ones). The workflow can start in real time through a webhook, or on a timed schedule when you want periodic processing during business hours.
Lead enrichment fills in the missing context. ScrapeGraphAI nodes pull company and financial profile details so you’re not judging a lead purely by an email address and a job title. This is where you can add delays and guardrails to respect rate limits.
Scoring and routing decide what “good” looks like. A code-based scoring engine grades the lead (0–100 plus a letter grade), then an If router sends it down the right path. Critical leads can trigger stronger actions, while lower grades can be logged without distracting the team.
HubSpot + Slack + Sheets get updated automatically. The workflow creates the contact and deal, adds a follow-up task, optionally sends a welcome email, posts a Slack lead alert, and writes a structured row to Google Sheets for dashboards and audits.
You can easily modify the scoring criteria to match your ICP and route rules based on grade, region, industry, or estimated value. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Trigger Type
Set up both entry points so leads can be ingested on a schedule and via inbound webhook.
- Open Scheduled Lead Watch and set the schedule rule to run every
2hours (Hours Interval). - Open Incoming Lead Webhook and set HTTP Method to
POST. - Set Path to
new-lead-webhookso external systems can send leads to the workflow. - Confirm both triggers connect to CRM Lead Extraction.
Step 2: Connect CRM Lead Extraction
Pull new lead data from the CRM dashboard using the scraping prompt and URL.
- Open CRM Lead Extraction and set Website URL to
https://your-crm.com/leads/dashboard?status=new. - Keep the User Prompt as provided to return the structured lead schema.
- Credential Required: Connect your scrapegraphAIApi credentials.
- Ensure CRM Lead Extraction outputs to both Company Profile Enricher and Financial Profile Enricher in parallel.
Step 3: Set Up Enrichment and Scoring
Enrich each lead with company and financial intelligence, then compute lead scores and qualification details.
- Open Company Profile Enricher and set Website URL to
={{ 'https://www.linkedin.com/company/' + $json.company_name.toLowerCase().replace(/[^a-z0-9]/g, '-') }}. - Credential Required: Connect your scrapegraphAIApi credentials in Company Profile Enricher.
- Open Financial Profile Enricher and set Website URL to
={{ 'https://www.crunchbase.com/organization/' + $json.company_name.toLowerCase().replace(/[^a-z0-9]/g, '-') }}. - Credential Required: Connect your scrapegraphAIApi credentials in Financial Profile Enricher.
- Verify both enrichment nodes feed into Lead Scoring Engine.
- In Lead Scoring Engine, keep the JavaScript Code as provided to calculate scores, qualification, and sales actions.
Step 4: Configure Routing Logic
Route qualified leads based on category for downstream CRM, email, Slack, and logging actions.
- Open Lead Category Router and confirm the conditions use
={{ $json.qualification.category }}for Enterprise, High-Value, and Qualified. - Ensure Lead Category Router outputs to CRM Contact Generator, CRM Deal Builder, Welcome Email Dispatch, Sales Follow-up Task, Slack Lead Alert, and Pipeline Sheet Logger in parallel.
Step 5: Configure Output and Action Nodes
Finalize CRM records, outbound communications, and reporting actions.
- Open CRM Contact Generator and verify Resource is
contactand Operation iscreatewith the mapped fields like={{ $json.email }}. - Credential Required: Connect your hubspotApi credentials in CRM Contact Generator, CRM Deal Builder, and Sales Follow-up Task.
- Open CRM Deal Builder and confirm Amount is
={{ $json.enriched_data.financial.revenue_estimate || '50000' }}and Deal Name is={{ $json.company_name + ' - ' + $json.job_title + ' Deal' }}. - Open Welcome Email Dispatch and keep To Email as
={{ $json.email }}and Email Type ashtml. - Credential Required: Connect your sendEmail credentials in Welcome Email Dispatch.
- Open Slack Lead Alert and set Channel to your Slack channel ID (replace
[YOUR_ID]). - Credential Required: Connect your slackApi credentials in Slack Lead Alert.
- Open Pipeline Sheet Logger, set Sheet Name to
Processed Leads, and Document ID to your Google Sheet ID. - Credential Required: Connect your googleSheetsOAuth2Api credentials in Pipeline Sheet Logger.
Timestamp, Lead ID, Lead Score) or appends may fail.Step 6: Test and Activate Your Workflow
Run a full test to verify enrichment, scoring, routing, and outputs before activating.
- Click Execute Workflow and trigger either Scheduled Lead Watch or send a sample POST to Incoming Lead Webhook.
- Confirm CRM Lead Extraction produces lead data and that Company Profile Enricher and Financial Profile Enricher run in parallel.
- Verify Lead Scoring Engine outputs
lead_scoreandqualificationfields, then check that Lead Category Router fans out to all action nodes in parallel. - Check HubSpot for new contacts/deals/tasks, confirm a Slack alert was posted, verify the welcome email was sent, and ensure the Google Sheet has a new row.
- When results look correct, switch the workflow to Active for production use.
Watch Out For
- HubSpot credentials can expire or need specific permissions. If things break, check your HubSpot private app scopes (contacts, deals, tasks) in HubSpot first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Common Questions
About 30 minutes if your accounts and API keys are ready.
Yes, but you’ll want one “power user” to own the scoring rules. No coding is required for the basic setup, although the scoring node is easier to tune if you’re comfortable editing a few lines.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in ScrapeGraphAI and OpenAI usage costs, which depend on how many leads you enrich.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Start with the Lead Scoring Engine and adjust the weights to match your ICP (industry, company size, job title seniority, funding stage, and lead source are common). Then tweak the Lead Category Router so A and B leads create deals and tasks, while lower grades only log to Google Sheets or get a softer Slack alert. If you want different enrichment sources, swap the ScrapeGraphAI nodes for your preferred provider and keep the same scoring inputs.
Usually it’s missing permissions on the HubSpot private app or an expired token. Update the HubSpot credential in n8n, then confirm you granted access to contacts, deals, and tasks. If failures only happen during big batches, you may be hitting HubSpot rate limits, so slow down the scheduled trigger or add small waits.
On n8n Cloud, capacity mainly depends on your plan’s monthly executions, and self-hosting is limited by your server. In practice, most teams run this comfortably for dozens to hundreds of leads per day as long as enrichment APIs and HubSpot rate limits are respected.
Often, yes, because this workflow isn’t just “move data from A to B.” You’re doing multi-step enrichment, custom scoring logic, conditional routing, and writing to a dashboard, which means the paths branch quickly. n8n handles that complexity without turning every filter into a separate paid step, and you can self-host if volume grows. Zapier or Make can still be fine for a lightweight version (capture lead → notify Slack), but you’ll usually hit limits once you add scoring and enrichment. Talk to an automation expert if you want help choosing the simplest approach that still works.
Once this is running, lead routing stops being a daily scramble. Your team sees the right leads in HubSpot, gets the right nudge in Slack, and you get a pipeline you can actually trust.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.