Salesforce deduplication you can review before anything merges
Salesforce deduplication normally means running an app inside the org and trusting its matching rules. Working on the export gives you the same matching with a review step: pull a report as CSV, see every proposed merge, then update only what you approved.
Load a messy sample and watch it work
The same engine described below, running on your own machine. Nothing is uploaded and nothing is applied until you approve it.
1. Load a file
Your file is read on your own machine. Nothing is uploaded, so nothing can leak.
Or start from a messy sample
Status
Loading the sample file.
File: CRM contact export
Rows
--
Columns
--
Changes
--
Duplicate rows
--
Date formats
--
Blank or invalid emails
--
Load a file to see the diff
Drop a CSV or pick one of the messy samples. Every proposed change appears here as a line you approve or reject.
2. Review every change
Nothing approved yet.
Nothing is applied to your file until you approve it, and your original file is never modified.
Proposed changes
Original Proposed
Duplicate clusters
Merge or keep both
Want this on every file, and on bigger ones?
The free try is one file of your own. The Analyst plan cleans as many files as you need, up to 25MB and about 100,000 rows each, for $59 a month or $348 a year.
3. Take the result
The cleaned CSV contains only the changes you approved. The log lists every change, approved or not.
Duplicate rules catch what they were told to catch
Standard matching rules compare a fixed set of fields, and they run at the moment a record is created. They do nothing about the duplicates already in the org, and they do not see the ones that came in through an import that bypassed them.
Native dedupe apps work on the object level inside Salesforce, which is convenient and also means the work is invisible outside the org. If your duplicates arrived from a spreadsheet, they will arrive that way again next quarter.
Accounts are the expensive case, because a merge moves contacts, opportunities and ownership onto one record and takes at most three records at a time. The account version of this workflow, with owner conflicts flagged before anything merges, is on Salesforce merge accounts.
The export workflow
Export a report with the Id column
Keep the record Id so you can act on exactly the right records afterwards.
Match on name, company and email
Fuzzy matching finds the pairs that differ by a suffix, an accent or a typo.
Review every cluster
Each one names the reason it matched and marks the most complete row as the one to keep.
Export the audit log
It lists the merged row and the row it merges into, which is the list your admin works from.
Before a big import
The cheapest deduplication happens before data enters the CRM. Cleaning a list on the way in stops you from paying for the same cleanup twice, once in the file and once in the org. Doing that on any CRM export is CRM data cleansing, the matching it relies on is fuzzy matching rather than a fixed field rule, and the data cleaning tool runs it without the file leaving your machine. The version of this with a deadline attached, where the org is being left behind entirely, is a Salesforce to HubSpot migration. When the move runs the other way and the org is the destination, the Import Wizard and Data Loader matching rules decide what doubles, and that is covered in HubSpot to Salesforce migration. Which loader to use for each object is compared in Salesforce data migration tools.
Once the groups are approved, the merges themselves still happen in the org, three records at a time. Contacts and leads are covered on Salesforce merge contacts, and accounts on Salesforce merge accounts.
A contact report run through the engine
We exported an eleven row Contact report with the columns an admin would pull: Id, First Name, Last Name, Account Name, Email, Phone, Mailing State, Lead Source and Created Date. The engine proposed three duplicate groups and thirteen field fixes, and it changed nothing until each one was approved.
Rachel Nguyen came in twice, once typed in capitals with a trailing space on the email, so the pair was caught on the email address. Marcus Delgado at Copperline Freight Inc. and at Copperline Freight had two different work emails, and the pair was proposed on name and company with the legal suffix ignored. Allison and Alison Reyes at Summit Ridge Capital were proposed as a close match and flagged, because the emails differ and only a person can say whether the spelling is a typo.
Two pairs were left alone. Tom Becker at a work address and Thomas Becker at a Gmail address share an account, but a nickname plus a personal email scores below the threshold, so your reviewer decides. Kevin Walsh at Northgate Insurance Group and Kevin Walsh at Pioneer Roofing Co are two people, and the engine kept them apart. The same logic, with the match reason on every pair, is documented on fuzzy matching.
The record Id travels with every merge
This is the part that matters in Salesforce. When a group is approved, the row that is kept stays in the cleaned file and the duplicate row is removed, but its record Id is not lost. It is written into an added column called other_id on the surviving row. In our run, row 2 (0035e00000AbC01) came back with 0035e00000AbC02 beside it, so every line of the cleaned file reads as a master Id and the Id to merge into it.
Fields the two records disagree on are kept the same way. The second email address goes to other_emails, and a differing Lead Source or Created Date goes to other_lead_source and other_created_date, so nothing a sales rep typed disappears. The audit log lists each removed row with the row it merged into and every one of those values. Your admin works down that list with the native merge screen or the merge tool of their choice.
Salesforce deduplication options compared
There are three ways to deal with duplicates already in an org. Each one is right for a different team, and the choice usually comes down to who does the work and whether the merges have to be explained later.
| Duplicate rules and jobs in the org | Dedupe app from AppExchange | Export, review, then merge (this tool) | |
|---|---|---|---|
| Cleans records already in the org | Duplicate jobs only, on some editions | Yes | Yes, from a report export |
| Matching beyond the fields in a rule | No | Yes, configurable | Yes, email, name and company scored |
| Review before anything merges | Per record, by hand | Varies by app and setting | Every group is a proposal |
| Record of what merged into what | Inside the org | Inside the app | CSV audit log plus other_id column |
| Install in the org | Built in | Yes, managed package | No, nothing installed |
| Best for | Stopping new duplicates | Continuous cleanup by an admin | A one-off cleanup, import or migration that must be defended |
Category level comparison. Duplicate job availability depends on your Salesforce edition, so check it in your own org.
Who buys this for a Salesforce cleanup
The buyer is the person who owns the list when the numbers are questioned: a RevOps or Salesforce admin cleaning up before a territory change, an ops lead about to load a trade show list, or a consultant handed an org with years of imports in it. They need the duplicate groups found this week, a list their admin can work from, and proof of what was merged.
The Analyst plan runs unlimited files of up to 25MB each, and Enterprise puts several people on one invoice with a DPA. See pricing, or run the demo above on your own report first. Nothing leaves your browser in the demo.
Duplicate groups from a real engine run on a Salesforce contact report
| Rows | Kept | Matched on | Duplicate Id kept in other_id | Needs a look |
|---|---|---|---|---|
| 2 and 3 | Rachel Nguyen, Brightwater Dental Partners LLC | Same email address | 0035e00000AbC02 | Yes, Lead Source and Created Date differ |
| 4 and 5 | Marcus Delgado, Copperline Freight Inc. | Same name and company, different email | 0035e00000AbC04 | Yes, emails differ |
| 7 and 6 | Alison Reyes, Summit Ridge Capital | Close name and company match | 0035e00000AbC05 | Yes, emails and first names differ |
| 8 and 9 | Not proposed | Nickname plus a personal email | None | Left for the reviewer |
| 10 and 11 | Not proposed | Same name at two different accounts | None | Kept as two people |
Row numbers count the header as row 1. The kept row is the most complete one, so in the Reyes group row 7 won because it has a phone number. Check the spelling of the survivor before you merge in the org.
What the rules inside the org were never told to look for
Duplicate rules are a list of fields and a comparison. They are exact about what they were given and blind to everything else.
CRM data cleansingA rule matches the fields it was given
Records that differ in the field nobody put in the rule stay separate, and the rule reports the org as clean while they do.
The merge is applied straight away
What was in the losing record is no longer somewhere you can read it, so a merge that turns out wrong is not a merge you can talk about.
Leads and contacts are two problems
The same person can exist as both, and a run over one object never sees the other, so the pair survives every pass.
What the export pass adds
The same matching on a report you exported, every cluster reviewed before anything is touched, and a CSV log of what you decided.
Questions about salesforce deduplication
Does this merge records in Salesforce for me?
Does it work with leads as well as contacts?
How do I find duplicate records in Salesforce?
Can Data Loader merge duplicate records?
What happens to the record Id of the duplicate?
Plans for when the file is bigger than the demo
Yearly billing saves 50 percent. There is no free plan, and no card is needed to use the browser demo above.
Yearly billing saves 50 percent, half the monthly price.
Switch to yearly and save 50 percent.
Analyst
Self-serveOne person with files to clean, as many as they like.
$29$59/mo
Billed $348 a year Billed monthly
- Unlimited files
- Files up to 25MB, about 100,000 rows
- Exact and fuzzy duplicate detection
- Dates, numbers, currencies, encoding and casing fixed
- Every change reviewable before you download
- Cleaned CSV and a change log, both downloadable
- Runs in your browser: files never leave your machine
- Email support
Enterprise
Several people on one invoice, a DPA on request, priced per seat.
$49$98/seat/mo
Billed $588 a seat a year, from 2 seats ($1,176) Billed monthly per seat, from 2 seats ($196)
- Everything in Analyst
- Several people on one invoice
- DPA on request
- Invoicing and purchase orders
- A named contact for support
Payment is by card through our payment provider, monthly or yearly, and you can cancel from your account at any time. The free try is one file of your own, up to 5MB, in the browser demo. Already paid? Sign in.
Related pages
- CRM Data Cleansing Before Import or Migration
- Data Deduplication Tools for CSV and Excel
- Fuzzy Matching Tool for Names and Companies
- Entity Resolution Software for Customer Records
- Data Cleaning Software for CSV and Excel Files
- Data Quality Tools and Software Compared
- Data Hygiene for Contact Lists and CRM Records
- Excel Data Cleaning Tool Without Formulas
- Data Cleaning Services vs Doing It In House
- Address Standardization and Cleansing Software
- HubSpot Deduplication to Merge Duplicate Contacts
- Zoho CRM Deduplication to Merge Duplicate Contacts
- Pipedrive Duplicate Contacts Deduplication Tool
- NetSuite CSV Import With Clean and Deduped Files
- Data Scrubbing Software and Tools for CSV Files
- Mailchimp Duplicate Contacts Across Audiences
- Constant Contact Duplicate Contacts and Emails
- Klaviyo Duplicate Profiles and Merge Profiles
- ActiveCampaign Duplicate Contacts and Merge Contacts
- QuickBooks Online Merge Vendors and Customers From One List
- Merge Customers in QuickBooks Desktop and Merge Vendors
- Salesforce Merge Accounts in Bulk from One Reviewed List
- Salesforce Merge Contacts and Merge Leads From One Reviewed List
- HubSpot Merge Contacts and Companies From a Reviewed List
Clean the file, and be able to show what you changed
Try the demo on your own CSV first. It runs in your browser, it costs nothing, and no card is required.
No card required. Your file never leaves your computer.