Clearbit + HubSpot: qualify leads, route fast
Your leads are coming in. But half of them are missing a company domain, have a fake phone number, or land in the wrong place in HubSpot. Then the real prospects wait because someone has to clean, enrich, score, and route everything by hand.
This lead qualification automation hits Sales Ops first, honestly, but marketing managers and agency owners feel the drag too. You will follow up faster, stop junk contacts from polluting HubSpot, and get Slack alerts that actually mean something.
This workflow turns raw lead payloads into enriched, scored, routed contacts. You’ll see what it fixes, what you need, and how the routing logic works in plain English.
How This Automation Works
See how this solves the problem:
n8n Workflow Template: Clearbit + HubSpot: qualify leads, route fast
flowchart LR
subgraph sg0["Flow 1"]
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/>Lead Capture Webhook"]
n1@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate Lead Data", pos: "b", h: 48 }
n2["<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/clearbit.svg' width='40' height='40' /></div><br/>Enrich with Clearbit"]
n3["<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/>Enrich with Apollo"]
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/merge.svg' width='40' height='40' /></div><br/>Merge Enrichment Data"]
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/>Calculate Lead Score"]
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Route by Qualification", 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/>Create HubSpot Contact"]
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/slack.svg' width='40' height='40' /></div><br/>Notify Sales Team - High Pri.."]
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/hubspot.svg' width='40' height='40' /></div><br/>Create HubSpot Contact - Med.."]
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 Marketing - Medium Pr.."]
n11@{ icon: "mdi:cog", form: "rounded", label: "Log Invalid Data", pos: "b", h: 48 }
n3 --> n4
n1 --> n2
n1 --> n3
n1 --> n11
n5 --> n6
n2 --> n4
n0 --> n1
n4 --> n5
n6 --> n7
n6 --> n8
n6 --> n9
n6 --> n10
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 n1,n6 decision
class n0,n3 api
class n5 code
classDef customIcon fill:none,stroke:none
class n0,n2,n3,n4,n5,n7,n8,n9,n10 customIcon
The Challenge: Unqualified Leads Slow Everything Down
Lead routing sounds simple until you live with it. A form submission arrives without a domain, Clearbit can’t enrich, and now someone has to chase missing fields. Another lead has a decent title but works at a tiny company that will never buy, yet it still becomes a “new contact” in HubSpot and wrecks your reporting. Meanwhile the actually-good lead sits untouched because nobody saw it quickly enough. The worst part is the mental load. You’re constantly second-guessing: “Is this worth Sales’ time?”
It adds up fast. Here’s where it breaks down in real teams.
- You spend about 5–10 minutes per lead just validating basics like email format, domain, and required fields.
- Enrichment gets done inconsistently, so two similar leads get totally different treatment and your pipeline data becomes noisy.
- High-value prospects don’t get an immediate Slack ping, which means response time depends on someone “checking HubSpot.”
- Low-quality submissions still turn into CRM contacts, and later you can’t tell what “good” looks like in reporting.
The Fix: Auto-Enrich, Score, and Route Leads to the Right Team
This workflow starts the moment a new lead hits your webhook from any source (a form, a landing page, a partner list, even manual uploads). First, it validates the payload so incomplete or obviously broken submissions don’t pollute your CRM. Next, it enriches the lead using Clearbit for company intelligence and Apollo for person-level lookup, then merges those results into one clean profile. After that, a scoring step assigns a lead rating based on your qualification criteria, so decisions aren’t left to whoever happens to be on Slack. Finally, it routes the lead: high-value contacts go straight into HubSpot and trigger a Sales alert, while medium leads get created and ping Marketing for nurture.
The workflow begins with intake and validation. Enrichment and scoring happen in the middle, then routing pushes the right record into HubSpot and posts the right message to Slack. The end result is simple: clean contacts, faster follow-up, and fewer arguments about lead quality.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you get 20 inbound leads a day. If validation takes about 5 minutes and enrichment + routing takes another 5 minutes manually, that’s roughly 3 hours daily spent just moving lead data around. With this workflow, you spend maybe 10 minutes setting up the source to hit the webhook, and then each lead processes automatically while you keep working. Sales still sees the best leads fast (via Slack), but nobody is stuck doing repetitive checks and copy-paste work.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- HubSpot for contact creation and CRM tracking.
- Clearbit to enrich company and domain intelligence.
- Apollo API key (get it from your Apollo account settings).
- Slack to alert Sales and Marketing channels.
- Google Sheets to log, audit, or review lead activity.
Skill level: Intermediate. You’ll connect accounts, set environment variables, and tweak scoring rules to match your ICP.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
A new lead hits the webhook. Your form, ad flow, or partner source sends a payload into n8n, which means you’re not locked into a single lead tool.
The workflow validates the submission. If required fields are missing or the payload is clearly unusable, it stops and records the invalid submission so HubSpot stays clean.
Enrichment fills in the context. Clearbit adds company intelligence, Apollo looks up person details via an HTTP request, and a merge step combines everything into one profile you can score.
Scoring and routing handle the decision. A code-based rating assigns a qualification level, then an If route sends “high” leads to a Sales HubSpot path plus a Sales Slack alert, while “medium” leads go to Marketing for nurture.
You can easily modify the scoring criteria to match your ICP, or change the routing so “high” leads assign to a specific owner based on territory. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Webhook Trigger
Set up the inbound webhook to receive new lead submissions and kick off the workflow.
- Add the Incoming Lead Webhook node as the trigger.
- Set HTTP Method to
POST. - Set Path to
lead-capture. - Copy the generated webhook URL and use it in your lead capture form or CRM.
email, firstName, and lastName to align with downstream enrichment nodes.Step 2: Validate the Incoming Lead Payload
Ensure only valid leads continue to enrichment while invalid submissions are captured.
- Open Validate Lead Payload and confirm two conditions exist.
- Set the first condition to check email is not empty with Left Value
={{ $json.email }}and OperationisNotEmpty. - Set the second condition to validate format with Operation
regexand Right Value^[\w-\.]+@[\w-]+\.[a-zA-Z]{2,}$. - Connect the false path to Record Invalid Submission to capture rejected entries.
={{ $json.email }} to match your payload.Step 3: Enrich Lead Data in Parallel
Run Clearbit and Apollo enrichment simultaneously to enhance lead data before scoring.
- Connect Validate Lead Payload to both Clearbit Profile Enrichment and Apollo Person Lookup in parallel.
- In Clearbit Profile Enrichment, set Resource to
personand Email to={{ $json.email }}. - Credential Required: Connect your Clearbit credentials.
- In Apollo Person Lookup, set URL to
={{ $env.APOLLO_API_URL }}/v1/people/match. - Enable Send Body and add body parameters:
email=={{ $json.email }},first_name=={{ $json.firstName }},last_name=={{ $json.lastName }}. - Enable Send Headers and add
Content-Type=application/jsonandCache-Control=no-cache. - Credential Required: Connect your HTTP Header Auth credentials for Apollo API.
- Clearbit Profile Enrichment and Apollo Person Lookup both connect into Combine Enrichment Results.
Step 4: Score and Route the Lead
Compute a qualification score and route to high or medium priority paths.
- In Combine Enrichment Results, keep the default merge behavior to pass both enrichment outputs forward.
- Open Compute Lead Rating and keep the provided JavaScript scoring logic as-is, or adjust scoring thresholds as needed.
- In Qualification Routing, ensure the condition checks Left Value
={{ $json.qualification.score }}with Operationgteand Right Value80. - Confirm the true path is used for high-priority leads and the false path for medium priority.
enrichment_data and scoring will be inaccurate.Step 5: Configure CRM and Slack Actions
Send qualified leads to HubSpot and notify the appropriate Slack channels.
- From Qualification Routing, connect the true branch to both Create CRM Contact (High) and Alert Sales Team (High) in parallel.
- Open Create CRM Contact (High) and set Operation to
create. - Credential Required: Connect your HubSpot credentials.
- Open Alert Sales Team (High) and set Text to
🚨 **High Priority Lead Alert!** 🚨, and Channel ID to={{ $env.SLACK_SALES_CHANNEL_ID }}. - Credential Required: Connect your Slack credentials.
- From the false branch, connect to Create CRM Contact (Medium) and Notify Marketing (Medium).
- Set Create CRM Contact (Medium) Operation to
create, and add HubSpot credentials. - In Notify Marketing (Medium), set Text to
📋 New Medium Priority Leadand Channel ID to={{ $env.SLACK_MARKETING_CHANNEL_ID }}, then add Slack credentials.
Step 6: Test & Activate
Validate the workflow end-to-end before enabling it in production.
- Click Execute Workflow and send a sample POST payload to Incoming Lead Webhook with valid
email,firstName, andlastName. - Verify Clearbit Profile Enrichment and Apollo Person Lookup both run, then confirm data is merged in Combine Enrichment Results.
- Check Compute Lead Rating output for
qualification.scoreandqualification.level. - Confirm the correct path is taken in Qualification Routing and that CRM contacts and Slack alerts are created.
- Enable the workflow with the Active toggle to start processing live leads.
Watch Out For
- HubSpot credentials can expire or need specific permissions. If things break, check your private app scopes and the credential connection in n8n 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–45 minutes if your accounts are already active.
Yes, but you’ll want someone comfortable connecting APIs and editing a few variables. No traditional coding, though.
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 Clearbit and Apollo API costs based on your usage.
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.
You can adjust the scoring rules inside the Compute Lead Rating step to match your ideal customer profile. Common tweaks include changing industry targeting, increasing the weight for company size, and adding a “must-have” rule (like requiring a business email domain). If you want different paths, modify the Qualification Routing step so “low” leads go to a nurture email instead of creating a HubSpot contact.
Usually it’s an expired credential or missing scopes on your HubSpot private app. Reconnect HubSpot in n8n and confirm the app has permission to create or update contacts. If it fails only on some leads, you may also be hitting a data issue (like an invalid email) coming from the webhook payload.
On a typical n8n setup, it can comfortably handle dozens of leads per hour without tuning.
Often, yes, because this kind of flow benefits from branching logic, merging enrichment sources, and a custom scoring step. In Zapier, multi-path routing and code-like scoring can get expensive fast, and you’re still limited in how you combine data from multiple enrichment tools. Make is more flexible, but you may spend more time maintaining scenarios as the logic grows. n8n also gives you a self-host option, which is useful when lead volume spikes and you don’t want to pay per tiny step. If you’re unsure, Talk to an automation expert and we’ll map the simplest path.
Once this is live, lead handling stops being a daily fire drill. The workflow does the sorting and nudging, and your team focuses on conversations that turn into revenue.
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.