How to Dedupe in Salesforce: Find, Merge & Prevent Dupes

Salesforce has built-in duplicate management tools that let you prevent new duplicates from entering your database and clean up existing ones. The process involves three layers: configuring matching rules that define what counts as a duplicate, setting up duplicate rules that control what happens when one is detected, and then merging the records that have already piled up. Here’s how to handle each part.

How Matching Rules and Duplicate Rules Work Together

Matching rules and duplicate rules are two separate but connected features. A matching rule defines the criteria Salesforce uses to compare records. For example, it might flag two contacts as potential duplicates if they share the same email address and last name. A duplicate rule tells Salesforce what to do when a matching rule fires: block the record from being saved, show an alert but still allow the save, or log the duplicate quietly in the background.

Salesforce ships with three default matching rules covering Accounts, Contacts, and Leads. These out-of-the-box rules handle basic scenarios but won’t catch everything, especially if your data has inconsistent formatting, nicknames, or partial entries. You can create up to five matching rules per object to cover additional scenarios.

Setting Up a Duplicate Rule

To create or customize a duplicate rule, go to Setup and search for “Duplicate Rules” in the Quick Find box. From there:

  • Choose the object. Select whether the rule applies to Leads, Contacts, or Accounts.
  • Pick your matching rule. Assign one of the existing matching rules or create a new one under Setup > Matching Rules. A new matching rule needs to be activated before it can be linked to a duplicate rule.
  • Set the action. Decide whether Salesforce should block the duplicate record entirely, display a warning and let the user override it, or allow the record and log it as a duplicate in the background. For most teams, “Alert” is a practical starting point because it flags the issue without disrupting workflows.
  • Define the scope. You can apply the rule only when users create records, only when they edit records, or both.

Once the rule is active, any record that triggers a match will be handled according to your settings. If you chose the alert option, users will see a “Potential Duplicates” component on the record page showing the matched records.

Blocking Duplicates During Data Imports

The Data Import Wizard supports duplicate detection during uploads. When importing leads, for example, you can choose a matching type (Salesforce ID, Name, or Email) to prevent the wizard from creating records that already exist. If the wizard finds a match based on your chosen field, it can update the existing record instead of creating a new one.

Data Loader, the other common import tool, does not have the same built-in duplicate matching. If you use Data Loader for bulk uploads, your active duplicate rules will still fire on each record as it’s inserted, so records can be blocked or flagged depending on your rule settings. For large imports where you want tight control, running the data through a deduplication check before uploading is a safer approach.

Finding and Merging Existing Duplicates

Preventing new duplicates is only half the job. Most orgs already have thousands of duplicate records that need to be cleaned up. Salesforce offers a few ways to find and merge them.

Duplicate Record Sets

When a duplicate rule fires or a duplicate job runs, Salesforce creates a Duplicate Record Set, which is essentially a group of records identified as duplicates of each other. You can build a report on the Duplicate Record Set object to see all flagged groups in one place. From the report, click into any Duplicate Record Set, then choose “Compare and Merge” from the dropdown menu. Salesforce will show you both records side by side so you can pick which field values to keep.

The Potential Duplicates Component

If you’ve added the Potential Duplicates component to your Lightning record pages, users will see duplicate alerts as they work through their daily tasks. Clicking “View Duplicates” opens the comparison view, where you can merge records on the spot. This is the most practical method for keeping data clean over time because it catches duplicates at the moment someone is already looking at the record.

Duplicate Jobs

Duplicate Jobs scan your entire database against your matching rules and generate Duplicate Record Sets for everything they find. This is the best tool for a one-time cleanup of a dirty database. However, Duplicate Jobs are only available in Performance and Unlimited editions of Salesforce. If you’re on Professional or Enterprise edition and don’t see the option, that’s why.

Merging Limits

Salesforce lets you merge a maximum of three records at a time, and the merge process cannot be automated through standard tools. If you have tens of thousands of duplicates, merging them three at a time through the UI is not realistic, which is where third-party tools become necessary.

When Native Tools Aren’t Enough

The built-in duplicate management features work well for prevention and small-scale cleanup, but they have real limits. You can only create five matching rules per object. Merges are capped at three records per operation and must be done manually. There’s no cross-org duplicate detection, and the matching logic doesn’t support fuzzy matching (catching “Jon” and “John,” or “St.” and “Street”) without custom configuration. For organizations with large databases, complex data quality issues, or custom objects that need deduplication, third-party tools on the AppExchange fill these gaps.

Third-Party Deduplication Tools

The Salesforce AppExchange has a range of deduplication apps, from free basic scanners to enterprise-grade platforms. Here are some of the most established options:

  • Cloudingo offers customizable filters with exact matching, fuzzy matching, and synonym detection. It’s designed for bulk deduplication and ongoing prevention.
  • DemandTools is a broader data quality platform that handles deduplication alongside standardization, mass record changes, lead conversions, and imports.
  • Plauti Deduplicate is a Salesforce-native app that finds and merges duplicates across Leads, Contacts, Accounts, and custom objects. It also prevents duplicates on manual entry, imports, and API inserts.
  • Datagroomr uses machine learning to detect duplicates with no setup required. It works across Accounts, Leads, Contacts, and custom objects, and is a good fit for teams that want quick results without heavy configuration.
  • DupeCatcher focuses on blocking and deduping at the point of entry for Leads, Accounts, Contacts, and Personal Accounts.
  • RingLead DeDupe is a free AppExchange solution that matches on key fields like first name, last name, and email. It can scan a subset of your data in as little as six minutes, making it useful for a quick assessment.
  • Smart Duplicate Manager supports one-by-one and bulk merging, and generates data reports after each merge operation so teams can track what changed.

Most of these tools offer free trials, so you can test them against your actual data before committing. When evaluating, pay attention to whether the tool supports your edition of Salesforce, handles the specific objects you need (especially custom objects), and can run automated bulk merges if your duplicate count is in the thousands or higher.

A Practical Cleanup Sequence

If you’re starting from scratch with a messy database, a structured approach saves time and avoids mistakes.

First, activate your duplicate rules in “report only” mode. This logs duplicates without blocking anyone’s work, giving you a baseline count of how bad the problem is. Run a Duplicate Job if your edition supports it, or build reports on the Duplicate Record Set object to see the scope.

Next, merge existing duplicates. If the volume is manageable (a few hundred records), work through them using Compare and Merge from your Duplicate Record Set report. For larger volumes, use a third-party tool that supports bulk automated merging. Before any bulk merge, export a backup of the affected records so you can recover data if something goes wrong.

Finally, switch your duplicate rules from report-only to alert or block mode. This prevents new duplicates from entering the system going forward. Add the Potential Duplicates component to your Lightning record pages so users see alerts in context. If your team does regular data imports, establish a standard process for deduplication checks before each upload.

The combination of active prevention rules and periodic cleanup passes keeps your database clean without requiring constant manual effort.