Salesforce merge duplicate contacts: clean your export before you merge or re-import

Salesforce merges at most three contacts at a time. Its org-wide Duplicate Jobs scan is only in Performance and Unlimited Editions, and merged-away records go to the Recycle Bin. Below: Salesforce's own steps first, then our done-for-you cleanup of your exported file: same-email duplicates merged, possible duplicates flagged and a change log, back in 24 hours on Quick Clean (up to 200 rows).

Rather not do it by hand? Skip to done-for-you cleanup, from $25.

How to merge duplicate contacts in Salesforce: what you can do natively

Salesforce has two built-in ways to merge. From a contact record, you can merge up to three duplicates at a time and choose the principal contact: "Choose up to three contact records to merge." (Salesforce help: Merge Duplicate Contacts in Lightning Experience). Duplicate Jobs scans the whole org and lets you Compare and Merge each set, but it is "Available in: Performance and Unlimited Editions" (Salesforce help: Run Duplicate Jobs), and "In an org with many records, duplicate jobs can fail." (Salesforce help: Things to Know About Duplicate Jobs). Merged-away records go to the Recycle Bin. If you are also re-importing, prepare the CSV first: "Prepare your data for import and create a CSV import file. Doing this step first prevents errors, duplication of data, and frustration." (Salesforce help: Import Data with the Data Import Wizard)

  1. Export first. For a contact list, run a contacts report and export it. Choose Details Only: "Export each row without formatting." Some export formats cut off long text: "Long text and rich text fields are truncated to 255 characters." (Salesforce help: Export a Report) For a full backup, use Setup → Data Export: "You can export all your org’s data into a set of comma-separated values (CSV) files." Tick the line-break option: "If you want to have spaces instead of carriage returns or line breaks in your export files, select Replace carriage returns with spaces." The files arrive as a zip: "Salesforce creates a zip archive of CSV files and emails the user who scheduled the export when it’s ready." (Salesforce help: Export Backup Data from Salesforce) Keep the Contact ID column in the export.
  2. Scan the whole org with Duplicate Jobs (Performance and Unlimited Editions). "Find duplicates across your org by running duplicate jobs." (Salesforce help: Manage Duplicate Records) In Setup, find Duplicate Jobs, click New Job, pick the object and a matching rule, then Run. Then: "To view and merge duplicates, open a job summary page, and then open a record set. Click the Related tab. Select the Compare and Merge action." (Salesforce help: Run Duplicate Jobs)
  3. Merge specific contacts from the record. "Choose a contact record. A message tells you if duplicates exist for that record. To see them, click View Duplicates." Then "Choose up to three contact records to merge. Click Next." "Choose one contact as the principal contact, and choose the field values that you want to keep. Click Next." "Confirm your choices and merge." If the duplicates aren't flagged: "If duplicate contacts aren’t getting flagged, see “Standard Contact Matching Rule” in Salesforce Help to learn how Salesforce identifies duplicate records." (Salesforce help: Merge Duplicate Contacts in Lightning Experience)
  4. Combine duplicate rows in the file before any re-import. Salesforce's own advice is to prepare the CSV before importing (quoted above). Its help pages don't say what happens to two rows in the same import file that share an email, so decide which row survives before you import.
  5. Re-import with the Data Import Wizard. "Specify whether you want to add new records to Salesforce, update existing records, or add and update records simultaneously." "Specify matching and other criteria as necessary." Then map the columns: "Unmapped fields aren’t imported into Salesforce." (Salesforce help: Import Data with the Data Import Wizard) Limits: "You can import up to 50,000 records at a time." "Salesforce recommends that you test a small CSV file first to make sure that you prepared your source data correctly. Data Import Wizard supports only the CSV format." (Salesforce help: Data Import Wizard)
  6. Check the import. "The Recent Import Jobs chart on the Data Import Wizard home page lists the status and metrics of the data import." (Salesforce help: Import Data with the Data Import Wizard)

Related: Cleaning a Salesforce import file instead, if you only need the file cleaned and aren't merging in the org.

Or let us clean the file before you merge or re-import

  • You send the Salesforce export from step 1 (a report export, or the Contacts CSV from a Data Export zip) as a CSV or Excel file. Send one file per object, for example Contacts or Leads, and same-email rows in it are merged. We don't run the import, merge records in Salesforce or pick the principal record for you.
  • Rows with the same email (ignoring capitalization and spaces at the start or end) are merged into one row: the first row is kept and its blank fields are filled from the later rows. Every merge and every fill is listed in the change log, so you decide what survives before you import. This saves you merging in threes for duplicates that are in your file. Duplicates already in the org still need merging in Salesforce (steps 2 and 3).
  • Rows with the same full name and company (when your file has a company column) but a different or missing email are flagged, not merged. Each one is marked needs_review, with a note naming the row it may match, so you choose which to keep, or merge them in Salesforce (step 3). Misspelled names aren't caught. Salesforce's own matching rules work differently from ours and may find others.
  • Invalid, missing and personal (for example Gmail or Yahoo) emails are flagged in qa_notes. We don't fix or verify mailboxes.
  • Names in ALL CAPS or all lowercase are re-cased. US phone numbers are formatted +1-XXX-XXX-XXXX. Numbers with a non-US country code (starting with + or 00) are kept as you sent them (extra spaces trimmed only). Numbers with no country code and 10 digits are treated as US. Placeholder phones like N/A are blanked and logged. Anything we can't read is kept as-is, with a note in qa_notes. Line breaks inside cells are turned into spaces (except in the email column, where a broken email is flagged invalid instead), and the CSV is saved as UTF-8.
  • You get back the cleaned CSV (with status, qa_notes and source_row columns), a change log with every merge, every fill from a duplicate, every email and possible-duplicate flag, and every edited cell listed by row, with its old and new value, a QA report with counts (rows in and out, duplicates merged, possible duplicates flagged, emails flagged and cells edited), and your original file, unchanged.
  • What we don't do: we don't merge, delete or edit anything inside Salesforce. We don't run the import, map fields, or choose your matching or update options. We don't promise deliverability, inbox placement or bounce rates, we don't verify mailboxes, we don't find, buy or add contacts, and we don't merge rows that only might be the same person.

Clean my Salesforce export · $25 (up to 200 rows, back in 24h)

Bigger list? Intro $99 for up to 500 rows (48h) · Growth $299 for 501 to 2,000 rows (72h) · Bulk $499 for 2,001 to 5,000 rows (5 business days) · over 5,000 rows, custom quote. See all sizes.

What you get back

  • Every change is logged with its original row number.
  • Possible duplicates are flagged for your review, never blind-merged; same-email duplicates are merged and listed in the change log.
  • Your original file is returned alongside the cleaned one.

See a free before-and-after sample · sample files you can download

Start a Quick Clean · $25 (up to 200 rows)

Check your CSV free first

Check your CSV for exact-email duplicates and formatting problems free in your browser before you import it into Salesforce. Your file never leaves your computer.

Run the free CSV Preflight Checker

How it works

Pay

Pick the size that fits your list and check out on Stripe. Quick Clean is $25 for up to 200 rows.

Email us your CSV (reply to your receipt or send it to slrescue@mail.grokbot.com)

No Salesforce login, no call, no upload form.

Get it back: 24h (Quick Clean, up to 200 rows), 48h (Intro), 72h (Growth), 5 business days (Bulk)

A clean CSV plus a change log. Over 5,000 rows, the turnaround is scoped in your custom quote.

Flat pricing

Your $25 Quick Clean counts toward any bigger cleanup within 14 days.

Quick Clean, Intro, Growth and Bulk: If the file isn't what we promised, we fix it once for free within 48 hours. If it still isn't right, you get your money back for the part we couldn't deliver. If we're late, you choose a full refund or a free rush job.

Not sure how messy it is? CRM Hygiene Scorecard (written diagnosis), $29 · DIY HubSpot and Salesforce import checklist, $9. Agencies: white-label batches.

Questions

Can Salesforce mass merge duplicate contacts?

Not more than three at a time from a record: "Choose up to three contact records to merge." (Salesforce help) On Performance and Unlimited Editions, Duplicate Jobs finds duplicate sets across the org, which you then Compare and Merge (Salesforce help). We merge same-email rows in your exported file in one pass and log each one.

Why is the Merge Contacts button missing?

Salesforce lists the permission needed as "To merge contacts: Delete on contacts" (Salesforce help). Ask your Salesforce admin. The help page also says: "If duplicate contacts aren’t getting flagged, see “Standard Contact Matching Rule” in Salesforce Help to learn how Salesforce identifies duplicate records."

Does the same work for duplicate leads?

Yes, natively: "Choose up to three lead records to merge." (Salesforce help) "The non-principal leads are moved to the Recycle Bin." (Salesforce help) Send us a Leads export the same way, as a separate file from Contacts.

How do I remove duplicates from a list before importing it into Salesforce?

Export or collect the list as a CSV and send it to us. Same-email rows are merged and logged, and possible duplicates are flagged needs_review. Salesforce's own advice is to prepare the CSV before importing: it "prevents errors, duplication of data, and frustration" (Salesforce help).

Will you merge or delete records in my Salesforce org?

No. We clean the exported file only. Same-email rows are merged in the file, with each merge and fill logged; conflicting consent or opt-out values (consent columns we recognise by header name) are flagged needs_review, never overwritten. A consent column with an unusual header still has any conflict logged in the change log. Tell us the column name when you order and we'll treat it as consent. Rows that only might match (same name and company, different email) are flagged needs_review for you to decide. You run the import and any merges in Salesforce yourself.

What comes back, and how do I use it with the Data Import Wizard?

A UTF-8 CSV. Headers come back in lowercase with underscores (for example, Email Opt Out becomes email_opt_out and Contact ID becomes contact_id). Our standard columns come first (full_name, email, phone, company, title, website and linkedin; some may be blank), then status and qa_notes, then the rest of your columns and source_row. Map each column in the Data Import Wizard and leave status, qa_notes and source_row unmapped: "Unmapped fields aren’t imported into Salesforce." (Salesforce help) Keep contact_id if you're updating existing records, and test a small file first, as Salesforce recommends. We don't run or guarantee the import.

Do you need access to my Salesforce org?

No. You export a file and email it. We only clean the exported file and never log in to or touch your Salesforce org.

How fast is delivery?

From when we receive your file: Quick Clean (up to 200 rows) within 24 hours, Intro within 48 hours, Growth within 72 hours, Bulk within 5 business days. Over 5,000 rows is scoped in your quote.

What if the cleaned file isn't right?

If the file isn't what we promised, we fix it once for free within 48 hours. If it still isn't right, you get your money back for the part we couldn't deliver. If we're late, you choose a full refund or a free rush job.

What happens to my data?

Your file is used only for your job and deleted after delivery on request. We never log in to your CRM, and we never invent, buy, or append emails.

Try the free in-browser CSV dedupe teaser (data never leaves your browser). Freelancers: see the referral kit.

Not affiliated with Salesforce. Quotes are from Salesforce's public help docs.