Automate Lead Enrichment with HubSpot Breeze Intelligence and n8n (2026)
Clearbit's API is deprecated. Learn how to automate lead enrichment with HubSpot Breeze Intelligence and n8n using the correct two-step architecture: CRM API contact creation plus Workflow Enrollment API for Breeze enrichment triggers. Includes working n8n workflow JSON and credit tips.
After running 10,028 n8n workflow executions in the past 90 days at a 99.86% success rate, I can tell you the single biggest mistake automation builders make with lead enrichment in 2026: they're still trying to call Clearbit endpoints that no longer exist. Automate lead enrichment with HubSpot Breeze Intelligence and n8n using the architecture I'll walk through below, and you'll have a working replacement in under an hour.
I'm Ryan Nichols, founder and CTO at Rain Automation. We build and operate production n8n workflows for lead intake, enrichment, and follow-up cadences every day. The Clearbit-to-Breeze migration caught a lot of teams off guard because the replacement doesn't work the way you'd expect. There's no direct /enrich endpoint. Read on for the correct pattern.
- Clearbit's standalone API endpoints (/v2/companies/find, /v2/people/find) are deprecated and return 4xx errors as of 2025, breaking n8n workflows that relied on them.
- HubSpot Breeze Intelligence has no direct /enrich REST endpoint. The correct n8n architecture is a two-step process: create the contact via the CRM API, then trigger enrichment through either auto-enrichment settings or the Workflow Enrollment API.
- Rain Automation's production n8n instance processed 10,028 executions (April 17 to July 15, 2026) with only 14 failures, largely because conditional IF nodes filter non-business emails before any API call fires.
- Breeze Intelligence Smart Property enrichment costs start at $65/month minimum (HubSpot Starter $20/mo + credits $45/mo), with standard enrichment free on Core Seat plans since INBOUND 2025.
- In July 2026, HubSpot reversed a controversial plan to feed customer-enriched data into their global commercial dataset after GDPR/CCPA backlash, reinforcing why you should filter contacts in n8n before they reach HubSpot.
What Is HubSpot Breeze Intelligence?
HubSpot Breeze Intelligence is the rebranded successor to Clearbit's enrichment platform, built natively into HubSpot's CRM after the 2023 acquisition. It enriches contact and company records with firmographic data (employee count, industry, revenue range, LinkedIn URL) directly inside HubSpot, using a credit-based system rather than standalone API calls.
When HubSpot acquired Clearbit in late 2023, they folded Clearbit's data enrichment capabilities into a new product suite called Breeze. The old Clearbit REST API, which returned JSON enrichment data from endpoints like /v2/companies/find and /v2/people/find, was gradually sunset through 2024 and 2025 (source: abmatic.ai Clearbit Enrichment API 2026 migration guide).
Breeze Intelligence now covers four enrichment types:
- Contact enrichment fills in job title, company, phone, and social profiles
- Company enrichment adds employee count, annual revenue range, industry classification, and technology stack
- Buyer intent data identifies which companies are researching your product category
- Form shortening auto-fills form fields so leads convert with fewer clicks
Here's the part most guides miss: Breeze Intelligence is a CRM-native feature, not a callable REST endpoint. You can't POST to /breeze/enrich the way you used to POST to Clearbit. The enrichment happens inside HubSpot when a contact record is created or updated. That architectural difference is what makes the n8n integration pattern fundamentally different from the old Clearbit workflow.
Breeze Intelligence Pricing (July 2026)
The credit system confuses a lot of people, so here's the breakdown based on current HubSpot pricing (sources: eesel.ai, derrick-app.com):
| Enrichment Type | Cost | Notes |
|---|---|---|
| Standard enrichment (basic fields) | Free with Core Seat | Announced at INBOUND 2025 |
| Smart Property enrichment (Starter) | 500 credits/mo bundled | $20/mo HubSpot Starter plan minimum |
| Smart Property enrichment (Pro) | 3,000 credits/mo bundled | $800/mo HubSpot Pro plan |
| Smart Property enrichment (Enterprise) | 5,000 credits/mo bundled | Enterprise pricing |
| Overage rate | $10 per 1,000 credits | No monthly rollover on unused credits |
| Minimum all-in for Smart enrichment | ~$65/mo | Starter $20/mo + $45/mo credits minimum |
One credit equals one enrichment of one contact or company record. Re-enriching the same record within the same billing period costs zero additional credits. That detail matters for your n8n CRM integration design.
Why Your Old Clearbit + n8n Workflow Is Broken
If your n8n workflow hits Clearbit's /v2/companies/find or /v2/people/find endpoints, it's returning 4xx errors right now. These endpoints were deprecated as part of the HubSpot acquisition and have been progressively shut down since mid-2024.
The most popular n8n lead enrichment template on the community (template 7343, rated 4.6 stars with 27 votes) still references Clearbit. Users download it, wire it up, and discover it fails silently or throws HTTP 403/410 errors. No one has updated the template.
In my experience running production workflows, silent failures are worse than loud ones. If your enrichment step fails but continueOnFail is enabled (a common n8n configuration), downstream nodes receive empty data. Your Slack notification fires with blank company info. Your lead scoring assigns zero points. Your sales team gets a notification that tells them nothing.
So this isn't a minor version bump. The entire integration architecture needs to change. If you've been running a Clearbit-based enrichment workflow, check your n8n execution history for failed runs you might have missed.
The Correct 2026 Architecture: n8n + HubSpot CRM API + Breeze Intelligence
The working pattern for n8n lead enrichment with Breeze Intelligence is a two-step process: first, create (or update) the contact in HubSpot via the CRM API, then trigger Breeze enrichment either automatically or through the Workflow Enrollment API. There is no direct /enrich REST call.
This is the key technical finding that no other guide has documented. When I first tried to build a direct Breeze enrichment call from n8n, I spent an afternoon looking for an endpoint that doesn't exist. The HubSpot API reference confirms there's no standalone enrichment endpoint.
Instead, here's what actually works:
Option A: Automatic enrichment on record creation. When you POST a new contact to HubSpot's CRM API (/crm/v3/objects/contacts), Breeze Intelligence automatically enriches that record if you've enabled auto-enrichment in HubSpot Settings > Data Management > Enrichment. The enrichment happens asynchronously (typically 5 to 30 seconds).
Option B: Explicit workflow enrollment. For more control, create a HubSpot Workflow that triggers Breeze enrichment, then use n8n to enroll the contact in that workflow via POST /automation/v4/flows/{flowId}/enrollments. This gives you granular control over which contacts get enriched and when.
Both options require a HubSpot Private App token (legacy API keys were deprecated in 2022). The required scopes are:
crm.objects.contacts.readcrm.objects.contacts.writecrm.objects.companies.readcrm.objects.companies.writeautomation(only needed for Option B, Workflow Enrollment)
Contrast this with older blog posts that still reference API key authentication. If a tutorial tells you to use a hapikey query parameter, it's outdated. Your HubSpot integration must use Bearer token auth with a Private App.
Step-by-Step: Build the n8n Workflow
Building the n8n workflow for Breeze Intelligence requires seven nodes: a trigger, an email filter, a contact create, an optional workflow enrollment, a wait, a data fetch, and a routing step. Each maps to a specific HubSpot API call. The steps below reflect the exact configuration running in Rain's production environment.
Here's the exact workflow I run in production. Each step maps to an n8n node.
Step 1: Create a HubSpot Private App
In your HubSpot account, go to Settings > Integrations > Private Apps > Create a Private App. Name it something like "n8n Lead Enrichment." Under Scopes, enable:
- CRM > Contacts > Read and Write
- CRM > Companies > Read and Write
- Automation (if using Workflow Enrollment, Option B)
Copy the access token. You'll use this as a Bearer token in n8n's HTTP Request node.
Step 2: Set Up the n8n Trigger Node
Your trigger depends on where leads come from. For webhook-based intake (form submissions, Typeform, landing pages), use the Webhook node. For batch processing existing contacts, use the Schedule Trigger node set to run hourly or daily.
In my experience, webhook triggers work better for enrichment because you want data appended before your sales team sees the lead. A 30-minute delay from batch processing can cost you the speed-to-lead advantage.
Step 3: Add an IF Node to Filter Non-Business Emails
This is the step most tutorials skip, and it's the reason Rain's workflows maintain a 99.86% success rate across 10,028 executions (April 17 to July 15, 2026). Of our 10,014 successful runs, the conditional routing via IF nodes is the primary factor keeping failures below 0.2%.
The IF node checks the email domain before any HubSpot API call fires. Filter out:
- Personal email providers: gmail.com, yahoo.com, hotmail.com, outlook.com, aol.com, icloud.com
- Test submissions: [email protected], [email protected], noreply@
- Disposable email domains: guerrillamail.com, mailinator.com, tempmail.com
Why this matters for credits: every contact you push to HubSpot that triggers Breeze enrichment costs one credit (for Smart Property enrichment). Enriching [email protected] wastes a credit and returns minimal useful data. My rule of thumb: if the email domain doesn't have a company website, don't enrich it.
Step 4: POST the Contact to HubSpot CRM API
Use the HTTP Request node (not the built-in HubSpot node, which may lag behind API changes). Here's the node configuration:
{
"parameters": {
"method": "POST",
"url": "https://api.hubapi.com/crm/v3/objects/contacts",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "properties",
"value": "={{ JSON.stringify({ email: $json.email, firstname: $json.firstName, lastname: $json.lastName, phone: $json.phone }) }}"
}
]
},
"options": {}
},
"name": "Create HubSpot Contact",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2
}
Set your HubSpot Private App token in the HTTP Header Auth credential (Header Name: Authorization, Header Value: Bearer pat-xx-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
Step 5: Choose Your Enrichment Path
Option A (simpler): If auto-enrichment is enabled in HubSpot, the contact you just created in Step 4 will be enriched automatically. Skip to Step 6.
Option B (more control): Add a second HTTP Request node to enroll the contact in a HubSpot Workflow:
{
"parameters": {
"method": "POST",
"url": "https://api.hubapi.com/automation/v4/flows/{{ $json.workflowId }}/enrollments",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "objectId",
"value": "={{ $('Create HubSpot Contact').first().json.id }}"
},
{
"name": "objectType",
"value": "CONTACT"
}
]
}
},
"name": "Enroll in Breeze Enrichment Workflow",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2
}
First, create a Workflow inside HubSpot that triggers Breeze enrichment when a contact is enrolled. Note the workflow ID from the URL (it's the number after /flows/ in the HubSpot Workflow editor). Replace {{ $json.workflowId }} with your actual flow ID.
Step 6: Wait, Then Fetch Enriched Data
Add a Wait node (30 to 60 seconds). Breeze enrichment is asynchronous. Then add another HTTP Request node to GET the contact back:
GET https://api.hubapi.com/crm/v3/objects/contacts/{contactId}?properties=company,jobtitle,industry,numberofemployees,annualrevenue,linkedinbio
The contactId comes from the response in Step 4. Now you have enriched data to route downstream.
Step 7: Route Enriched Leads
Add a final IF node that checks lead quality signals from the enriched data. For example:
- Employee count > 50? Route to enterprise sales channel
- Industry matches your ICP? Send a Slack notification or trigger your automated follow-up sequence
- Low enrichment match? Log and skip
This is where the real value compounds. You're not just enriching data; you're qualifying leads automatically based on firmographic signals that would take a human rep 10 to 15 minutes to research manually.
Credit Optimization: Filter Before You Enrich
The IF node from Step 3 is not optional. It's the difference between burning through your 500 monthly Breeze credits in a week and making them last all month.
Here's the n8n expression I use to check email domains:
{{ !['gmail.com','yahoo.com','hotmail.com','outlook.com','aol.com','icloud.com','mail.com','protonmail.com'].includes($json.email.split('@')[1].toLowerCase()) }}
Set this as the condition in an IF node. Only contacts with business email domains pass through to the HubSpot API call. In our production environment, this single filter eliminates roughly 35 to 40% of inbound form submissions from triggering enrichment.
And here's context that makes filtering even more important. On July 1, 2026, HubSpot announced that customer-enriched data would begin feeding their global commercial dataset starting August 4. The backlash was immediate. GDPR and CCPA compliance teams flagged the change, privacy advocates raised concerns, and HubSpot reversed the decision on July 5 (sources: HubSpot Developers Changelog, industry coverage).
They reversed it. But the episode underscored something I tell every client: what you push into a third-party platform for enrichment matters. Use n8n to filter sensitive contacts, internal test submissions, and non-target leads before they reach HubSpot. It's not just a credit optimization play. It's a data governance practice.
Alternative: Apollo.io Enrichment via n8n (If You're Not on HubSpot)
Apollo.io is the simplest fallback for teams not on HubSpot: it exposes a direct REST enrichment endpoint, avoiding the two-step contact-creation pattern that Breeze requires. The paid Basic plan ($49/mo) unlocks full API access with credit-based enrichment. For high-volume use cases or CRM-agnostic stacks, Apollo is lower friction than Breeze.
Not everyone runs HubSpot, and not everyone wants to. If you're using a different CRM or operating on a tighter budget, Apollo.io offers a REST enrichment API with a free tier.
The n8n integration is simpler because Apollo does have a direct enrichment endpoint:
POST https://api.apollo.io/v1/people/match
Body: { "email": "[email protected]" }
Apollo returns company name, job title, LinkedIn URL, estimated revenue, employee count, and technology stack data. The free tier includes 100 email credits per month.
| Feature | HubSpot Breeze Intelligence | Apollo.io |
|---|---|---|
| Free tier credits | Standard enrichment free (Core Seat) | 100 email credits/mo |
| Paid tier starting price | ~$65/mo (Starter + credits) | $49/mo (Basic) |
| Direct REST API | No (CRM-native only) | Yes |
| CRM integration required | Yes (HubSpot CRM) | No (works with any CRM) |
| n8n complexity | Two-step (create contact + enrich) | Single HTTP Request node |
| Data freshness | Tied to HubSpot's global dataset | Tied to Apollo's dataset |
But here's the concession I need to make: if you're already running HubSpot as your CRM, Breeze Intelligence is the better choice. The data lives natively in your contact records. You avoid syncing enriched fields back from a third party. And the standard enrichment is free with your existing seat. The Apollo route makes sense when you're CRM-agnostic or when you need volume that exceeds what Breeze's credit system allows at your current tier.
For a deeper look at connecting n8n to various CRMs, see our n8n CRM integration tutorial.
A Production Scenario: Speed-to-Lead Enrichment
I had a client earlier this year running a lead intake form on their marketing site. Leads came in via webhook, hit an n8n workflow, and landed in their CRM with just name and email. Their sales team spent the first 5 minutes of every follow-up call Googling the prospect's company. Not ideal when speed-to-lead data shows the first responder wins the deal 78% of the time (source: InsideSales.com research on speed-to-lead).
We added the Breeze enrichment pattern from this guide between the webhook and the CRM write. Now when a lead submits the form, n8n filters the email domain, creates the contact in HubSpot, waits 30 seconds for Breeze to enrich, then fetches the enriched record and posts a Slack message to the sales channel with company name, employee count, industry, and estimated revenue. The sales rep picks up the phone already knowing who they're calling.
The total added latency to the workflow is about 35 seconds. The time saved per lead is 5 to 10 minutes. And because the IF node filters personal emails first, they're not burning credits on leads that were never going to convert.
If you want to build something similar for your sales pipeline, the workflow pattern above is exactly what we'd start with.
When Breeze Intelligence Is Not the Right Tool
I'm not saying Breeze Intelligence is the answer for every enrichment use case. Here's when the conventional wisdom of using a standalone enrichment API is still correct:
- High-volume prospecting (1,000+ enrichments/day): Breeze credits cap out fast. Apollo's paid tier or ZoomInfo's enterprise API will serve you better at scale.
- Non-HubSpot CRM users: If you're on Salesforce, Pipedrive, or a custom CRM, the two-step architecture adds friction. A direct enrichment API (Apollo, Clearbit legacy enterprise contracts, or People Data Labs) is simpler.
- Real-time enrichment in sub-second workflows: Breeze is asynchronous. If you need enriched data returned in under 1 second (for real-time form personalization, for example), you need a synchronous API.
If your team is weighing which automation platform to use for the underlying workflow layer, Rain's comparison of n8n, Zapier, and Make on real cost and reliability data covers the numbers from production environments.
For most small to mid-size B2B teams already on HubSpot, though, Breeze Intelligence plus n8n gives you the automation layer that HubSpot's native tools can't match. HubSpot workflows are powerful but limited to HubSpot's own trigger/action ecosystem. n8n lets you pull data from any source, filter with custom logic, and route enriched leads anywhere.
Frequently Asked Questions
What is HubSpot Breeze Intelligence and how is it different from Clearbit?
Breeze Intelligence is HubSpot's native data enrichment product, built from Clearbit's technology after HubSpot acquired Clearbit in 2023. The core difference: Clearbit offered standalone REST API endpoints you could call from any application, while Breeze Intelligence operates inside HubSpot's CRM. There is no equivalent public /enrich endpoint in Breeze.
Does HubSpot Breeze Intelligence have a public API I can call from n8n?
No. Breeze Intelligence enriches contacts natively within HubSpot when records are created or updated. To trigger it from n8n, you create a contact via the HubSpot CRM API (POST /crm/v3/objects/contacts) and either rely on auto-enrichment or enroll the contact in a HubSpot Workflow via the Workflow Enrollment API.
How much does HubSpot Breeze Intelligence cost per lead enriched?
Standard enrichment is free with a HubSpot Core Seat (announced at INBOUND 2025). Smart Property enrichment uses credits: 500/month on Starter ($20/mo minimum), 3,000/month on Pro ($800/mo), and 5,000/month on Enterprise. Overages cost $10 per 1,000 credits, and unused credits do not roll over.
What scopes does a HubSpot Private App need for contact enrichment via n8n?
You need crm.objects.contacts.read, crm.objects.contacts.write, crm.objects.companies.read, and crm.objects.companies.write. If you're using the Workflow Enrollment API path, also enable the automation scope.
What happened to the Clearbit API after HubSpot acquired it?
The standalone Clearbit REST API endpoints (/v2/companies/find, /v2/people/find) were progressively deprecated through 2024 and 2025. These endpoints now return HTTP 403 or 410 errors. Existing n8n workflows and templates (including the popular template 7343) that reference these endpoints are broken.
Can n8n trigger HubSpot Breeze Intelligence enrichment automatically?
Yes, indirectly. When n8n creates a contact record via the HubSpot CRM API, Breeze Intelligence can automatically enrich that record if auto-enrichment is enabled in HubSpot Settings > Data Management > Enrichment. Alternatively, n8n can explicitly enroll the contact in an enrichment workflow via POST /automation/v4/flows/{flowId}/enrollments.
Automate Lead Enrichment with HubSpot Breeze Intelligence: What to Do Next
If you need a production-grade lead enrichment workflow that goes beyond what this guide covers (deduplication, multi-source enrichment, custom scoring models, routing to multiple CRMs), that's what we build at Rain Automation. We design custom automation systems tailored to your sales process, not a template you have to hack around.
Get in Touch to discuss your enrichment and CRM automation needs.
Disclosure: This post contains affiliate links to n8n and Apollo.io. If you sign up through these links, Rain Automation may receive a commission at no additional cost to you. We only recommend tools we use and trust in our own production workflows.