Claim 250 credits on our Scale plan for free

Salesforce Data Enrichment: How to Enrich Leads, Contacts and Accounts

CleanlistThe short answer

Salesforce data enrichment is the process of filling in and correcting fields on Salesforce Lead, Contact and Account records from external data sources, so a record captured with nothing but a name and a company comes back with a verified work email, a direct dial, a normalized job title, and firmographics such as industry and employee count. Salesforce retired Data.com Clean in 2020 and the core CRM has shipped no general purpose contact enrichment since, so the data comes from a third party that connects to the Salesforce REST API over OAuth, reads the records, looks each one up, and writes the result back to standard fields (Email, Phone, MobilePhone, Title, Industry, NumberOfEmployees) or to custom fields you map. There are four practical delivery paths: a native OAuth sync, a CSV round trip through Data Loader, an API call fired from a Salesforce Flow or an Apex trigger, and a managed package installed from AppExchange. Cleanlist takes the first three, running each record through a 25+ provider waterfall built to a 98% verified work email and 85% direct dial spec on its published 500-lead benchmark, and matching every contact to the right Account, creating one when it is missing.

  1. 01What is Salesforce data enrichment?
  2. 02Why does Salesforce need enrichment at all?
  3. 03Which Salesforce objects can you enrich, and what lands where?
  4. 04How do you enrich Salesforce Leads?
  5. 05How do you enrich Salesforce Contacts and Accounts?
  6. 06What are the four ways to get enriched data into Salesforce?
  7. 07Does Cleanlist have a Salesforce AppExchange app?
  8. 08How does Cleanlist connect to Salesforce, and what does setup involve?
  9. 09How much does it cost to enrich a Salesforce database?
  10. 10How do you avoid overwriting good Salesforce data?
  11. 11How do you keep Salesforce enriched over time instead of once?
  12. 12What can Salesforce enrichment not fix?
  13. 13How do you measure whether Salesforce enrichment worked?
  14. 14When is Cleanlist the wrong tool for Salesforce enrichment?
  15. 15What are the best data enrichment tools for Salesforce?
  16. 16Do you have to deduplicate Salesforce before you enrich it?
  17. 17Should Salesforce enrichment run on record creation or on a schedule?
  18. 18How do you map enrichment output to Salesforce fields without breaking anything?
  19. 19What does the Cleanlist Salesforce integration sync, and what does it not?
  20. 20What can Salesforce enrich natively, with no third-party tool?
  21. 21What does a Salesforce record look like before and after enrichment?
  22. 22How fast does Salesforce data decay, and which fields go first?
  23. 23What does Google say about Salesforce data enrichment today?

What is Salesforce data enrichment?

Salesforce data enrichment is appending and correcting field values on Salesforce records using data that did not come from your own forms, reps or imports. The input is whatever identifier the record already carries, usually an email address, a full name plus a company, or a company domain. The output is written back onto the same record: Email, Phone, MobilePhone, Title on the person, and Industry, NumberOfEmployees, Website on the company. Two things separate it from data cleansing, which is the neighbouring job. Cleansing works only with what is already in your org: it deduplicates, standardizes 'VP Sales' and 'Vice President of Sales' into one value, fixes formatting, and deletes records that are beyond recovery. Enrichment reaches outside the org for information Salesforce never had. A Lead that arrived from a webinar registration with a personal Gmail address and a company name cannot be cleansed into a work email and a direct dial, because that information was never in the org to clean. It has to be enriched. Most Salesforce teams need both, in that order: cleanse first so you are not paying to enrich duplicates, then enrich the survivors.

Why does Salesforce need enrichment at all?

Salesforce is a system of record, not a system of reference: it stores what your people and forms put into it, and it does not go and find anything on its own. That produces three predictable gaps in every org. The first is capture gaps. A web form that asks for four fields creates a Lead with four fields, and a rep who wants to call that person has to go and find a phone number by hand. The second is decay. Records are accurate on the day they are created and progressively wrong afterwards, because people change jobs, companies get acquired, domains change, and job titles get renamed, and nothing inside Salesforce notices. The third is the absence of a native fix. Data.com Clean, the enrichment service Salesforce sold as an add-on, was retired in 2020, and the entitlement to it stopped working with it. Data Cloud enrichments are a genuine Salesforce-native path, but they require a Data Cloud license and a configured data stream, which is a different product and a different budget from Sales Cloud. For most Sales Cloud orgs the practical position is that enrichment is a third-party job, and the only real question is which delivery path you use.

Which Salesforce objects can you enrich, and what lands where?

Three standard objects carry almost all enrichable data: Lead, Contact and Account. They behave differently and the difference matters. Lead is a flat object that holds both person and company data on a single row (Email, Phone, MobilePhone, Title, Company, Website, Industry, NumberOfEmployees, AnnualRevenue all sit on the Lead), which makes it the easiest object to enrich and the one most enrichment runs start with. Contact holds person data only and is related to a company through AccountId, so firmographics enriched for a Contact belong on its parent Account rather than on the Contact itself. Account holds the company: Name, Website, Industry, NumberOfEmployees. Cleanlist writes to all three. Its field map for Salesforce is explicit: a verified work email goes to Email on Lead and Contact, direct dial and mobile to Phone and MobilePhone, job title and seniority to Title, company and domain to Account Name and Website, industry to Account Industry, employee count to Account NumberOfEmployees. Two outputs have no standard home and require a custom field you create once, which is the detail most vendor pages leave out: the LinkedIn URL lands in Cleanlist_LinkedIn__c and the ICP score in Cleanlist_ICP_Score__c. Any AI research column you configure can be mapped to any custom field on Lead, Contact or Account.

How do you enrich Salesforce Leads?

Enrich Leads before conversion, because after conversion the record splits and the work doubles. A Lead is a single row, so one enrichment pass fills the person fields and the company fields at the same time. The moment that Lead converts, IsConverted flips to true, the row becomes read-only, and the same data now has to be written to a Contact, an Account and possibly an Opportunity instead. Enriching pre-conversion also improves conversion itself: Salesforce matches a converting Lead to an existing Account by company name, so a Lead whose Company field has been normalized to the company's real name (rather than 'acme' or 'Acme Corp.' as the prospect typed it) is far more likely to attach to the Account you already own instead of creating a duplicate. The practical order is: Lead is created, enrichment runs, the Company and Website fields get standardized, the Email is verified, the Title is normalized into a seniority you can route on, an ICP score is written, assignment rules fire on the enriched values, and only then does a human see it. Routing on unenriched Leads is the single most common cause of good Leads sitting in the wrong queue, because the fields your assignment rules read are empty at the moment the rules run.

How do you enrich Salesforce Contacts and Accounts?

Enrich Contacts and Accounts as a pair, because the data model splits person from company and enrichment output arrives mixed together. A Contact enrichment returns an email, a phone, a title and a set of firmographics, and only the first three belong on the Contact. The firmographics belong on the Account referenced by AccountId, and writing them onto the Contact instead is how orgs end up with industry values that disagree between a company's own Account and the twelve Contacts hanging off it. The harder case is a Contact with no AccountId, or with an AccountId pointing at a duplicate Account. Cleanlist handles this by matching each contact to the right Account and creating one when it is missing, so the hierarchy stays intact rather than accumulating orphans. For Accounts specifically the input is the domain, not the name: company names are ambiguous and shared across jurisdictions, domains are not, so an Account whose Website field is populated enriches reliably and an Account with only a Name field is a coin flip. If your Accounts have no Website values, populating that one field first is the highest-leverage thing you can do before spending anything on enrichment.

What are the four ways to get enriched data into Salesforce?

There are four delivery paths, and they trade setup effort against latency. First, a native OAuth connection to the Salesforce REST API: the vendor authenticates against your org, reads records, enriches, and writes back to fields you map, with no package to install. Setup is minutes and it covers both bulk backfills and ongoing enrichment. Second, a CSV round trip: export Leads or Contacts from a report, enrich the file, and load it back with Data Loader or the Data Import Wizard, keyed on the record Id so the update lands on the right row. It is slower and manual, it requires no connected app and no admin approval, and it is the only path available to teams whose security review has not cleared a third-party connection. Third, the REST API called from Salesforce itself: an Apex trigger or a Flow with an HTTP callout fires on Lead creation, hits the enrichment endpoint, and writes the response back in near real time. This is the path for enrich-on-create. Fourth, a managed package from AppExchange, which some vendors require and which brings its own install, upgrade and package-management overhead. Cleanlist supports the first three. It connects with OAuth 2.0 to production or sandbox orgs, needs no managed package, and exposes POST /sync/crm for programmatic pushes at 0.2 credits per lead.

Does Cleanlist have a Salesforce AppExchange app?

No. Cleanlist is not listed on AppExchange and ships no managed package. It connects with OAuth 2.0 directly against the standard Salesforce REST API, which has two consequences worth knowing before you choose it. The advantage is that there is nothing to install, nothing to upgrade, and no package namespace in your org: an admin authorizes a connected app, picks the objects and fields, and that is the whole setup. Disconnecting stops future writes and leaves every value Cleanlist already wrote in place. The disadvantage is that a security review that specifically requires an AppExchange-listed, Salesforce-reviewed package will not be satisfied by this, and there is no Lightning component, no packaged Flow action and no custom Salesforce UI. Everything is configured on the Cleanlist side or called from your own Apex and Flows. If an AppExchange listing is a hard procurement requirement in your organization, that is a genuine reason to choose a different vendor, and it is better to find that out on this page than three weeks into an evaluation.

How does Cleanlist connect to Salesforce, and what does setup involve?

Setup is a three-step OAuth flow against production or a sandbox. Step one, authorize with OAuth 2.0. Professional, Enterprise and Unlimited editions are supported, and because the integration uses the standard Salesforce API there is no package install and no namespace added to your org. Sandbox orgs are supported on the same flow, so the whole configuration can be proved on a sandbox before it ever touches production data. Step two, pick objects and fields: choose Leads, Contacts or Accounts, and map each enrichment output to the field you actually use, standard or custom. This is where you create the two custom fields for the LinkedIn URL and the ICP score if you want them. Step three, run it: enrich a list or the whole object, and leave ongoing enrichment on so new records are filled as they arrive. The sync is two-way, meaning Cleanlist reads the record, enriches it, and writes back to the same record rather than producing a separate copy you then have to reconcile. Native CRM sync sits on the Pro plan at $229 a month and above, alongside API access. On Free and Starter the available path is the CSV round trip, with CSV export on every plan and CSV upload opening on Starter at $79.

How much does it cost to enrich a Salesforce database?

Cost is driven by which fields you ask for, not by how many Salesforce seats you have. Cleanlist bills credits: a verified work email is 1 credit, a direct dial is 10, both on the same contact are 11, a company enrichment is 1, and pushing a lead to Salesforce with POST /sync/crm is 0.2. Search costs 0 credits, and so does every read. Run that against a real Salesforce backfill. Ten thousand Contacts that need only a verified email is 10,000 credits, which sits inside Scale at $599 a month for 15,000 credits. The same 10,000 records with a direct dial on each becomes 110,000 credits, which is past any published plan allowance, so the phone pass belongs on the subset you will actually dial rather than the whole object. Five thousand Accounts needing firmographics is 5,000 credits at 1 credit each, inside Pro at $229 for 5,000. Annual billing takes 25% off. The structural difference from per-seat enrichment pricing is what happens when you add reps: credits are consumed by records, so a fifteen-person Salesforce org and a three-person one pay the same to enrich the same database. Enrichment is also billed on results, so records the waterfall cannot resolve settle their reserved credits back.

How do you avoid overwriting good Salesforce data?

Decide the overwrite rule per field before the first run, not after it. The four rules that cover almost every case are: fill only when blank (the safe default for anything a human might have entered), always overwrite (correct for machine-maintained fields like a verified email or an ICP score that is meant to be recomputed), write to a shadow custom field and let a human or a Flow promote it (correct for anything that drives routing or compensation), and never write (correct for Owner, lifecycle stage, and any field an integration downstream of Salesforce depends on). Three Salesforce-specific hazards deserve naming. Validation rules fire on API writes exactly as they do on the UI, so a rule requiring a formatted phone will reject the whole record update if the enriched value does not match, and you will see it as a partial sync rather than an error. Restricted picklists reject values that are not in the list, which is the usual reason an enriched Industry silently fails to land. Field-level security on the integration user hides fields that look mapped in the UI but are not writable in practice. The standard mitigation for all three is the sandbox: run the exact mapping there first, read the errors, then repeat on production.

How do you keep Salesforce enriched over time instead of once?

Treat enrichment as three separate jobs on three different clocks, because a one-time backfill starts decaying the day it finishes. Job one is enrich-on-create, which runs the moment a Lead or Contact appears, before routing and before a human sees it. This is the highest-value job, because it is the only one that changes what a rep does today, and it is what an Apex trigger or a Flow HTTP callout exists for. Job two is the scheduled refresh of the active database, run quarterly against the records that are actually in play: open Opportunities, Contacts on target Accounts, anything a sequence will touch this quarter. Job three is the backfill, run once against the historical records worth reviving, and worth being ruthless about scoping, since enriching a hundred thousand Leads nobody will ever call is the most common way to burn a data budget. On Cleanlist, jobs two and three run as list enrichments against the connected org, and Playbooks, the visual automation engine on the Scale plan at $599, chains enrichment, verification, ICP scoring and CRM sync into one workflow you can run on a schedule.

What can Salesforce enrichment not fix?

Enrichment fills fields, and a large share of Salesforce data problems are not empty fields. It will not deduplicate your org: merging a Contact that exists three times is Salesforce Duplicate Management, matching rules and duplicate rules, and it should run before enrichment rather than after, since enriching three copies of one person costs three times as much and produces three records that now disagree in different ways. It will not fix ownership, territory assignment or stage hygiene, which are process problems wearing a data costume. It will not give you intent: Cleanlist has no intent feed and no way to tell you which Accounts are in-market this week, and any vendor claiming otherwise is selling a panel you should evaluate on its own terms. It will not give you technographics as a filterable field: there is no technology dataset behind Cleanlist and no tech-stack filter, so you cannot ask for every Account running a given product. What you can do is run an AI research column that reads the open web for one Account at a time and writes back what it finds, at 1 credit per row, which answers 'does this company appear to use X' but cannot build the list of every company that does. Finally, it will not repair records with no usable identifier: a Lead with a first name and nothing else has nothing to match on.

How do you measure whether Salesforce enrichment worked?

Measure four numbers, all of which you can build as Salesforce reports on your own data. Match rate: of the records you submitted, what percentage came back with anything at all. This is the number vendors quote least often and the one that determines your real cost, because a hypothetical $0.20 lookup that returns nothing 40% of the time costs $0.33 per usable record. Fill rate per field: what percentage of records now have a non-null Email, MobilePhone, Title, Industry, NumberOfEmployees. Track it per field, since aggregate completeness hides the fact that emails filled and phones did not. Downstream accuracy: bounce rate on the enriched emails and connect rate on the enriched phones, both of which come from your sending and dialing tools rather than from the enrichment vendor, and both of which are the only honest check on a supplier's accuracy claim. Pipeline effect: Leads worked per rep per day, and conversion rate on enriched versus unenriched cohorts, which requires you to keep a control group rather than enriching everything at once. Run the first pass on a few hundred records, measure all four, then decide the size of the second pass.

When is Cleanlist the wrong tool for Salesforce enrichment?

Cleanlist is the wrong choice in four situations, and they are worth stating plainly. If an AppExchange-listed managed package is a procurement requirement, Cleanlist has no listing and no package. If your evaluation is driven by intent data or technographic filtering, Cleanlist owns neither and is the layer that turns a cohort into verified contacts after some other product has identified it. If you need event-driven architecture, the current API is poll-based with no webhooks, so a Flow that fires an enrichment needs a second scheduled step to collect the result rather than a callback. And if you are on Free or Starter, native Salesforce sync is not open to you: sync and the REST API begin on Pro at $229, and below that the honest answer is a CSV round trip through Data Loader. Where Cleanlist fits well is the opposite shape: a Sales Cloud org with real coverage gaps on email and phone, a team that has outgrown per-seat data pricing, and an admin who would rather map fields than manage a package. Every new workspace starts on a 14-day Scale trial with 250 credits and 3 seats, which is enough to enrich a couple of hundred Leads in a sandbox and check the fill rate against your own records before you commit to anything.

What are the best data enrichment tools for Salesforce?

There is no single best tool, and the shortlist splits by what you are actually buying: contact coverage, a workflow engine you assemble yourself, or a feature native to a CRM you already pay for. Every price below comes from the Cleanlist B2B Data Pricing Index, which records each vendor's own live pricing page as fetched on September 1, 2026.

Cleanlist: Best for Sales Cloud teams paying per seat for data they use unevenly. It runs waterfall enrichment across 25+ providers and charges 1 credit per verified work email and 10 per direct dial, with search costing nothing and a miss costing nothing, writing back over OAuth with no managed package, starting at $79 a month for 1,500 credits and 2 seats.

Apollo: Best budget all-in-one. Basic is $65 a month, or $49 a month billed annually, with 30,000 credits per seat per year. An email is 1 credit and a phone number is 8, which works out at $26.00 per 1,000 verified emails on monthly billing.

Clay: Best for assembling a custom multi-provider workflow rather than buying a finished one. Launch is $185 a month, or $167 a month billed annually, and it meters two separate things: 180,000 Actions a year and 30,000 Data Credits a year. Clay publishes no credits-per-verified-email rate, because that is set per marketplace provider inside the app, so a per-record cost cannot be computed from the pricing page.

ZoomInfo: Best known for enterprise depth, and the entry where no price can be quoted honestly. ZoomInfo publishes no purchasable price. On September 1, 2026 its pricing page returned HTTP 403 to a Chrome user agent and a 'Press and Hold to confirm you are a human' challenge in headless Chromium. Any specific dollar figure attached to ZoomInfo in a listicle came from somewhere other than ZoomInfo.

Cognism: quotes per deployment and publishes no price either. Standard and Pro both show 5 seats included, and one credit reveals one contact.

Clearbit, now HubSpot Breeze Intelligence: Best for orgs whose real system of record is HubSpot rather than Salesforce. There is no standalone plan. The Breeze Intelligence pricing URL redirects to HubSpot Credits and then into the knowledge base, and the only published rate is a $0.010 per credit overage invoiced in increments of ten.

Kaspr: Starter is $65 a month, or $49 billed annually, with unlimited B2B email credits, 1,200 phone credits a year and up to 12,000 exports a year. Phone packs are $91 per 250, $155 per 500 and $288 per 1,000.

UpLead: Essentials is $99 a month, or $74 billed annually, for 170 credits a month, where one credit covers one contact including both the email and the mobile direct dial. Extra credits are $0.60 each.

LeadIQ: Pro starts at $15 a month billed annually at the slider's default of 2,400 credits a year with 5 users. An email is 1 credit, a phone 10, both 11, an account enrichment 3.

One boundary decides this before any of those prices matter. Several tools on this list carry an AppExchange listing and Cleanlist does not, so if a Salesforce-reviewed managed package is a procurement requirement in your organization, that settles it. The AppExchange section above says what you get and give up either way.

Do you have to deduplicate Salesforce before you enrich it?

Yes, and Salesforce splits the job into two objects that people routinely confuse. A matching rule defines how two records are compared, field by field, with an exact or a fuzzy method per field, and Salesforce ships standard matching rules for Lead, Contact and Account. A duplicate rule defines what happens when a match is found: allow the save with an alert, or block it, and whether to log a Duplicate Record Set you can report on.

The mechanic that matters for enrichment is that duplicate rules fire on API create, update and upsert, not only on records typed into the UI. A rule whose action is Block makes the API write fail rather than warn, which is how a sync goes from 'it ran' to 'it silently did nothing'. The REST header Sforce-Duplicate-Rule-Header with allowSave=true bypasses the alert on an Allow-with-alert rule, and the SOAP and Apex equivalents are DuplicateRuleHeader and Database.DMLOptions.DuplicateRuleHeader. None of them override an action set to Block, and Block is the action the REST and Bulk APIs actually enforce. If enriched values are missing on a subset of records and nothing errored, that setting is the first thing to read.

Order matters for cost as much as for hygiene. Three copies of one person, each enriched with an email and a direct dial, is 33 credits against 11. At Starter's rate of about $0.053 a credit that is $1.74 instead of $0.58, and it leaves three records that now disagree in three different ways.

One boundary to state plainly: Cleanlist does not merge Salesforce records. It writes fields. Merging is Salesforce Duplicate Management or a dedicated dedupe tool. The single place Cleanlist creates a record is find-or-create Account, and it creates one only when it matches none, so a differently spelled Account with no Website value will produce a second. Populating Website on your Accounts before the first run is the one-line mitigation.

Should Salesforce enrichment run on record creation or on a schedule?

Run the email pass on creation and the phone pass on a schedule against the segment you will actually call, because those two triggers differ in cost by an order of magnitude rather than in convenience. Three triggers exist in practice. On create: the record is filled before routing and before a rep opens it, and you pay for every record including the ones that go nowhere. On demand: a rep or a Flow enriches one specific record, which is the cheapest and the slowest and adds a click. Scheduled batch: nightly or weekly against a defined segment.

The Salesforce mechanic that decides the implementation is that a before-save flow cannot make an HTTP callout, and Apex cannot call out synchronously from inside a trigger. Enrich-on-create therefore runs from an after-save flow, an asynchronous path on the record-triggered flow, or a Queueable, and the enriched values land a moment after the insert commits rather than during it. If your assignment rules have to read enriched values, they cannot fire on insert.

On the Cleanlist side the shape is REST API v2 at api.cleanlist.ai/api/v2 with a clapi_ Bearer token, available on Pro at $229 a month and above. Asynchronous enrichment returns a workflow_id that you poll, and there are no v2 webhooks, so a Flow needs a second scheduled step rather than a callback. Company enrichment, search, CRM sync and exports answer in the same request and need no polling. The ceilings are 60 requests a minute per organization, 30 per key, and 60 People Searches per UTC day per key, with a 429 carrying a Retry-After header.

Priced, so the decision is arithmetic rather than preference: 1,000 inbound Leads a month at verified email only is 1,000 credits, inside Starter's 1,500 at $79. The same 1,000 with a direct dial on each is 11,000 credits, past Pro's 5,000 at $229 and inside Scale's 15,000 at $599. That gap is the whole argument for putting email on the create trigger and phone on a segment.

How do you map enrichment output to Salesforce fields without breaking anything?

Audit which fields your org actually populates before you map a single one, prove the map on a sandbox sample, then go to production. The field map itself and the four overwrite rules are covered above; this is the procedure around them.

Start with utilization. Report on the fields you are about to write and find out which are populated today and which are ghost towns. Mapping a field nobody reads is spend with no destination.

Name the protected fields out loud before setup: Owner, lifecycle stage, Lead Source, and any field an integration downstream of Salesforce depends on. Nothing writes to those. Anything driving routing or compensation goes to a shadow custom field that a human or a Flow promotes.

The integration user is the usual failure. Its profile needs Read on the object and Edit on every mapped field. Field-level security will let a field look mapped in the Cleanlist UI while being unwritable in practice, and the symptom is a partial sync rather than an error.

Restricted picklists need one decision made once. An enriched Industry value that is not already in the picklist is rejected silently. Either map the enrichment vocabulary onto your picklist values during setup, or write Industry to a custom text field and let a Flow translate it.

Treat the API allocation as a real budget. Enrichment writes draw on the org's daily API request allocation, which is granted per 24-hour rolling period as a base figure plus an increment for every user licence. Enterprise Edition is commonly reported at 100,000 plus 1,000 per licence, and the only number that governs your org is the one shown in Setup, then System Overview, so read it there before scoping a backfill. Use Bulk API 2.0 for historical work so 10,000 record updates cost batches rather than 10,000 individual calls.

Then prove it on 100 to 500 sandbox records, read the errors, fix the picklists and the field-level security, and repeat before anything touches production. The sandbox point is made above; the sample size is the part you can check.

What does the Cleanlist Salesforce integration sync, and what does it not?

It syncs Leads, Contacts and Accounts two ways, and it touches nothing else. Cleanlist has six integrations: two-way with Salesforce, HubSpot and Pipedrive, and one-way out to Outreach, Salesloft and Lemlist.

Two-way here means Cleanlist reads a Lead, Contact or Account out of the org, enriches it, and writes the result back onto that same record. There is no shadow copy, no parallel object and nothing to reconcile afterwards, so assignment rules, list views, reports and workflow criteria pick the values up from the standard fields with no further work.

What it does not sync: Opportunities, Cases, Campaigns, Tasks, Activities and custom objects. Three objects is the whole surface. Programmatic pushes go through POST /sync/crm at 0.2 credits per lead.

Cleanlist does not send email, does not run sequences and does not dial. It enriches the record and hands it to the tool that does, which is what the one-way connectors to Outreach, Salesloft and Lemlist are for. If the evaluation you are running is really about a sequencer, this is not that product and no plan tier turns it into one.

One cost control is worth configuring on day one. Cleanlist People Search reads a connected Salesforce and can exclude anybody already in it, filtering on Not in your CRM, by record owner, or by last activity. Current customers, open opportunities and contacts a teammate already owns drop out of a prospecting list before a credit is spent, and search itself costs nothing on every plan.

Disconnecting revokes the OAuth authorization, stops future writes, and removes nothing, and because there is no managed package there is no namespace left behind either, as the FAQ below covers.

What can Salesforce enrich natively, with no third-party tool?

Salesforce can transform and consolidate the data you already hold, and it cannot go and find a contact record it never had. Three native paths exist and it is worth knowing which is which before you buy anything.

Data.com Clean and Prospector were the first-party contact enrichment service and both were retired in 2020, along with the entitlement, as covered above. Data Cloud enrichments are real and native, and they require a Data Cloud licence and a configured data stream, which is a different product and a different budget from Sales Cloud.

Salesforce Data Pipelines is the one most third-party guides leave out, and it is the source Google's AI Overview cites first on this query. A recipe built in the Data Manager app extracts, transforms and loads data into Salesforce objects on a schedule and in bulk, using join nodes to combine Salesforce objects with each other and with uploaded external files, without third-party tools and without the data leaving the Salesforce trust boundary. It is a genuine enrichment engine for data you already have somewhere. It has no directory of people behind it, so it cannot append a verified work email to a Lead that arrived without one.

Marketing Intelligence adds a file-based path, Create a Data Enrichment With a File, which maps an uploaded file onto records. The file still has to come from somewhere first.

Then there is the free path, which is usually what the question is really asking. A CSV round trip through Data Loader costs nothing but your time, needs no connected app and no security review, and works on any edition with API access. On the tool side, the Cleanlist Free plan is 30 credits a month: enough to prove a field mapping against your own records, not enough to backfill an org. Every new workspace also starts on Scale for 14 days with 250 credits and 3 seats.

What does a Salesforce record look like before and after enrichment?

Here is the same Lead before and after, written in field names rather than prose, because field names are what you check the claim against.

Before: a Lead created by a webinar registration form, carrying FirstName, LastName, a Company value the prospect typed as their company's short name in lower case, and an Email on a gmail.com address. Phone is blank. MobilePhone is blank. Title is blank. Website is blank. Industry and NumberOfEmployees are blank because there is no Account yet. Eight of the fields a rep needs in order to act are empty, and the assignment rules that read Title and Industry have nothing to read.

After: Email is replaced with a verified work address on the company's real domain. Phone and MobilePhone carry a direct dial and a mobile. Title carries a normalized job title with a seniority that assignment rules can route on. Company and Website are standardized to the company's real name and domain, which is what makes lead conversion attach to the Account you already own instead of creating a second one. On the Account, Industry and NumberOfEmployees are filled. Cleanlist_LinkedIn__c holds the LinkedIn URL and Cleanlist_ICP_Score__c holds the ICP score, the two outputs with no standard home.

The cost of that single record in Cleanlist credits: 11 for the verified email and the direct dial together, plus 1 for the company enrichment, so 12 credits. At Starter's $79 for 1,500 credits a credit is about $0.053, so the record costs about $0.63. If the waterfall cannot resolve the phone you are not charged for it, so the average across a real list lands below the worst case.

That is the whole example. This page shows field shapes rather than a named person on purpose: a demonstration record with real contact details in it is somebody's actual phone number, and an invented one is a fabricated fact dressed up as a screenshot.

How fast does Salesforce data decay, and which fields go first?

About 22.5% a year, which is roughly 2.1% a month, on the Dun and Bradstreet B2B Data Benchmark figure Cleanlist publishes in its data decay report. That headline is the wrong number to plan a Salesforce refresh around on its own, because decay is not distributed evenly across the fields on a record.

Annual decay by field, from Dun and Bradstreet and the Validity CRM Data Management Report: work email 20 to 30%, job title 15 to 25%, direct phone 15 to 20%, company 10 to 15%, mobile phone 5 to 10%, LinkedIn URL 3 to 5%, name 1 to 2%. Work email decays fastest because it is tied to employment, which is also why it is the usual reason a send bounces off a record that looked complete in the list view.

The Salesforce consequence is a refresh scope rule rather than a refresh schedule. Re-enrich Email, Title, Phone and MobilePhone on the active segment quarterly. Leave Name and Cleanlist_LinkedIn__c alone, because at 1 to 2% and 3 to 5% a year you are paying to rewrite values that have not changed. Account-level fields such as Industry and NumberOfEmployees sit in the middle and earn an annual pass rather than a quarterly one.

The arithmetic, so you can size it before committing: 5,000 active Contacts refreshed quarterly on verified email only is 5,000 credits a quarter, which fits inside a single month of Pro's 5,000 credits at $229. Adding a direct dial to all 5,000 is 55,000 credits, which is the reason the phone refresh belongs on the subset being dialled rather than on the whole active segment.

What does Google say about Salesforce data enrichment today?

Measured by Cleanlist on September 7, 2026, against Google US desktop results for seven Salesforce and CRM enrichment terms, collected through the DataForSEO SERP API at depth 50 with the AI Overview body loaded. All seven queries returned an AI Overview.

On 'salesforce data enrichment' (50 US searches a month, $18.24 CPC) the AI Overview defines the category, describes three automation triggers, and splits the rest into native and third-party options. The vendors it names are ZoomInfo, Clearbit and Clay, plus one company that supplies data to Cleanlist and is therefore not named here. It lists ten sources, and cleanlist.ai is cited twice inside the answer body: once on the native-options bullet and once on the third-party-apps bullet. The organic top ten is help.salesforce.com twice, kaspr.io, two Reddit threads, rudderstack.com, salesforceben.com, appexchange.salesforce.com, trailhead.salesforce.com and pipeline.zoominfo.com.

On 'salesforce data enrichment tools' the AI Overview prints a six-vendor shortlist: ZoomInfo, Apollo.io, Clay, Cognism, Clearbit by HubSpot, and one Cleanlist supplier. cleanlist.ai is the cited source behind five of those six entries. Google is reading Cleanlist's comparison work in order to describe those vendors, and then recommending them.

On 'crm data enrichment tools' the AI Overview quotes prices inside the vendor list, Apollo from $49 a month and Clay at $167 a month, and cites cleanlist.ai for the opening definition.

Two things follow, and both are why this page has the shape it has. First, price is the field these answers lift, which is why the shortlist section above quotes each vendor's own published rate with the date it was read rather than a rounded figure from another guide. Second, one Reddit thread, r/CRM asking whether enrichment tools integrate smoothly with CRMs, ranks in the top five on five of the seven terms measured. A peer thread about what breaks outranks every vendor guide on this cluster, which is the reason duplicate rules, field-level security and restricted picklists get sections here at all.

The follow-up questions.

Does Salesforce have built-in data enrichment?

Not in the core CRM. Salesforce retired Data.com Clean in 2020 and Sales Cloud has shipped no general purpose contact enrichment since, so Leads, Contacts and Accounts hold whatever your forms, reps and imports put into them. Data Cloud enrichments are a genuine Salesforce-native option, but they require a Data Cloud license and configured data streams, which is a separate product from Sales Cloud. For most orgs, enrichment means a third-party tool connected over OAuth, a CSV round trip through Data Loader, or an API call from a Flow or an Apex trigger.

Can I enrich Salesforce Leads automatically the moment they are created?

Yes, through an Apex trigger or a Flow with an HTTP callout that fires on Lead creation and calls an enrichment endpoint, so the record is filled before assignment rules run and before a rep sees it. With Cleanlist this uses REST API v2, which requires the Pro plan at $229 a month or above. One thing to design around: the API is poll-based with no webhooks, so an asynchronous enrichment returns a workflow id that a second scheduled step has to poll, rather than calling your org back. Company enrichment, search and CRM sync answer in the same request and need no polling.

Will enrichment create duplicate records in Salesforce?

Enrichment that writes back to an existing record by its Salesforce Id does not create duplicates, because it updates a row rather than inserting one. Duplicates come from two other places. The first is a CSV load run without the record Id as the key, which inserts new rows instead of updating existing ones, so always key a Data Loader update on Id. The second is Account creation during contact matching: Cleanlist matches each contact to the right Account and creates one only when it finds none, which keeps the hierarchy clean but will produce a second Account if your existing one is spelled differently and has no Website value to match on. Run Salesforce Duplicate Management before enriching, not after.

Which Salesforce editions does Cleanlist support, and does it work with sandboxes?

Professional, Enterprise and Unlimited, and yes, sandbox orgs connect on the same OAuth flow as production. Because the integration uses the standard Salesforce API rather than a managed package, there is nothing to install in either org. Connecting a sandbox first is the recommended sequence: it is where you find out that a validation rule rejects an enriched phone format, or that a restricted Industry picklist will not accept the value being written, without those failures landing on live records.

Do I need a Salesforce admin to set this up?

You need an admin once, for two things: authorizing the connected app, and creating any custom fields the mapping needs. Cleanlist's Salesforce field map uses standard fields for email, phone, title, industry and employee count, and requires custom fields only for the LinkedIn URL (Cleanlist_LinkedIn__c) and the ICP score (Cleanlist_ICP_Score__c). After that, changing which fields get written is configuration on the Cleanlist side. The CSV path needs no admin involvement at all beyond export and import permissions, which is why teams blocked on a security review usually start there.

How many credits does it take to enrich 10,000 Salesforce contacts?

10,000 credits if you want a verified work email on each, since an email is 1 credit. That sits inside the Scale plan at $599 a month for 15,000 credits. Adding a direct dial takes each record to 11 credits, so the same file becomes 110,000 credits, which is past any published plan allowance and is the reason to scope the phone pass to the accounts you will actually dial. Firmographics on Accounts are 1 credit each. Cleanlist bills on results, so records the waterfall cannot resolve settle their reserved credits back, and real spend usually lands under the worst case.

Can Cleanlist enrich Salesforce custom objects?

Not through the standard integration. It reads and writes Leads, Contacts and Accounts, and within those three objects it can write to any standard or custom field you map. If your data model puts the enrichable records on a custom object, the workable paths are the REST API, where you control what gets written and where, or a CSV round trip keyed on that object's Id. Custom-object work through the native connector is not part of the shipped integration, so do not plan an implementation around it.

What happens to enriched data if I disconnect Cleanlist from Salesforce?

Everything Cleanlist wrote stays in your org. Disconnecting revokes the OAuth authorization and stops future writes, and it removes nothing that has already landed on a Lead, Contact or Account. Because there is no managed package, there is also no package to uninstall and no namespace left behind. This is worth confirming with any enrichment vendor before you sign, since the answer varies and some licensing models treat enriched values as data you were renting.

How can I clean my Salesforce data before enriching it?

In four passes, in this order: audit, dedupe, standardize, archive, and only then enrich. Audit means finding out which fields are actually populated and which your org stopped using, because that decides what is worth mapping at all. Dedupe means Salesforce Duplicate Management, matching rules and duplicate rules, or a dedicated dedupe tool, run before a single credit is spent. Standardize means formats and picklist values, since a restricted Industry picklist rejects an enriched value that does not match it. Archive means moving records with no usable identifier out of the working set rather than paying to look them up. Cleaning works only with what is already inside the org and enrichment reaches outside it, so the two jobs are complementary and the order is not optional.

Will a Salesforce duplicate rule block an enrichment write?

Yes, if the rule's action is Block. Duplicate rules fire on API create, update and upsert, not only on records entered through the UI, so a Block rule makes the write fail and the usual symptom is a partial sync rather than a visible error. The REST header Sforce-Duplicate-Rule-Header with allowSave=true bypasses an Allow-with-alert rule, and the SOAP and Apex equivalents are DuplicateRuleHeader and Database.DMLOptions.DuplicateRuleHeader, but none of them override an action set to Block. Block is the action the REST and Bulk APIs enforce. If enriched values are landing on some records and not others with nothing in the logs, read the duplicate rule's action first and the integration user's field-level security second.

How many Salesforce API calls does an enrichment run use?

One write per record on the REST path, and batched writes on Bulk API 2.0, both drawn from the same org allocation. That allocation is granted per 24-hour rolling period as a base figure plus an increment for every user licence. Enterprise Edition is commonly reported at 100,000 plus 1,000 per licence, but the only number that governs your org is the one in Setup, then System Overview, so read it there before scoping a backfill. The practical rule: use Bulk API 2.0 for anything historical, so a 10,000-record update costs batches rather than 10,000 individual calls, and keep enrich-on-create on the REST path where one call per record is what you want anyway.

Does Cleanlist send email or run sequences from Salesforce?

No. Cleanlist enriches the record and hands it to the tool that sends. It has six integrations: two-way with Salesforce, HubSpot and Pipedrive, and one-way out to Outreach, Salesloft and Lemlist. The normal shape is a Lead enriched in place inside Salesforce and then pushed to your sequencer, with POST /sync/crm available at 0.2 credits per lead if you want to do that programmatically. There is no sending, no sequencing and no dialer inside Cleanlist, and no plan tier adds one. If you are weighing it against an all-in-one prospecting suite, that is the structural difference to price in.

Is there a free way to enrich Salesforce data?

Partly, and it depends what you mean by enrich. Salesforce's own native options come with licences you already hold: Data Pipelines transforms and joins data inside your org, and Marketing Intelligence maps an uploaded file onto records. Neither sources third-party contact data, so neither produces a work email for a Lead that arrived without one. A CSV round trip through Data Loader costs nothing but your time and needs no connected app and no security review, which makes it the usual path for teams blocked on a vendor review. On the Cleanlist side the Free plan is 30 credits a month: enough to prove a field mapping against your own records, not enough to backfill an org. Every new workspace also starts on Scale for 14 days with 250 credits and 3 seats.