ZoomInfo Salesforce Integration: Setup, Mapping and Credits (2026 Guide)

In this article
- The ZoomInfo Salesforce integration has three parts: a platform connection that exports ZoomInfo companies and people into Salesforce accounts, contacts and leads (and imports Salesforce data back into ZoomInfo), a managed package from AppExchange (now AgentExchange) with an inline ZoomInfo panel and custom objects, and Enrich, which updates records instantly on creation or on a schedule.
- Every mapped field has one of two update options: Complete if missing (the default) or Overwrite. ZoomInfo itself recommends Overwrite only on custom fields built for ZoomInfo data, so standard fields your reps edit stay safe.
- Credits are the real budget line: each new record exported or enriched costs one, sandbox testing included. Set credit limits on scheduled jobs and decide your duplicate rules before anyone exports at scale.
- If you need logic the integration doesn’t offer (multi-vendor enrichment, approvals, other objects), build a custom flow on the ZoomInfo API or use an iPaaS. The quiz below sorts out which one fits.
Jump to
- What the ZoomInfo Salesforce integration does
- The parts of ZoomInfo’s Salesforce integration
- Your options compared
- How the data flows
- Field mapping and overwrite rules
- Credits: what costs what
- How to set it up, step by step
- Duplicates, ownership and API limits
- Pitfalls and how to fix them
- Data governance and privacy
- When to go beyond the built-in integration
- Go-live checklist
- Where Gilzor fits
What the ZoomInfo Salesforce integration does
Sales and marketing teams buy ZoomInfo for company and contact data: firmographics, job titles, emails, direct dials, intent signals. Salesforce is where that data has to end up, attached to the right account and owned by the right rep.
A good integration does four jobs:
- Create records. A rep finds a buying committee in ZoomInfo and exports it as contacts or leads, without retyping anything.
- Fill gaps. Leads from web forms arrive with a name and an email. Enrichment adds company size, industry, title and phone.
- Keep records current. People change jobs and companies change size. Scheduled enrichment refreshes what you already have.
- Avoid waste. ZoomInfo knows which companies and people already exist in Salesforce, so reps don’t pay credits for records the team already owns.
It is not a free data refill. Every new record costs a credit, and every field ZoomInfo is allowed to overwrite is a field your reps can no longer trust their own edits on. Plan both before you connect.
The parts of ZoomInfo’s Salesforce integration
ZoomInfo’s technical documentation splits the integration into several pieces you switch on separately. As of October 2026, they are:
| Part | What it does | Direction | Set up in |
|---|---|---|---|
| Platform integration (export) | Users export ZoomInfo companies and people as Salesforce accounts, contacts or leads, with your field mapping and duplicate checks | ZoomInfo → Salesforce | ZoomInfo Admin Portal |
| Salesforce Import | ZoomInfo reads your accounts, contacts, leads, opportunities, activities and users to flag existing records, filter searches by owner and power its AI features | Salesforce → ZoomInfo | ZoomInfo Admin Portal (on by default) |
| Native App (managed package) | Inline ZoomInfo panel on lead, contact and account pages, a ZoomInfo tab, a dashboard, and custom objects for full ZoomInfo data, Scoops and Intent | Inside Salesforce | AppExchange, then Salesforce Setup |
| Instant Enrich | Appends ZoomInfo data to leads, contacts and accounts as they are created in Salesforce | ZoomInfo → Salesforce | Admin Portal plus the package |
| Scheduled Enrich | Recurring jobs that enrich all records, a list view or a filtered set, with credit limits per run | ZoomInfo → Salesforce | Admin Portal plus the package |
ZoomInfo Copilot customers can also turn on CRM writeback, which logs emails, calls and meetings done in Copilot as Salesforce tasks or events.
Requirements
- Salesforce edition: the integration needs the REST API, which ZoomInfo’s guide lists as included in Enterprise, Unlimited, Performance and Developer editions. Professional Edition needs paid API access. Exports of 200 records or more also use the Bulk API.
- Salesforce user: API access, View Setup and Configuration, Run Reports, read and write on Account, Contact, Lead, Campaign and Campaign Member, and read on Opportunity and User. ZoomInfo recommends a Salesforce integration user as the service account; supported Salesforce editions include a limited number of Integration user licenses, as our Salesforce integration user guide explains.
- ZoomInfo side: an admin with an Admin Portal seat. ZoomInfo’s public pricing page lists CRM integrations, Salesforce included, from its Professional plan for sales teams. Enrich is described as a feature of ZoomInfo Sales and needs an Enrich subscription, so confirm what your contract covers.
- Package version: for Instant Enrich, current package versions authenticate through a Salesforce Named Credential with a self-signed certificate. ZoomInfo notes that the certificate expires after one year and has to be recreated.
Your options compared
ZoomInfo’s own integration covers most teams. The alternatives matter when you need logic it doesn’t have, or when ZoomInfo is not your only data source.
| ZoomInfo export and Native App | ZoomInfo Enrich | iPaaS or other enrichment tools | Custom on the ZoomInfo API | |
|---|---|---|---|---|
| What it does | Reps push chosen records into Salesforce and see ZoomInfo data on record pages | Automatic enrichment of new and existing leads, contacts and accounts | Workflows across several tools (Workato, MuleSoft, Zapier, Make) or other data providers | Your own enrichment service on ZoomInfo’s API |
| Objects | Account, Contact, Lead; Scoops and Intent on accounts | Account, Contact, Lead | Depends on the tool and connector | Any Salesforce object you design for |
| Direction | Export to Salesforce; import back to ZoomInfo | ZoomInfo → Salesforce | Your design, usually one-way per flow | Your design |
| Cost level | Included with supported ZoomInfo plans; credits per export | Enrich subscription plus credits | Platform subscription plus data provider fees | Build cost, API package and credits |
| Typical effort | Hours to days | Days to a few weeks with testing | 1–4 weeks | Several weeks |
| Limits | Fixed mapping options; Native App exports capped at 5,000 records | Standard objects only; one vendor’s data | Costs grow with volume; vendor mapping rules | You own retries, monitoring and API changes |
Salesforce’s Data 360 (formerly Data Cloud) documentation also lists a ZoomInfo connector for bringing ZoomInfo data into Data 360. That suits analytics and segmentation; it doesn’t replace the CRM integration for reps.
Which option fits you?
Answer five questions about what you need from ZoomInfo data, where it should land and whether other providers are involved. The result names the setup that matches your answers.
Which ZoomInfo Salesforce setup fits?
How the data flows
The setup that holds up: ZoomInfo is the source for firmographic and contact facts (company size, industry, title, phone). Salesforce stays the system of record for ownership, status, consent and anything a rep learned in a conversation.
Field mapping and overwrite rules
ZoomInfo ships default mappings for accounts, contacts and leads, and you can add any standard or custom Salesforce field. For each row you choose one update option:
- Complete if missing (default): writes ZoomInfo data only if the Salesforce field is empty.
- Overwrite: replaces whatever is in the field with ZoomInfo’s value.
ZoomInfo’s own recommendation is to keep every standard Salesforce field on Complete if missing and use Overwrite only on custom fields created for ZoomInfo data. That gives you both: the rep’s phone number stays where they typed it, and a field such as “ZI Direct Phone” always shows the latest ZoomInfo value next to it.
| ZoomInfo | Salesforce | Update option | System of record |
|---|---|---|---|
| Company ID | Account: ZoomInfo Company ID (package field) | Overwrite | ZoomInfo |
| Company name, website | Account Name, Website | Complete if missing | Salesforce |
| Employees, revenue, industry | Custom “ZI” fields on Account | Overwrite | ZoomInfo |
| Contact ID | Contact and Lead: ZoomInfo Contact ID | Overwrite | ZoomInfo |
| Job title, department, management level | Title (standard) plus custom “ZI” fields | Complete if missing on Title; Overwrite on ZI fields | Salesforce for Title |
| Direct phone, company phone | Phone (stacked: direct first, company second) | Complete if missing | Salesforce |
| Complete if missing | Salesforce | ||
| Person Has Moved | Custom text field | Overwrite | ZoomInfo |
| Scoops, Intent | ZoomInfo custom objects, related lists on Account | Written by ZoomInfo | ZoomInfo |
| Owner, lead status, opt-outs | Not mapped | Never written by ZoomInfo | Salesforce |
Two features reduce how many fields you need. Field hierarchy maps two ZoomInfo fields to one Salesforce field in priority order: for example, direct phone first and company phone as a fallback.
The ZoomInfo custom object stores every default ZoomInfo field for a record in a related list. ZoomInfo says it costs no extra credits, so you can keep the main page layout short.
When ZoomInfo sees that a person has left a company, Scheduled Enrich by default updates the record to the new employer. ZoomInfo does not move the contact to a new account for you. Map the Person Has Moved field and give someone a report to work, or turn the setting off and keep the old company data.
Credits: what costs what
According to ZoomInfo’s pricing page, packages include a set number of monthly credits, and each export of a contact or company profile uses one. The details that matter for Salesforce:
- New record, one credit. Exports, Enrich matches and Enrich API calls all charge the first time a record is used. ZoomInfo’s API documentation says a record then stays “under management” for 12 months, and re-enriching it in that window is free.
- Sandbox costs the same. ZoomInfo warns that Enrich in a Salesforce sandbox still uses credits, and recommends testing in small batches.
- Scheduled jobs can be capped. Each job offers no limit (the default), only records already under management (no credits), or a fixed credit cap per run, with the rest carried to the next run.
- Buying committee exports add up. An account job can also export up to 10 contacts per account that match titles, functions and levels you pick, and each one costs a credit.
- Free extras. The ZoomInfo custom object, Search in the API and records already under management don’t consume new credits.
Before the first full job, filter out records you will never sell to: closed-lost junk, students, competitors, personal email domains. Enriching them costs the same as enriching your best prospects.
How to set it up, step by step
Settle the rules first and click last; most ZoomInfo rework comes from mapping fields before anyone agreed who owns them. For the exact screens, keep ZoomInfo’s Salesforce integration guide, Native App guide and Enrich guide open, since their labels change.
- Decide the rules on paperWhich fields ZoomInfo may fill, which it may overwrite, who owns exported records, which records are worth credits, and which duplicate behavior reps get. This one page becomes your mapping.
- Prepare the Salesforce userCreate a dedicated integration user with API access and the permissions ZoomInfo lists. Exports and filtering jobs run as this service account, and the person who connects it becomes the primary connected admin, the only one who can disconnect.
- Create custom fieldsAdd “ZI” fields for the data you will overwrite (employees, revenue, industry, direct phone, Person Has Moved) and confirm field-level security for the integration user. ZoomInfo publishes a spreadsheet of fields it can enrich.
- Install the managed package in a sandboxFrom AppExchange, install “ZoomInfo - GTM Intelligence Platform” for all users. It adds the ZoomInfo Contact ID and Company ID fields that Enrich mapping requires.
- Connect from the Admin PortalIn ZoomInfo, open Admin Portal, then Integrations, connect Salesforce with the integration user, and keep the default Service Account option unless every rep must connect personally.
- Check user mappingZoomInfo matches its users to Salesforce users by email, then by name. Fix gaps, because unmatched users’ exports are owned by the connecting admin.
- Configure export settings and mappingPick the objects users may export and set a per-export maximum. Choose Complete if missing or Overwrite per field, set account association for contacts, pick standard or Salesforce duplicate rules, and run Test Mapping.
- Scope Salesforce ImportReview which objects and fields the integration user can read, add import rules to exclude records ZoomInfo shouldn’t see, and check your data sharing settings.
- Set up Enrich, if licensedConfigure the Named Credential and certificate for Instant Enrich, assign the ZoomInfo permission sets and add an optional SOQL filter. Then create one Scheduled Enrich job with a credit cap and a small list view.
- Add the panel and launchPut the ZoomInfo Lightning component on lead, contact and account pages and run a pilot with one team. Review the Enrich dashboard and duplicates, then repeat in production and switch the integration on for users.
Built by Gilzor
Results we’ve shipped




Talk to the people who build it. Tell us about your project and get a free estimate of scope, timeline and cost.
Duplicates, ownership and API limits
How duplicate checking works
On export, ZoomInfo looks for existing Salesforce records in a fixed order. For accounts: ZoomInfo ID, then website, then exact company name. For contacts and leads: ZoomInfo ID, then email, then first name, last name and exact company name.
If a person exists as both a contact and a lead, the contact is shown as the duplicate. The rep then updates the existing record, creates a duplicate or skips it, within the choices the admin allows.
Already maintain Salesforce matching and duplicate rules? You can let them replace ZoomInfo’s logic per object. ZoomInfo notes this option needs the Author Apex permission for the connected user, which is a broad permission to grant. Our Salesforce data integration guide covers matching keys and dedupe in more depth.
The reverse problem exists too: if Salesforce holds several accounts for one company (for example one per office), ZoomInfo matches only one of them to its company profile.
Record ownership and lead assignment
With a service account, a new record is owned by the exporting rep when their ZoomInfo and Salesforce emails match; Created By shows the connecting admin.
Lead assignment is the catch. ZoomInfo’s guide says assignment rules run only on small exports and are skipped on larger ones, so big list exports land with the exporting user. The guide is not consistent on the cut-off (25 new records in its ownership examples, 200 in its export settings section), so test with your own exports before you rely on routing.
If round-robin or territory routing matters, cap export sizes or route with a Flow after import.
Salesforce API consumption
- Exports of up to 199 records use the REST API; 200 or more use the Bulk API, up to a per-export maximum of 100,000 that you set. Exports from the Native App inside Salesforce don’t use the Bulk API and are capped at 5,000.
- Instant Enrich uses two API calls per record: one to read current values (for the Complete if missing check) and one to write.
- Scheduled Enrich queries in batches of 10,000 by default; smaller batches use more API calls.
- Salesforce Import runs incrementally, currently every hour, in Bulk API batches of 10,000, with a full backfill on first connection or when import mapping changes.
Add these to your other integrations before you schedule a full-database job, and check your org’s daily API allocation in Salesforce Setup.
Pitfalls and how to fix them
| Problem | What happens | Fix |
|---|---|---|
| Rep edits overwritten | Overwrite on a standard field replaces numbers and titles reps corrected by hand | Complete if missing on standard fields; Overwrite only on “ZI” custom fields |
| Credits burned in testing | A sandbox job runs against the full database and spends real credits | Test on a small list view with a credit cap; agree a test budget with ZoomInfo |
| Duplicate accounts and contacts | Name-based matches miss “Acme Inc.” vs “Acme, Inc”, and reps choose “create” | Clean duplicates first; populate ZoomInfo IDs and website; restrict the “create duplicate” option |
| Wrong owner on new leads | Large exports skip assignment rules; unmapped users’ records go to the admin | Fix user mapping; cap export size or reassign with a Flow |
| Stale job changes | People who moved stay on the old account, or get silently updated to a new employer | Map Person Has Moved; give a team a weekly report and a rule for re-parenting |
| Integration tied to a person | The primary connected admin leaves, and nobody can disconnect or switch the account | Connect with a dedicated integration user; document the admin handover in your runbook |
| Too much data to ZoomInfo | Import reads every object and field the connected user can see | Limit the integration user’s permissions and use import rules |
| API limits | Instant Enrich and big jobs compete with other integrations for daily calls | Schedule jobs off-peak; keep Bulk batch sizes large; monitor API usage |
| Expired certificate | Instant Enrich stops after the yearly certificate expires | Calendar reminder and a documented renewal step |
Data governance and privacy
ZoomInfo data in Salesforce is personal data about real people, even when it is a work email. Treat the integration as a data flow you can explain to a customer, an auditor or a regulator.
- Know what goes back. ZoomInfo’s guide says Salesforce Import stores both matched and non-matched records from the objects it reads. Scope the integration user, use import rules, and review the Data Sharing page in the Admin Portal against your contract.
- Keep the source. A lead source or “ZI” field on every created record tells you where data came from when someone asks.
- Never overwrite consent. Opt-outs and Do Not Call flags live in Salesforce and should not be mapped from ZoomInfo.
- Plan for deletions. When a person asks you to delete their data, delete or anonymize the Salesforce record and make sure a scheduled job or rep export doesn’t bring it back.
In general terms, US privacy law reaches B2B data too. The CCPA’s business-to-business exemption expired on January 1, 2023, so California residents who are business contacts have CCPA rights.
According to the California Privacy Protection Agency (now also called CalPrivacy), data brokers must register with the state. From August 1, 2026, registered brokers must check the state’s Delete Request and Opt-out Platform (DROP) at least every 45 days and process deletion requests. Other states and the GDPR add their own rules.
This is not legal advice: agree your use of purchased contact data with counsel before go-live.
When to go beyond the built-in integration
Other enrichment providers. Many teams combine ZoomInfo with other B2B data sources (for example Dun & Bradstreet, Apollo.io, Cognism or Lusha) or a waterfall that tries one vendor after another.
ZoomInfo itself advertises multi-vendor waterfall enrichment in its Operations product and GTM Studio; otherwise an iPaaS or a custom service orchestrates the order. Compare match rates on a sample of your own records before you buy. If social selling is part of the picture, our LinkedIn Salesforce integration guide covers that link.
Custom on the ZoomInfo API. ZoomInfo states that its API can’t be used to connect a CRM through the ZoomInfo platform; instead you build your own application. According to ZoomInfo’s current API documentation:
- Requests authenticate with OAuth 2.0; a client credentials flow suits server-to-server jobs.
- Search calls don’t use credits, and each new enriched record costs one.
- Enrich calls take up to 25 records each.
- The Standard package allows 25 requests a second, with hourly and daily caps on top.
Asynchronous jobs and webhooks cover larger workloads and completion events. Endpoint access depends on the API package you buy.
Custom work starts to pay off when:
- You need ZoomInfo data on opportunities or custom objects, not only leads, contacts and accounts.
- Enrichment must pass approval or scoring rules before it reaches Salesforce.
- You run a multi-provider waterfall and want one place to track spend and match rates.
- You enrich in a warehouse first and push only selected records to Salesforce.
A typical build is a small service with a queue. Salesforce Change Data Capture or Platform Events pick up new records, the ZoomInfo Enrich API fetches data, and idempotent upserts by ZoomInfo ID write it into Salesforce. A credit ledger and alerts sit around them. Our Salesforce API integration guide covers the Salesforce side.
ZoomInfo licenses and credits come on top of these build ranges. Our API integration cost guide is their source. For other systems and patterns, see the Salesforce integration guide.
Go-live checklist
Check off what your team has already settled, from field rules to credit caps. The score tells you whether you are still planning, ready for a capped sandbox test or ready to switch reps on.
ZoomInfo Salesforce go-live
FAQ
Does ZoomInfo integrate with Salesforce?
Which Salesforce editions work with ZoomInfo?
Does ZoomInfo overwrite data in Salesforce?
How many ZoomInfo credits does Salesforce enrichment use?
How does ZoomInfo prevent duplicates in Salesforce?
Is it legal to load ZoomInfo contact data into Salesforce?
Where Gilzor fits
The hard part of a ZoomInfo rollout is agreeing field rules, ownership and a credit budget before the first export. We can work through those decisions with your sales ops team. Gilzor, a Poland- and Cyprus-based software development company, builds and maintains Salesforce integrations.
From there we configure ZoomInfo’s integration and Enrich in a sandbox first, or build a custom enrichment flow on the ZoomInfo and Salesforce APIs, and keep supporting it after launch. Scoping details are on our Salesforce integration services page.
No sales pitch
Get a straight answer for your project
Tell us what you’re building. We’ll reply with options, a rough cost and timeline. If we’re not the right fit, we’ll say so.

Co-Founder of Gilzor. Works with founders and product companies on how to staff and run engineering: team extension, dedicated teams, and getting stalled projects moving again.
Gilzor · Web Development partner
Need a team for your web product?
Services
Web DevelopmentCustom websites and web apps — front-end, back-end, launch and support.→By company type
Selected projects






The team behind them





