ZoomInfo HubSpot Integration Setup, Sync Rules and Cost

    Short answer

    The three ways ZoomInfo connects to HubSpot, the settings that decide who owns a record and whether it duplicates, and what each path costs, taken from the vendors' own documentation.

    Artem Smirnov
    Artem Smirnov

    Last updated · 12 min read

    Artem Smirnov in a dark suit against a charcoal studio backdrop, next to the line 'ZOOMINFO MEETS HUBSPOT. Three integrations, one owner field'

    Yes, ZoomInfo integrates with HubSpot natively, through three routes. ZoomInfo's own page names two: an inbound enrichment app and a two-way Connector. It also lists a third route that runs on the HubSpot side, the Prospecting Agent connector (ZoomInfo HubSpot integration page).

    • The Connector works in both directions. It brings your HubSpot context into ZoomInfo, and it sends ZoomInfo contacts and companies into HubSpot when a rep or an automation pushes them.
    • Inbound Enrich is a Marketplace app that needs its own ZoomInfo subscription. It fills in contacts as soon as they are created in HubSpot (ZoomInfo Inbound Enrich listing).
    • The Prospecting Agent connector lets HubSpot's agent find new contacts in ZoomInfo and enroll them in its plays (HubSpot Knowledge Base).

    Pick the path by the job you need done. Then settle three things before the first export: who owns the exported records, how duplicates get matched, and how contacts attach to companies. Skip those and your CRM fills with contacts owned by the admin, with no company on the record, sitting next to copies of themselves.

    Which path does which job?

    PathThe job it doesWhat triggers itDirectionWhere you set it up
    ZoomInfo HubSpot ConnectorPuts ZoomInfo contacts and companies into HubSpot, and gives ZoomInfo your CRM context for its search filters, signals, automation and scoringA rep or an automation pushes records out; the import side runs on its own scheduleBoth waysZoomInfo Admin Portal, under Integrations
    ZoomInfo Inbound EnrichAdds data to contacts and companies that land in HubSpot from forms, imports or repsA new contact created in HubSpotZoomInfo into HubSpotHubSpot Marketplace app, on its own ZoomInfo subscription
    Prospecting Agent connectorSupplies new contacts for HubSpot's agent to enroll in playsThe agent's playsZoomInfo into the agentHubSpot, under Sales > Prospecting Agent

    The decision rules are short:

    • If your reps search in ZoomInfo and work deals in HubSpot, you need the Connector.
    • If leads arrive through forms with half the fields empty, you need Inbound Enrich.
    • If HubSpot's agent writes your outreach and you want ZoomInfo feeding it, connect it in the Prospecting Agent.
    • If you need two of these jobs done, you need two paths. None of them covers another's job.

    I do not mind which CRM a client runs, as long as one exists and catches every lead. HubSpot is a fine home for ZoomInfo data. The damage comes from careless wiring: records that look complete while nobody can say who owns them.

    What do you need before you connect ZoomInfo to HubSpot?

    ZoomInfo's implementation guide lists four supported HubSpot plans: Free, Basic, Professional and Enterprise (ZoomInfo implementation guide). The HubSpot user who makes the connection must be a Super Admin, or an Admin with these rights:

    • Contacts: view, edit and delete. Contacts they own is the minimum; all contacts is the recommended setting.
    • Companies: the same three rights, with all companies recommended.
    • The Marketing Access toggle switched on.
    • App Marketplace access switched on, under Account > Settings Access.

    Next comes the connection choice. ZoomInfo calls the service account "the default (and preferred) option".

    Service accountIndividual user accounts
    Who connects to HubSpotOne account, ideally a dedicated Super Admin; every export and filtering job runs through itThe admin makes the first connection, then each user connects their own HubSpot account
    Record ownershipDepends on matching emails, explained in the next sectionEach export runs under that user's own connection
    UpkeepNew hires never connect to HubSpot themselvesEvery new user must connect, and each broken connection becomes its own support problem

    The guide's setup order, step by step:

    1. Choose service account or individual connections.
    2. Make the first admin connection: Admin Portal > Integrations > Connections, find the HubSpot tile, click Connect, log in and pick the HubSpot account.
    3. Set export preferences: which objects users may export, and how many records each user may export per object.
    4. Map the fields.
    5. Configure HubSpot Import, which is switched on by default.
    6. Configure Advanced Search filters.
    7. Turn the integration on for your users.
    8. Set how duplicates are handled.

    Why does the ZoomInfo admin end up owning every exported contact?

    A rep exports a contact from ZoomInfo, and HubSpot shows the ZoomInfo admin as the owner. The cause is a single rule for service account connections in ZoomInfo's guide.

    Exporting user's emailOwner of a net-new record in HubSpot
    Identical in ZoomInfo and HubSpotThe user who exported it
    Different in the two tools, for example an alias in one of themThe primary connected admin

    In the guide's words, when the addresses differ, "the record Owner fields will reflect the primary connected admin."

    The fix: before anyone exports, make every rep's ZoomInfo login identical to their HubSpot user email, using the User Mapping table in the integration settings. If some emails cannot match, individual user connections avoid the rule, at the price of every rep maintaining their own link.

    I split territories by account and by rep, so two people on one team never work the same leads. That split only exists if HubSpot shows the right owner. When the admin owns every new record, HubSpot cannot tell you which rep should be working which account.

    How do you stop duplicate and orphan contacts after the sync?

    ZoomInfo runs its duplicate check in a fixed order. For contacts, it looks for a matching email address first. If there is none, it tries first name plus last name plus exact company name. Companies are matched on the company domain.

    HubSpot matches on the same keys. HubSpot's deduplication docs say it automatically deduplicates contacts by email address and companies by domain name. So a contact who shows up with a new email address slips past the email check.

    Subdomains cause a second miss. With automatic association on, HubSpot's company association docs say it creates a separate company record for each unique domain, including subdomains. So @example.com and @info.example.com become two companies.

    ZoomInfo's own order has a blind spot too. Take a contact whose email has changed, with the company written "Acme Ltd" in HubSpot and "Acme Limited" in ZoomInfo. Both checks miss, and the person arrives as a new record.

    When a match is found, the export flags it, and the user chooses to update the existing record, create a duplicate or skip the record, from the options the admin has allowed.

    Orphans are the other trap. ZoomInfo does not link exported contacts to companies; each contact arrives as an independent record. To link them automatically, you switch on HubSpot's own setting that creates and associates companies with contacts.

    SettingWhat it doesRecommended choice
    Admin duplicate defaultDecides what users see when an export finds a matchDefault to updating the existing record, and remove the create-duplicate option from users
    Update option per fieldComplete if missing (the default) writes only into empty fields; Overwrite field replaces what HubSpot holdsStart with Complete if missing everywhere; switch a field to Overwrite only after comparing a sample by hand
    Dropdown and radio mappingMapped values must match HubSpot's internal values, and case countsCheck every picklist before saving
    Test MappingExports and deletes one test recordRun it after every mapping change
    Company associationNot done by ZoomInfoTurn on HubSpot's automatic association before the first export

    Enrichment is a snapshot of one day. People change jobs and companies rename themselves, so plan re-runs for the records you actually work (how fast B2B contact data goes stale).

    What does ZoomInfo import from HubSpot, and how often?

    Import is switched on as soon as you connect. ZoomInfo reads only the records and fields the connected user can access, takes every accessible field on each object, and stores both matched data (records already in your HubSpot) and non-matched data. The decision rule: if a field must stay out of ZoomInfo, remove the service account's access to it in HubSpot before you connect.

    ItemTiming or limit
    Incremental importHourly, covering only records updated since the last run
    Backfill (full sync)On first connection, after import mapping or import rule changes, or when someone presses Sync Now
    Advanced Search filter dataRefreshed every 24 hours
    Record limit20 million each for the account, contact and opportunity objects
    Custom HubSpot fields usable as filtersUp to 3
    Owners per object type in filtersUp to 10

    A deal stage changed this morning reaches ZoomInfo within the hour, but filters can lag a day. With more than 10 reps, you cannot filter on every owner.

    Will the sync hit HubSpot's API limits?

    HubSpot's developer documentation sets the limits by app type and plan (HubSpot API usage guidelines). A marketplace app using OAuth gets 110 requests every 10 seconds per installing account, with the CRM Search API excluded from that figure. Private apps follow the plan:

    Private app limitsPer 10 seconds, per appPer day, per account
    Free and Starter100250k
    Professional190625k
    Enterprise1901M
    API Limit Increase, per increase2501M added

    You can buy a maximum of two increases, and they do nothing for marketplace apps. Go over a limit and HubSpot returns a 429 error with the type RATE_LIMIT. HubSpot asks that these errors stay under 5% of your daily requests, and the daily count resets at midnight in the account's time zone.

    HubSpot's page never says which of these rows a ZoomInfo connection falls under, and ZoomInfo's guide tells you to ask HubSpot Support how many calls your account has. Ask before go-live, and run backfills on a day when no other integration runs a big job.

    How does HubSpot's Prospecting Agent use ZoomInfo?

    In HubSpot, go to Sales > Prospecting Agent, click Integrations under Manage, click Connect, then choose Connect to ZoomInfo in the dialog. The connection exists so the agent can find new contacts and add them to a play, beyond the contacts already in your CRM.

    Four rules from HubSpot's knowledge base shape the decision:

    • HubSpot allows a single outside data source to be linked in the agent at any moment. Apollo and Surfe are among the other options, so picking ZoomInfo rules them out.
    • The agent spends HubSpot Credits each time it writes a personalized email for a lead, whether the lead was recommended or enrolled by hand.
    • Setup needs a Super Admin or a user with the prospecting agent access permission.
    • The AI settings must be switched on: user access to generative AI tools, plus CRM data, customer conversation data and files data.

    Your prospects do not care which AI platform wrote the email. Feed the agent a loose ZoomInfo search and it sends weak email faster, at a credit cost per lead.

    What does the ZoomInfo HubSpot integration cost?

    Prices at the time of writing. The bill has two sides: ZoomInfo and HubSpot.

    On the ZoomInfo side, every path needs ZoomInfo access. The Connector runs on your ZoomInfo account, the Prospecting Agent asks for a ZoomInfo login, and Inbound Enrich needs its own Inbound Enrich subscription. ZoomInfo's integration page publishes no price for any of this and routes buyers to its sales team (ZoomInfo HubSpot integration page).

    Get the quote in writing, with credits and seats spelled out. If you are still choosing the data vendor itself, compare the options in ZoomInfo alternatives. If the choice is between ZoomInfo and Cognism, Cognism vs ZoomInfo sets the two side by side, and teams on Salesforce can read about the Salesforce integration instead.

    ItemPublished priceNote
    ZoomInfo subscription (needed for the Connector and the Prospecting Agent login)No published priceQuote from ZoomInfo sales
    ZoomInfo HubSpot ConnectorNo published priceQuote from ZoomInfo sales
    ZoomInfo Inbound Enrich"$100 /1 credit per new record + 5-15 AI credits per API call"Consumption-based, needs an Inbound Enrich subscription; the HubSpot Marketplace listing shows it "for display purposes only", so confirm the real rate with ZoomInfo
    HubSpot Sales Hub Free$0 per monthUp to 2 users, no credit card needed
    HubSpot Sales Hub StarterFrom $7 per seat per month500 HubSpot Credits a month; any listed discount applies to new customers only
    HubSpot Sales Hub ProfessionalFrom $90 per seat per month3,000 HubSpot Credits a month; plus a $1,500 one-time onboarding fee
    HubSpot Sales Hub EnterpriseFrom $150 per seat per month5,000 HubSpot Credits a month; plus a $3,500 one-time onboarding fee

    HubSpot prices come from its US pricing page (HubSpot Sales Hub pricing). Credits reset monthly and do not roll over, and extra credits are listed at $0.010 each. Recheck every page on the day you buy.

    The Inbound Enrich bill rises with inbound volume, so ask for an estimate based on your real form traffic.

    My team's monthly fee covers our own work only; ZoomInfo, HubSpot and any other data or software are paid by the client straight to each vendor.

    Is a synced ZoomInfo list ready to send cold email to?

    No. The sync moves records. It never checks whether an address still works or whether the person can buy from you.

    No setting covers that check. When outbound goes quiet, I open the list before I open the emails. The usual culprits are wrong titles, mixed company sizes and addresses nobody checked. A clean integration makes a weak list look trustworthy, because every row now sits in HubSpot with an owner attached. Even great copy cannot save a bad list.

    Quality is not enough on its own, you need enough names too. Even 50-100 perfect-fit leads a month is a coin flip: some are busy, some are not ready, some simply do not care. My rule of thumb: 30 to 35 booked sales meetings a month takes contacting at least 10,000 people a month.

    So I treat ZoomInfo as one source, never the whole list. My team combines it with Apollo, Sales Navigator, RocketReach and UpLead. A list built from those beats anything scraped. The cheap shortcut fails in a predictable way: a list bought cheap from a freelancer gets weak opens and a bounce rate that hurts the domain.

    Whatever the source, every address gets verified before it is sent, with a tool such as NeverBounce or DeBounce, and the bounce rate stays below 0.5 percent.

    I cover what a good bounce rate looks like and why it protects your domain in a separate post. And if the CRM is still half set up when the first replies come in, read why I want it ready before anyone replies.

    Run this checklist before the first export goes into a sequence:

    1. Rep emails match in User Mapping.
    2. You know who the primary connected admin is.
    3. Users cannot create duplicates.
    4. Test Mapping has passed.
    5. Company association is on.
    6. Backfills sit on a quiet day.
    7. Every exported list is verified before it enters a sequence.

    Then open a sample of synced records and compare each one with the person's current LinkedIn profile. Any record with a new title or a new employer goes back for re-enrichment, and any person with no reason to buy from you comes off the list before the sequence starts.

    Planning to connect ZoomInfo to HubSpot and worried about the bill? Book a call and send me the quote. I will tell you what I would question.

    Questions people ask about the ZoomInfo HubSpot integration

    Why does the ZoomInfo admin show up as the owner of exported contacts?

    On a service account connection, ownership follows email matching. If the exporting rep's email is identical in ZoomInfo and HubSpot, the rep owns the new record. If the two differ, for example because of an alias, ZoomInfo's guide says the owner becomes the primary connected admin. Fix the User Mapping table before anyone exports.

    Does ZoomInfo attach exported contacts to companies in HubSpot?

    No. ZoomInfo does not link exported contacts to companies, so each contact arrives as an independent record. Turn on HubSpot's own setting that creates and associates companies with contacts before the first export, and remember that each unique domain, subdomains included, becomes its own company.

    Do I need my own ZoomInfo login to use the Prospecting Agent with ZoomInfo data?

    Yes. After you click Connect to ZoomInfo, HubSpot opens a pop-up where you sign in with ZoomInfo credentials, so a working login must exist before setup. Write down whose credentials the connection uses, so it does not quietly break when that person leaves.

    Does the ZoomInfo connection work in a HubSpot sandbox account?

    Partly. HubSpot says credit actions cannot be completed in sandbox accounts, so the Prospecting Agent cannot write its credit-based emails there. For the Connector, ZoomInfo's guide warns teams that switch between sandbox and production to check user mapping and press Reset Mapping, so owners match the users in the instance actually connected.

    Want to get more B2B clients for your business?

    I help B2B companies book 10 to 100+ qualified sales calls per month with outbound. Let's see if it fits yours.

    Artem Smirnov
    Artem Smirnov

    I help B2B companies book qualified sales calls with cold email and LinkedIn outbound.