HubSpot data enrichment: native enrichment, waterfalls, and keeping the CRM clean
HubSpot data enrichment comes in two flavors. HubSpot has its own built-in enrichment, and most teams eventually add external providers on top of it, usually through a waterfall that tries several sources in order. This page covers where the native feature stops, how a waterfall works, which fields to enrich and when, and the rules that keep CRM data enrichment from making your database worse. It is one of the systems OneGTM builds.
Key takeaways
- HubSpot's built-in enrichment is free on paid plans and good at company firmographics. It needs a work email or domain to start from.
- Emails you don't have yet, mobile numbers, and niche fields come from outside providers, run as a waterfall.
- Enrich on create, again when a record reaches a stage a rep acts on, and on a schedule for everything else.
- Write rules before you write data: what may overwrite what, and which property is the source of truth.
What HubSpot's native enrichment does
HubSpot bought Clearbit in 2023 and turned its data into Breeze Intelligence, which HubSpot's help docs now simply call data enrichment. Clearbit's free standalone tools were retired in 2025, so for most teams this feature is how Clearbit data reaches them today. Here is how it works as of November 2026, per HubSpot's knowledge base (last updated July 10, 2026):
- Which plans. Starter, Professional, and Enterprise editions of Marketing, Sales, Service, Data, and Content Hub, plus the Professional and Enterprise editions of HubSpot's platform bundles. The free CRM does not include it.
- Cost. Data enrichment does not consume HubSpot Credits. Smart properties, the AI-filled custom fields, do.
- Inputs. Contacts are matched on first name, last name, and work email. Companies are matched on domain. A contact with only a Gmail address and a name gets little.
- Triggers. Automatic enrichment is off until you turn it on, separately for contacts and companies. You can also enrich one record, a bulk selection, or look things up in the Intelligence tab.
- Refresh. With continuous enrichment on, records that were enriched before get updated monthly when HubSpot has newer data.
- Overwrites. Existing values are kept unless you choose to overwrite during manual enrichment or turn on the setting that overwrites incorrect enrichment values.
That is a sensible default for a HubSpot-only team. Turn it on, fill the obvious firmographic gaps, and move on. The trouble starts when you need data HubSpot's dataset doesn't hold.
Native HubSpot enrichment vs. external enrichment
| HubSpot data enrichment | External enrichment (waterfall) | |
|---|---|---|
| Data sources | HubSpot's own dataset (the Clearbit lineage) | As many providers as you wire in, tried in order |
| Finds a missing work email | No, it needs one to start | Yes, from a name plus a company domain or LinkedIn URL |
| Mobile numbers | Not its strength | Yes, from phone-focused providers |
| Custom fields | Fixed property list, plus credit-based smart properties | Anything you can look up or scrape: tech stack, hiring, funding, licenses |
| Cost model | Included with paid plans | Pay per lookup or per match, plus the tool that runs it |
| Control over writes | Settings for auto, continuous, and overwrite | Whatever rules you build |
| Best for | Firmographics on inbound leads and existing accounts | Outbound lists, contact data, and fields specific to your ICP |
Most teams we work with keep native enrichment on for the basics and run external enrichment for everything it misses. For the providers themselves, see the data enrichment tools comparison.
How waterfall enrichment works
Waterfall enrichment asks one provider for a field, and if that provider comes back empty or unverified, asks the next. No single B2B database covers everyone, and coverage varies a lot by region, seniority, and industry, so chaining sources finds more matches than any one of them. The design choices that matter:
- Provider order. Put the provider with the best hit rate for your segment, at a reasonable price, first. Test on a few hundred of your own records before committing, because a provider that is strong on US tech companies can be weak on European manufacturers.
- Fallbacks and stop rules. Stop at the first verified answer. Only fall through on a miss or a failed verification, or you pay several providers for the same email.
- Cost per match. Judge the waterfall on total spend divided by records actually found. The price per lookup on its own tells you little. Several providers charge nothing when they find nothing, which makes them cheap to place early.
- Verification. Run every email through a verifier before it is written to HubSpot, and decide up front what to do with catch-all domains. A bad email in the CRM costs more later, in bounces and sender reputation, than the lookup saved. See email verification tools.
A worked example, with made-up round numbers. You need emails for 1,000 contacts. Provider A finds 550 and verifies 500. Provider B gets the remaining 500 and finds 200 verified. Provider C gets the last 300 and finds 90. The waterfall delivers 790 verified emails, where Provider A alone would have stopped at 500. Your cost per match is total spend across all three, divided by 790.
Clay runs waterfalls in a table with built-in provider integrations. Tools like FullEnrich and BetterContact sell a waterfall as one product. Code-first setups call providers directly or through a router like Deepline. The Clay agency page covers Clay builds, and Clay pricing covers what the credits cost.
What to enrich, and when
Enriching every field on every record every week burns money on data nobody reads. Tie each field to the moment someone needs it. Three triggers cover nearly every case:
- On create. When a contact or company lands in HubSpot from a form, import, or integration, fill what routing and scoring need: company size, industry, location, job title, seniority. A lead that can't be routed sits in a queue.
- On stage change. When a lead becomes an MQL or a deal opens, pay for the expensive fields: mobile numbers, the rest of the buying committee, a fresh email verification. Most records never reach this stage, so you only buy this data for the ones that do.
- Scheduled refresh. People change jobs and companies grow or shrink. A monthly or quarterly job re-checks fields that decay, flags contacts who left, and catches accounts that moved into your ICP.
| Field | Typical sources | Refresh cadence |
|---|---|---|
| Industry, employee count, HQ location | HubSpot enrichment, Apollo, People Data Labs, Crustdata | On create, then quarterly |
| Revenue range | HubSpot enrichment, ZoomInfo, Apollo | On create, then twice a year |
| Job title, seniority, department | HubSpot enrichment, LinkedIn data APIs, Apollo | On create, then monthly |
| LinkedIn profile URL | LinkedIn data APIs, Clay, Apollo | On create |
| Work email | Email finder waterfall (LeadMagic, Prospeo, Findymail and others) plus a verifier | On create; re-verify before every sequence |
| Mobile phone | Phone finder waterfall (Lusha, Cognism, FullEnrich and others) | On stage change, when a rep will call |
| Job change | Job change tracking tools, LinkedIn data APIs | Monthly, or weekly for customers and open deals |
| Tech stack | BuiltWith and other tech stack trackers | Quarterly |
| Funding and headcount growth | Crunchbase and other funding data, LinkedIn data APIs | Monthly |
| ICP fit score | Calculated from the fields above | Recalculated whenever an input changes |
More on the signal side: job change tracking tools, tech stack tracking, and funding data.
Keeping CRM data clean while you enrich it
Enrichment is a write path into your CRM. Without rules, it creates duplicates, overwrites what reps typed, and leaves values nobody can trace. The rules we set before the first write:
- Dedupe on stable keys. Match contacts on email and companies on domain before creating anything. Re-running a waterfall should update the record it found the first time, never create a second one. Clean up existing duplicates before turning on automation, because enrichment will happily fill both copies.
- Overwrite rules per field. Default to filling blanks only. Allow overwrites on fields that decay, like job title, and only when the new value comes from a source you trust at least as much. Never let automation overwrite a field a rep edited by hand, such as lifecycle stage or owner.
- Source of truth properties. Keep raw enriched values in their own properties (an enriched employee count next to HubSpot's own
numberofemployees, for example), and add a source and a last-enriched date. When a value looks wrong, you can see where it came from and when. - Normalize before writing. Map provider values onto your own picklists: one industry list, one set of employee bands, titles mapped to the seniority and department values your routing uses. Raw provider labels break reports and lead routing.
If the CRM itself needs rework first, the HubSpot and CRM implementation partners guide covers who does that work.
How OneGTM builds enrichment into HubSpot
We keep HubSpot as the system of record and run enrichment outside it, writing results back to properties the team can see, filter, and report on. There are two ways we build it, depending on who will maintain it:
- Clay tables. Records come in from a HubSpot list or a webhook, run through a waterfall and AI research columns, and write back through Clay's HubSpot integration. A good fit when the team wants to see and edit the logic in a spreadsheet. SuperDial's TAM was scored in Clay with AI industry classification, alongside HubSpot rep views.
- Claude Code jobs. Scheduled scripts, built with Claude Code and Deepline, that read records through the HubSpot API, call providers in order, verify, normalize, and write back with batch updates. A good fit for high volume, custom data sources, or teams that want version-controlled logic. For Statewise we built Deepline plays on Supabase that sync to HubSpot, with a person-finder ladder that verifies emails through BounceBan before escalating to Allegrow.
Either way, every write follows the dedupe and overwrite rules above, every enriched property carries a source and date, and the team gets a handoff doc that says which job fills which field and on what trigger. The code-first approach is described on Claude Code for GTM.
HubSpot data enrichment FAQ
What is HubSpot data enrichment?
What is waterfall enrichment?
What is CRM data enrichment?
Does HubSpot data enrichment use HubSpot Credits?
Can you run waterfall enrichment in HubSpot?
Will enrichment overwrite my existing HubSpot data?
How often should you enrich CRM data?
Have a HubSpot instance full of half-empty records? That is a good place to start.
Get HubSpot enrichment built
Tell me what's missing from your CRM. I reply the same day.
Pick a time
Nothing works? Write team@getaob.com and I'll find one.
Book a timeGrid not loading? Open the booking page
Rather do it the old way? team@getaob.com LinkedIn