HubSpot + Slack: qualify leads and route the best
Your inbound leads are not the problem. The mess after the form submission is. Names land in the wrong place, reps chase tire-kickers, and your CRM slowly turns into a junk drawer.
Sales managers feel it when follow-up slips. Agency owners feel it when clients ask, “Why did we call that lead?” And marketing ops folks are stuck patching the process. This HubSpot Slack leads automation scores, enriches, and routes leads so the best ones reach sales fast, while the rest get queued for review.
Below you’ll see how the workflow runs, what it changes day-to-day, and what you need to implement it in about 20 minutes.
How This Automation Works
See how this solves the problem:
n8n Workflow Template: HubSpot + Slack: qualify leads and route the best
flowchart LR
subgraph sg0["AI Lead Analysis Age Flow"]
direction LR
n0["<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/>Form Submission5"]
n1@{ icon: "mdi:robot", form: "rounded", label: "AI Lead Analysis Agent5", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "High Quality Lead?5", pos: "b", h: 48 }
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/airtable.svg' width='40' height='40' /></div><br/>Log to Airtable"]
n9["<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/>Request Manual Review"]
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/slack.svg' width='40' height='40' /></div><br/>Notify Sales Team"]
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/hubspot.svg' width='40' height='40' /></div><br/>Add to HubSpot CRM"]
n12["<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/>Structure Lead Data"]
n13@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n14@{ icon: "mdi:wrench", form: "rounded", label: "Clearbit Enrichment Tool", pos: "b", h: 48 }
n15@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n8 --> n9
n0 --> n1
n13 -.-> n1
n13 -.-> n15
n11 --> n10
n2 --> n11
n2 --> n8
n12 --> n2
n1 --> n12
n14 -.-> n1
n15 -.-> n1
end
subgraph sg1["When called by another workflow Flow"]
direction LR
n3@{ icon: "mdi:play-circle", form: "rounded", label: "When called by another workf..", pos: "b", h: 48 }
n4["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Clearbit API"]
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Company Found?", pos: "b", h: 48 }
n6["<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/>Format Data"]
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/code.svg' width='40' height='40' /></div><br/>No Data"]
n4 --> n5
n5 --> n6
n5 --> n7
n3 --> n4
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 n3 trigger
class n1,n15 ai
class n13 aiModel
class n14 ai
class n2,n5 decision
class n8 database
class n0,n4 api
class n12,n6,n7 code
classDef customIcon fill:none,stroke:none
class n0,n8,n9,n10,n11,n12,n4,n6,n7 customIcon
The Challenge: inbound leads flood your CRM with noise
Most teams don’t lose deals because they lack leads. They lose deals because the good leads get buried. A website form fires, a contact gets created, and suddenly sales has a “new lead” that’s actually a student, a vendor, or someone who typed “asdf” into the phone field. Then comes the second hit: someone has to research the company, guess intent, and decide where it belongs. Do that a few dozen times a week and it drains focus, creates inconsistent routing, and makes HubSpot reporting look worse than reality.
It adds up fast. Here’s where it breaks down in real life.
- Every manual “quick check” turns into a mini research project, and reps start ignoring notifications.
- Low-quality contacts make your HubSpot lists and lifecycle stages unreliable, so pipeline numbers get fuzzy.
- Routing decisions are inconsistent because different people score “fit” differently on different days.
- Enrichment happens too late, which means you either follow up blind or you don’t follow up at all.
The Fix: score, enrich, and route leads automatically
This workflow starts the moment your website form submits a lead to an n8n webhook. An AI Agent (using GPT-4o) reviews the submission with a consistent scoring framework and produces structured fields like buying intent, urgency, budget indicators, and a short summary your sales team can actually use. In parallel, Clearbit enrichment looks up company details such as industry, employee count, and estimated revenue, so you aren’t guessing who just raised their hand. Then a simple gate routes the lead based on the 0–100 qualification score: high-quality leads go into HubSpot and trigger a Slack alert to your sales channel, while low-quality leads are recorded in Airtable for manual review and a separate Slack message asks someone to check it. The workflow uses a structured output parser, which keeps the AI results clean and predictable instead of random blobs of text.
The workflow begins with the webhook intake and AI scoring. Next it enriches company data through a Clearbit sub-workflow and validates the match. Finally, it routes: HubSpot contact creation plus a Slack alert for strong leads, or Airtable logging plus a review alert for the rest.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you get 20 inbound leads a day. Manually, it’s common to spend about 10 minutes per lead doing enrichment, a quick fit check, and then writing a Slack note, which is roughly 3 hours daily. With this workflow, submission is instant, scoring and enrichment run in the background, and Slack alerts appear automatically for the top leads. Even if you still review the “low score” queue for 20 minutes a day, you’re getting about 2 hours back on a normal weekday.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- HubSpot to create contacts for qualified leads.
- Slack to alert sales and request manual reviews.
- OpenAI API key (get it from the OpenAI API dashboard).
- Clearbit API key (get it from your Clearbit account settings).
- Airtable token (generate it in Airtable developer settings).
Skill level: Intermediate. You’ll be comfortable pasting IDs, adding HubSpot properties, and testing a webhook with sample form data.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
A website form hits a webhook. Your form submission posts lead details (name, email, company, message, and any extra fields) directly into n8n, so the automation runs the second the lead arrives.
AI scores the lead in a structured way. The AI Agent evaluates fit and intent, then outputs consistent fields like qualification_score, urgency_level, pain_points, and a short recommended action. The structured result parser is doing quiet work here: it forces clean JSON so the next steps don’t break.
Clearbit enrichment fills in company context. A separate Clearbit sub-workflow runs an HTTP request for company details and checks if there’s a match. When Clearbit can’t confidently match, the workflow falls back to a safer default payload instead of guessing.
Routing happens automatically. A lead quality gate (based on the 0–100 score) decides what happens next: create a HubSpot contact and alert the sales Slack channel, or record the lead in Airtable and send a “please review” Slack message.
You can easily modify the qualification threshold and the Slack channels based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Webhook Trigger
Set up the inbound lead intake endpoint so your form can trigger the workflow.
- Add and open Incoming Form Webhook.
- Set Path to
lead-intake. - Set HTTP Method to POST.
- Set Response Mode to
lastNode. - Save the node and copy the production webhook URL for your form.
name, email, company, message, phone, and website to match the fields referenced in AI Lead Review Agent.Step 2: Set Up AI Qualification and Enrichment
Configure the AI model, tool workflow, and structured output so lead scoring is consistent and enriched.
- Open OpenAI Chat Engine and set Model to
gpt-4o. - Credential Required: Connect your
openAiApicredentials in OpenAI Chat Engine. - Open AI Lead Review Agent and keep the Text prompt as provided (it includes dynamic fields like
{{ $json.body.email }}and{{ $json.body.website || 'Not provided' }}). - In AI Lead Review Agent, confirm the system instructions emphasize using the Clearbit tool and returning JSON.
- Open Clearbit Enrichment Helper and set Workflow ID to
REPLACE_WITH_CLEARBIT_WORKFLOW_ID. - Open Structured Result Parser and keep Auto Fix enabled with the provided JSON schema.
Step 3: Map Lead Data and Apply the Quality Gate
Transform the AI output into a consistent payload and route leads based on qualification score.
- Open Map Lead Payload and keep the JavaScript that parses
JSON.parse($input.first().json.output)and builds the unified lead object. - Verify Map Lead Payload references Incoming Form Webhook with
$('Incoming Form Webhook').first().json.body. - Open Lead Quality Gate and set the condition to Number Greater Than or Equal with Left Value
{{ $json.qualification_score }}and Right Value70.
Step 4: Configure Qualified Lead Actions (HubSpot + Sales Slack)
Qualified leads create a CRM record and notify the sales team.
- Open Create HubSpot Contact and set Email to
{{ $json.email }}. - In Create HubSpot Contact → Custom Properties, keep mappings like
{{ $json.qualification_score }},{{ $json.ai_summary }}, and{{ $json.recommended_action }}. - Credential Required: Connect your
hubspotcredentials in Create HubSpot Contact (currently not configured). - Open Alert Sales Channel and set Channel ID to
REPLACE_WITH_SLACK_SALES_CHANNEL_ID. - Credential Required: Connect your
slackOAuth2Apicredentials in Alert Sales Channel.
Step 5: Configure Manual Review Actions (Airtable + Review Slack)
Leads below the score threshold are logged and sent to a review channel.
- Open Record in Airtable and set Base to
REPLACE_WITH_AIRTABLE_BASE_IDand Table toREPLACE_WITH_AIRTABLE_TABLE_ID. - Ensure field mappings use expressions like
{{ $json.pain_points.join(', ') }},{{ $json.submission_date }}, and{{ $json.qualification_score }}. - Credential Required: Connect your
airtablecredentials in Record in Airtable (currently not configured). - Open Send Review Alert and set Channel ID to
REPLACE_WITH_SLACK_REVIEW_CHANNEL_ID. - Credential Required: Connect your
slackOAuth2Apicredentials in Send Review Alert.
Step 6: Configure Clearbit Enrichment Subflow
The AI agent calls a tool workflow that enriches company data via Clearbit.
- Open Subflow Trigger in the Clearbit enrichment workflow to accept the domain input.
- In Clearbit Company Request, set URL to
https://company.clearbit.com/v2/companies/find?domain={{ $json.domain }}. - Credential Required: Connect your
httpHeaderAuthcredentials in Clearbit Company Request. - In Company Match Check, keep the condition
{{ $json.name }}is not empty to route success vs fallback. - Confirm Company Match Check routes to Assemble Company Data on success and Fallback Company Data on failure.
Step 7: Test and Activate Your Workflow
Validate the end-to-end qualification flow before enabling in production.
- Click Execute Workflow and send a test POST to the Incoming Form Webhook with a sample lead payload.
- Confirm AI Lead Review Agent produces structured JSON and Map Lead Payload outputs a complete lead object.
- Verify routing: leads with
qualification_score≥70go to Create HubSpot Contact → Alert Sales Channel; below threshold go to Record in Airtable → Send Review Alert. - Check Slack messages for correct formatting and populated expressions.
- Once confirmed, toggle the workflow Active for production use.
Watch Out For
- HubSpot OAuth permissions can be picky. If contact creation fails, check the connected HubSpot account, then confirm your seven custom properties exist and match the internal names.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Slack alerts can quietly go to the wrong place if channel IDs change. Double-check the channel ID fields in both Slack nodes before you blame the rest of the workflow.
Common Questions
About 15–20 minutes if your accounts and IDs are ready.
Yes, but someone needs to be comfortable with basic setup. You’ll connect accounts, paste a few channel/base IDs, and run a couple test submissions.
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 OpenAI API costs (often a few cents per lead) and whatever Clearbit charges for enrichment on your tier.
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 Quality Gate and the AI Lead Review Agent. You can change the passing score, tweak the scoring rubric, or add your “must-have” fields (like geography or company size) so the AI summary matches how your team actually qualifies. If you don’t want Clearbit, you can swap the enrichment step for a different data provider by replacing the Clearbit Company Request and keeping the same assembled output fields. Many teams also customize the Slack messages to include the AI summary, top pain points, and recommended action so reps know exactly what to do.
Usually it’s expired OAuth access or missing scopes. Reconnect HubSpot in n8n credentials, then confirm the workflow is writing to properties that actually exist (especially the seven custom properties like qualification_score and ai_summary). If it fails only on some leads, check your Map Lead Payload logic for empty emails or invalid formats, because HubSpot will reject them.
It scales fine for most small teams, and the practical limit is usually your plan and API rate limits.
Often, yes, if you care about consistent scoring and more complex routing. This workflow uses an AI Agent with structured parsing, plus fallback logic when enrichment doesn’t match, which is doable in Zapier/Make but tends to get brittle (and expensive) as you add branches. n8n also gives you self-hosting for unlimited runs, which matters when lead volume spikes. On the other hand, if you only want “form submission → create HubSpot contact,” Zapier or Make can be quicker. Talk to an automation expert if you want a quick recommendation based on your volume and routing rules.
A clean CRM and fast follow-up are not “nice to have” once inbound volume grows. Set this up once, and let the workflow sort the noise from the deals.
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.