CRM data

HubSpot data enrichment: automatic setup

HubSpot data enrichment set up end to end: fill contact and company properties from a waterfall of data sources, then from your own billing and product data.

Oneprofile

Published by

Oneprofile

Updated Oct 16, 2026

ยท 11 min read

HubSpot's built-in enrichment section added; funding and refresh claims corrected

Free plan: 200 credits a month, 3 integrations, no card

Guide cover: HubSpot enrichment in 6 steps, beside the HubSpot, Stripe, and PostgreSQL logos

Your CRM knows who a contact is. It doesn't know what they did. Most HubSpot data enrichment advice only deals with the first half of that: a missing job title, a blank company size, a phone number nobody ever typed in. Filling those is worth doing and it is maybe a third of the job. This guide sets up both halves. A waterfall of data sources fills the contact and company fields HubSpot never collected, your own billing, support, and product systems supply the context no data source sells, and all of it writes back to HubSpot properties over the same connection it arrived on.

To enrich HubSpot contacts with product usage data, connect the product database or analytics tool as a source. Contacts match on email, companies on domain. Last login and seats in use land in custom properties you create once, and custom properties exist on every tier, Free included. Scheduled refreshes keep usage current without CSV exports.

To set it up on your own portal while you read, connect HubSpot to a free workspace and bring a segment in.

HubSpot's built-in data enrichment, and where it stops

Start with what HubSpot already does. Its own data enrichment runs on Starter, Professional, and Enterprise subscriptions, and according to HubSpot's knowledge base it does not consume HubSpot Credits. It uses a contact's first name, last name, and work email, and a company's domain, to fill properties such as job title, industry, and company size. Automatic enrichment is off by default, and a Super Admin turns it on for new records. If your portal is on a paid tier, switch it on first.

The built-in enrichment stops at what a tool database can know about a stranger. It never reads your billing system, your support desk, or your product, and a portal on HubSpot's free tools does not get it at all. The rest of this guide covers that remainder.

What HubSpot data enrichment actually has to fill

Pull a few hundred contacts out of a HubSpot portal and the shape is always similar. Work email is there for nearly everyone, because they handed it over. Job title is patchy. Industry has been typed by three different people who each picked a different word for the same thing. Phone numbers are basically absent.

That is the layer you can see. The one underneath is the one that decides who gets called:

  • what the account pays, on which plan, and when the contract comes up for renewal

  • how many support tickets they opened this quarter, and how the last one ended, which is also the raw material for a churn risk score

  • when they last logged in and how many teammates they invited

  • whether the company moved, grew, or hired a VP of Sales last month

Only the last of those is for sale. The first three already exist inside tools you are paying for right now, and not one of them writes to HubSpot on its own.

A tangent while we are here. Every enrichment tool opens with a B2B data decay statistic, some percentage of your database going stale each year, and those numbers rarely trace back to a study anybody ran. The claim underneath is obviously true. People change jobs and records rot. You don't need an invented percentage to believe it, and nobody should be quoting one.

Where each enriched HubSpot property comes from

Two kinds of data in, one CRM they land in.

HubSpot property

Comes from

Why it earns its place

Job title, seniority

Waterfall of data sources

Routing and personalization

Company size, industry, location

Waterfall of data sources

ICP fit, and list building later

Work email, Deliverability

Waterfall of data sources, then Verify email

Everything you send depends on it

Plan, MRR, renewal date

Your billing system

Expansion and renewal risk

Open tickets, last escalation

Your support desk

Who is unhappy before you call them

Last login, seats in use

Your product database

Who uses what they bought

The waterfall half runs itself. Data sources are ordered by accuracy and hit rate, and the waterfall asks them one at a time and stops at the first one that returns an answer. Checking an email address is a separate step, Verify email. You see what a run will cost before you start it, and a lookup that comes back empty is never billed. There is no chain to assemble and no data source to pick, which matters mostly because picking badly is how enrichment bills get surprising.

The second half is the one an enrichment marketplace cannot sell at any price. Connect your billing system and each account picks up its own subscription state, read live from the subscription object rather than from a CSV somebody exports on Mondays. Support desks, product analytics, and your own Postgres connect the same way. 142 integrations read data in, write it back, or both, on every paid plan.

HubSpot data enrichment setup, step by step

1. Connect HubSpot and bring your records in. Connect HubSpot with a private app token that has read and write scopes, and pull in contacts, companies, deals, or tickets. The connection reads and writes from the beginning, which is what makes the last step cheap.

2. Run the waterfall. Ask for work email, job title, company size, industry, and location, and add Verify email so every address gets a Deliverability verdict. Check the cost preview, then run it across everything at once instead of one profile page at a time.

3. Attach your own systems. Billing, support desk, product database. Contacts match on email address, companies on domain. Each record picks up its own plan, ticket count, and last-active date.

4. Add AI where a field needs judgment. Describe your ideal customer once and every enriched record gets scored against that description from 0 to 100, with a one-line reason written beside the score. A record with too little to judge comes back unscored rather than low. The reason is the part reps act on. A bare number gets ignored.

5. Map everything back to HubSpot. Covered next, because it is where enrichment projects usually die.

6. Schedule the refresh. Turn on scheduled refreshes for the HubSpot source and keep Run automatically on new and changed rows on, so new contacts are enriched as they arrive. Run the export after each refresh so the new values reach HubSpot.

Map enriched data to HubSpot properties and write it back

Enriched data that never reaches the CRM is a tidy dead end. The export fills properties that already exist, so create the custom ones below in HubSpot once, each with the right type. It takes a few minutes in Settings, or one short script against HubSpot's CRM properties API. Then map each enriched field to its property, and every run fills the same ones.

Enriched field

HubSpot property

Type

Company size

employee_count

Number

Plan

plan_name

Single-line text

MRR

mrr

Number

Open tickets

open_tickets

Number

Last login

last_login

Date

ICP score

icp_score

Number

Score reason

icp_score_reason

Single-line text

Custom properties exist on every HubSpot tier, Free included. Once the values land there, HubSpot treats them like anything it collected itself: views sort on them, lists filter on them, workflows branch on them. That is the whole trick behind running this on a free portal. On Salesforce the same build writes to Lead, Contact, and Account fields instead, and the Salesforce data enrichment guide walks through that version.

HubSpot write-back is included on every paid plan, starting at $20 a month. Worth saying plainly, because CRM write-back is the feature this category most often puts behind a tier costing several hundred dollars, which prices the one step that makes enrichment operational out of reach of the founder who needs it most.

Edge cases in a HubSpot enrichment run

  • Contacts on personal email. A gmail.com address gives the waterfall nothing to work with at the company level. Match those on the associated company record instead, or accept the gap.

  • Duplicates. Enriching a portal with duplicate contacts gives you enriched duplicates. Merge first. Enrichment is not deduplication and pretending otherwise makes the count look better than the data.

  • Deals and tickets. Enrich the associated company and let deals read from it. Copying firmographics onto every deal produces several versions of the same fact that drift apart.

  • Overwrites. Set this per field. Fill blanks by default, let genuinely decaying fields like plan and company size update in place, and leave anything a rep typed alone.

  • Big portals. Somewhere north of a hundred thousand contacts you are into scheduling and batch sizing, and honestly the answer depends on your API limits more than on anything we do. Start with a segment.

What HubSpot data enrichment costs, and what changes after the first run

The build above runs on the Team plan: $20 a month, 1,000 credits, unlimited seats, every one of the 142 integrations included, to read data in, write it back, or both. One meter covers all of it, every operation has a published credit price, and unused credits never expire. The free plan is $0 with 200 credits a month, three integrations, and tables of up to 100 rows, which is enough to enrich a real segment this afternoon and see whether the result changes who your team calls first.

What actually changes is smaller than a demo makes it sound, and better. A rep opens a HubSpot record and the plan, the last login, the two open tickets, and a one-line reason for the score are already sitting there. Nobody switched tabs. Nobody asked in Slack whether this account is a customer.

Then the schedule takes over, which is the part that pays for itself. New contacts are enriched as they arrive, the fields that rot get corrected, each export run carries the changes to HubSpot, and the portal stops drifting back toward the state described at the top of this guide. Connect HubSpot and get started free.

Do this in Oneprofile

Plan, MRR, and last login on the HubSpot record

Billing, support, and product data match each contact by email and each company by domain, then write to custom properties beside the data source fields.

  • HubSpot logo
  • Stripe logo
  • Zendesk logo
  • PostHog logo
  • PostgreSQL logo

6 steps to build it

Before you start

HubSpot connected by a user who can read and write the objects you enrich

Custom HubSpot properties for each enriched field, created once in Settings

Your billing, support, or product tool connected, for the context data sources lack

1

Connect HubSpot and bring your records in

Connect HubSpot with a private app token and pull in contacts, companies, deals, or tickets. The connection reads and writes from the start, so nothing extra has to be set up before results can go back.

2

Run the waterfall

Add enrichment for work email, job title, company size, industry, and location, with Verify email beside the email lookup. Data sources are asked one at a time, most accurate first, and the first real answer wins. The run shows its cost before it starts, and misses are never billed.

3

Attach your own systems

Connect billing, your support desk, and your product database. Each record is matched by email address or company domain, so plan, MRR, renewal date, open tickets, and last login arrive beside the third-party data.

4

Add AI where a field needs judgment

Describe your ideal customer once. The ICP scorer reads each enriched record on its own, scores it 0 to 100 against that description, and writes a short reason next to the score.

5

Map everything back to HubSpot

Create any custom properties you need in HubSpot once, then point each enriched field at one. Choose per field whether a value fills a blank or replaces what is there.

6

Schedule the refresh

Turn on scheduled refreshes for the HubSpot source so new contacts are enriched on arrival and decaying fields are refreshed. Run the export after each refresh so the new values reach HubSpot.

Free plan: 200 credits a month, 3 integrations, no card

6 steps to build it

Before you start

HubSpot connected by a user who can read and write the objects you enrich

Custom HubSpot properties for each enriched field, created once in Settings

Your billing, support, or product tool connected, for the context data sources lack

1

Connect HubSpot and bring your records in

Connect HubSpot with a private app token and pull in contacts, companies, deals, or tickets. The connection reads and writes from the start, so nothing extra has to be set up before results can go back.

2

Run the waterfall

Add enrichment for work email, job title, company size, industry, and location, with Verify email beside the email lookup. Data sources are asked one at a time, most accurate first, and the first real answer wins. The run shows its cost before it starts, and misses are never billed.

3

Attach your own systems

Connect billing, your support desk, and your product database. Each record is matched by email address or company domain, so plan, MRR, renewal date, open tickets, and last login arrive beside the third-party data.

4

Add AI where a field needs judgment

Describe your ideal customer once. The ICP scorer reads each enriched record on its own, scores it 0 to 100 against that description, and writes a short reason next to the score.

5

Map everything back to HubSpot

Create any custom properties you need in HubSpot once, then point each enriched field at one. Choose per field whether a value fills a blank or replaces what is there.

6

Schedule the refresh

Turn on scheduled refreshes for the HubSpot source so new contacts are enriched on arrival and decaying fields are refreshed. Run the export after each refresh so the new values reach HubSpot.

Free plan: 200 credits a month, 3 integrations, no card

HubSpot data enrichment: common questions

How do I enrich HubSpot contacts automatically?

Connect HubSpot as a source, bring your contacts in, and run the waterfall, which asks data sources in order of accuracy and hit rate until one answers. Map the filled fields to HubSpot properties, turn on scheduled refreshes, and run the export to push the new values.

Does HubSpot data enrichment work on the free HubSpot plan?

Yes. Enriched values arrive as ordinary custom properties, and custom properties exist on every HubSpot tier including Free. You can sort, filter, and build lists on them the same way you would on a property HubSpot collected itself.

How do I enrich HubSpot contacts with product usage data?

Connect your product database or analytics tool as a source, match contacts by email and companies by domain, and map last login and seats in use to HubSpot custom properties. Add Stripe or your billing system the same way so plan and MRR land on the same record, then schedule the refresh.

Will enrichment overwrite data already in HubSpot?

Only if you tell it to. Write-back is set per field, so the usual setup fills blanks and leaves anything a human typed alone. Fields that decay, like company size or plan, are worth letting the refresh update in place.

What does HubSpot data enrichment cost?

The Team plan is $20 a month with 1,000 credits, and every one of the 142 integrations is included, to read data in, write it back, or both. Each operation has a published credit price, a run shows its cost before it starts, and lookups that return nothing are never billed.

Does this enrich companies and deals, or only contacts?

Contacts, companies, deals, and tickets all come in and all write back. Most enrichment belongs on the company record, with deals and tickets pulling their context from the company they are associated with rather than carrying their own copy.

About this article

Oneprofile

Oneprofile

Publisher of this page

Oneprofile finds the right people, enriches them, and helps you reach them.

Drafted with AI from our product docs and code, and published by Oneprofile.

Fill HubSpot with what your own tools already know

Fill HubSpot from the waterfall and your billing and product data, then map it back.

Free plan: 200 credits a month, 3 integrations, no card

Fill HubSpot with what your own tools already know

Fill HubSpot from the waterfall and your billing and product data, then map it back.

Free plan: 200 credits a month, 3 integrations, no card