To merge contacts in Salesforce, open a contact that shows a duplicate alert, click View Duplicates, select up to three contacts, choose the principal contact and which field values to keep, then confirm. You need the Delete permission on contacts. Related records such as activities, opportunities and campaign history move to the surviving contact, and the merge cannot be undone.
This guide was first published in 2020 as "How to Merge Contacts in Salesforce". It has been rewritten for 2026 for Lightning Experience, with the permission problems people actually hit and the options for merging duplicates in bulk.
How to merge contacts in Salesforce, step by step
Merging takes six clicks from any duplicate contact in Lightning Experience. These steps follow Salesforce Help's Merge Duplicate Contacts in Lightning Experience.
- Open one of the duplicate contacts. If duplicate management is set up, the record page shows a message that duplicates exist.
- Click View Duplicates to see the matching records.
- Select up to three contacts to merge, then click Next.
- Choose the principal contact: the record that survives. Its record ID is the one other systems keep pointing to, so pick the one integrations and reports already use.
- For each field where the records differ, choose the value to keep.
- Confirm the merge. The other records are deleted and their related items are moved to the principal contact.
If no duplicate message appears, the duplicates either don't match your org's matching rule or the Potential Duplicates component is not on the page. Salesforce Help explains how to show duplicate records in Lightning Experience: orgs created in Summer '17 or later have standard duplicate rules and the component already active for business accounts, contacts and leads, and an admin can add the component to the contact page in Lightning App Builder.
Why can't I merge contacts? Permissions and the missing button
The most common complaint is a user who sees duplicates but can't merge them. Check these in order:
- Delete on contacts. Merging deletes records, so the user's profile or a permission set must grant Delete on the Contact object. Edit alone is not enough.
- Access to every record. The user has to be able to see each contact being merged; a duplicate owned by another team and hidden by sharing rules blocks the merge.
- Portal users. Contacts linked to Experience Cloud (portal) users need more than Delete. As of November 2026 the Help article lists Manage Customer Users or Edit Self-Service Users for Customer Portal contacts, and Manage External Users or Manage Partners for Partner Portal contacts. The principal contact must be the one linked to the portal user.
- The component. If the View Duplicates button never shows, the Potential Duplicates component is missing from the Lightning record page, or no active duplicate rule covers contacts.
Grant Delete through a permission set for the people who clean data, rather than editing a profile everyone shares. Our Salesforce security guide covers keeping that kind of access tight.
What happens to related records, fields and history
Related records move to the surviving contact, the duplicates are deleted, and most history is kept. Salesforce Help's Considerations for Merging Duplicate Contacts sets out what survives:
| Item | After the merge |
|---|---|
| Related records (activities, campaigns, opportunities, cases) | Moved to the principal contact |
| Campaign membership | Kept, with each campaign's Member Status Updated date |
| Chatter feed | Only the principal contact's feed is kept; files in feeds and the Files related list are kept |
| Hidden and read-only fields | Values are kept from the principal contact, but you can't choose them on the merge screen |
| Created By and Created Date | Taken from the oldest of the merged records |
| Last Modified By | Shows the user and date of the merge |
| Portal user | The principal contact's portal status is kept; a duplicate's portal user is deactivated |
Because hidden fields are not shown, check them in a report before merging if they matter, for example consent or marketing fields.
Things to check before you merge
Because a merge is permanent, check accounts, consent, roles and integrations first.
- Primary account. In Lightning you can merge contacts with different primary accounts, unless one of them is linked to a portal user. The surviving contact keeps the account you choose.
- Data privacy and consent. Decide which record's opt-outs win. Keeping the most restrictive choice is the safe default.
- Contact roles. Roles on opportunities and cases move with the related records; look for the same person now listed twice on one opportunity.
- Integrations. Marketing tools and ERPs that stored a duplicate's ID will lose their link. Choose the principal contact they already reference, or update them afterwards.
- Leads are separate. A lead can't be merged into a contact. Convert it instead and attach it to the existing contact, as Salesforce Help's lead-to-existing-contact article describes.
- Back up first. A merge is permanent. Export the records with Data Loader or a report before any clean-up larger than a handful of records.
Merging contacts in Salesforce Classic
In Classic you merge from the account's Contacts related list, and only contacts on the same account. Classic is no longer where Salesforce adds features, but some orgs still use it. In Classic you open an account, click Merge Contacts on its Contacts related list, search for and select up to three contacts, then choose the master record and field values. Classic only merges contacts that share the same primary account, which is why many teams moved the job to Lightning. Our guide to Salesforce Lightning covers the switch.
How to merge duplicate contacts in bulk
For more than a few dozen duplicates, run a duplicate report to size the problem, then use duplicate jobs, code or a deduplication app. Report on contacts grouped by email or name to see how many sets you have before you pick a method; our reports guide shows how.
| Option | Good for | Limits |
|---|---|---|
| Merge screen, one group at a time | A few dozen duplicates | Three records per merge; manual |
| Duplicate jobs | Finding every duplicate in the org, then merging from one list | Performance and Unlimited Editions; you still compare and merge each set |
| Apex or the API | Thousands of rule-based merges | Three records per merge call; needs a developer and testing |
| AgentExchange (formerly AppExchange) deduplication apps | Scheduled, rule-based mass merging without code | Extra cost; review each app's security and merge rules |
Duplicate jobs scan the whole org against a matching rule. Salesforce Help's Things to Know About Duplicate Jobs says they are available in Performance and Unlimited Editions, need the Customize Application and View All Data permissions to run, and stop accepting new jobs once completed jobs hold 1,000,000 duplicates in total. You review the results as duplicate record sets and use Compare and Merge on each one. Jobs can also run on custom objects, but those duplicates can't be compared and merged.
Code. The Apex merge statement takes a master record and one or two duplicates of the same type; only leads, contacts, cases and accounts can be merged, as the Apex Developer Guide explains. The master record's values, including blanks, win over the duplicates', so set the fields you want on the master before merging. To combine more than three records, run successive merges. Bulk merge code must also respect governor limits.
Stop duplicates coming back
Duplicate rules, a monitoring report and clean imports keep a merged org clean.
- Turn on the standard contact matching and duplicate rules if they are not active, and set the rule to alert or block on save.
- Add a duplicate report so an admin sees records that were saved despite the alert.
- Check imports and web forms: most duplicates arrive through integrations and bulk loads that don't check for existing contacts. Leads are the usual entry point, so align your lead status and conversion process with the contact rules.
- Decide who owns data quality, and give only those people Delete on contacts.
Getting help
A one-off clean-up is easy; keeping a large org free of duplicates takes rules, permissions and integrations that agree with each other. Techila is a Salesforce Summit Partner, and our Salesforce support services team handles duplicate management and data clean-ups. Talk to us about yours.
Frequently asked questions
How many contacts can you merge at once in Salesforce?
Up to three at a time: one principal contact and up to two duplicates. To merge a larger group, merge in rounds. The same three-record limit applies to the Apex merge statement and the SOAP API merge call.
What permission do you need to merge contacts?
Delete on contacts. Users who can see the View Duplicates button but can't merge usually lack Delete on the Contact object, or can't see all of the records involved. Contacts linked to portal users need extra permissions.
Can you merge contacts from different accounts?
In Lightning Experience, yes, unless one of the contacts is associated with a portal user. Salesforce Classic only merged contacts that shared the same primary account.
Can you undo a contact merge?
No. Salesforce treats a merge as permanent: the duplicates are deleted and their related records move to the principal contact. Export or back up the records before a large clean-up.
Can you merge a lead into a contact?
Not with the merge tool: leads and contacts are different objects. Convert the lead to the existing account and choose the existing contact during conversion. The lead's data only fills the contact's empty fields.
