Manual entry without a check
A rep creates a lead for someone who is already in the system under a slightly different name, a new email or another company spelling. Nothing on the standard page tells them a match exists.
Duplicate Check, now sold by Plauti as Plauti Deduplicate, is a Salesforce-native app that finds, prevents and merges duplicate leads, contacts, accounts and custom-object records. This guide covers what it does and how it compares with Salesforce's own duplicate rules, then walks through a rollout that cleans your data without merging the wrong records.
Trusted by 500+ organizations: growing and mid-market companies, plus enterprise teams, that run sales, service and operations on clean Salesforce data with Twopir Consulting.










What This Guide Covers
Duplicate Check is a Salesforce app that helps you find, prevent and merge duplicate records across leads, contacts, accounts and custom objects. It is built by Plauti, which renamed it Plauti Deduplicate in its Spring '25 release. Since the 2026 R1 release, only the new name appears in the Salesforce App Launcher. Most admins still search for it as Duplicate Check, and its AppExchange listing calls it "formerly Duplicate Check". This guide uses both names.
It runs as a managed package inside your org. Matching is set up as scenarios, Plauti's equivalent of Salesforce matching rules. Each scenario says which fields to compare, whether each field matches exactly or fuzzily, how much each field counts, and what score makes two records a duplicate. Every result shows its score and the fields that matched, so a reviewer can see why a pair was flagged before merging it.
Plauti sells it as freemium. On the AppExchange (seen November 2026) Plauti says the app is used in over 17,000 Salesforce orgs, rates 4.59 from 302 reviews, and is free up to 10,000 records with basic functionality. Paid licences are priced on the record count of the largest object you deduplicate, not per user, and every plan includes unlimited users. Product behaviour is documented on Plauti's product page for Deduplicate and in its setup guide.
Three parties own different parts of this. Salesforce provides native duplicate management: matching rules, duplicate rules and, on some editions, duplicate jobs. Plauti licenses Duplicate Check and owns its roadmap. Twopir Consulting implements it: we design the scenarios and merge rules, clean up the existing backlog, and connect prevention to your forms, imports and integrations. Duplicate control is usually one workstream inside a wider Salesforce services engagement.
Duplicates are rarely one careless rep. They arrive through every channel that creates records, and each channel needs its own control. Fixing one and ignoring the rest just moves the problem. These are the six entry points we check first in any org.
A rep creates a lead for someone who is already in the system under a slightly different name, a new email or another company spelling. Nothing on the standard page tells them a match exists.
The same person downloads two assets or fills in the contact form twice. Each submission becomes a new lead, and lead assignment can send them to two different owners.
Event lists, purchased data and migration loads are the biggest single source. Salesforce's own duplicate rules show no alert to import tools. When a rule would alert or block, the flagged rows fail to save instead of being matched.
Marketing automation, ERP, e-commerce and enrichment tools write records through the API. A sync with a weak match key creates a new record every time it misses an existing one.
An existing customer fills in a form and arrives as a lead. Matching inside the lead object never finds them, so sales treats a current customer as a cold prospect.
"Bob" and "Robert", "Acme Inc" and "ACME", or a phone number with and without a country code. Exact matching treats these as different people, and they pile up quietly.
Every team that reads from the CRM is affected by duplicates. They split one customer's history across several records, so sales, marketing and service each see part of the story and reporting counts the same customer twice.
One record per person or company, with the best value kept for each field when records are merged, so the CRM holds one version of the truth instead of several partial ones.
Pipeline, conversion and customer counts stop being inflated by the same customer appearing twice, so forecasts and campaign results reflect reality.
Detection and merging run automatically, so reps stop researching which record is the real one and marketers stop sending the same email to the same person twice.
Entry-time checks stop most duplicates before they are saved, and the rest are caught by scheduled jobs. A one-off cleanup without prevention is dirty again within months.
When every email, call, case and purchase sits on one record, the next conversation starts from the full history rather than from whichever duplicate the rep happened to open.
A deletion request or a consent change is only honoured if it reaches every copy of the person. With one record per person, nobody keeps receiving email from a forgotten duplicate after opting out.
The app does six jobs. Most of what goes beyond exact matching on standard objects sits in the paid Premium edition, so map the features you need before you choose a licence.
Find and merge duplicates on any object, custom objects included, and match across objects, such as a new lead that already exists as a contact.
Stop duplicates being created in the first place, with real-time checks at entry and automatic handling of records that arrive from outside.
Merge and convert duplicates automatically, based on rules you define, so a clean org stays clean without anyone working a queue.
Extensive options to fit your specific Salesforce environment, from how strictly fields match to which record survives a merge.
End users can find and process duplicates themselves inside their normal workflow, with guardrails that keep risky merges with the right people.
Salesforce Flow Actions and API integration connect duplicate checks to the rest of your automation and to the systems that write into Salesforce.
Salesforce already includes duplicate management, so the first question is whether you need an app at all. Native matching and duplicate rules come with Essentials, Professional, Enterprise, Performance, Unlimited and Developer editions. The differences show up at volume, on custom objects, and on records that do not come in through the page layout.
| Area | Salesforce native | Duplicate Check (Plauti Deduplicate) |
|---|---|---|
| Matching | Matching rules with exact or fuzzy methods (Jaro-Winkler, Metaphone 3, Name Variant and others). Up to 5 active matching rules per object. | Scenarios with scored, weighted fields and many matching methods, plus frequent-word and synonym lists. The Free edition matches exactly only. |
| What happens at entry | Duplicate rules alert or block, and can differ by profile. Up to 5 active duplicate rules per object. | Entry page warns or blocks; a live component lists duplicates on the record; Direct Processing can merge automatically. |
| Imports and API | No alert is shown. Records a rule would alert on or block cannot be saved, so the load fails on them rather than matching them. | Unique Import checks bulk imports after loading; web-to-lead and API records are checked and queued in a job, or merged by Direct Processing. |
| Lead vs contact | Cross-object rules exist, such as contacts that duplicate leads. Custom picklist fields are not supported in cross-object matching rules. | Cross Object matching on any object pair, custom objects included, with field mapping, and a convert action into an existing contact or account. |
| Finding existing duplicates | Duplicate jobs on Performance and Unlimited editions only. Salesforce notes that jobs can fail in orgs with many records. | Batch jobs on one object, two objects or a filtered subset, run in Salesforce or on Plauti Desktop, Server or Cloud for high volumes. |
| Scheduling and automation | Jobs are started manually from Setup. Merging is done by a person from the duplicate record set. | Scheduled jobs with auto merge and auto convert, controlled by merge rules and a score threshold. |
| Merging | Up to three accounts, contacts or leads at a time in Lightning. Duplicate jobs can find custom-object duplicates, but you cannot compare and merge them. | Two or more records merged on any object, with merge rules pre-selecting the master record and the field values to keep. |
| Audit | Duplicate record sets and reports on them. | Audit log of user activity and a dashboard of merges and converts by period, object and user. |
When native is enough: a single business unit, standard objects only, most records created by hand, and a duplicate rate low enough for a person to merge from a report. Start with the standard rules and see how far they get you. Salesforce's duplicate management overview explains how the pieces fit together.
When Duplicate Check earns its licence: heavy imports, web-to-lead or API traffic, leads that duplicate existing contacts, custom objects that need merging, a backlog too large to merge three at a time, or an edition without duplicate jobs. Many orgs run both: native rules on the page layouts users know, with Duplicate Check covering imports, integrations and the scheduled clean-up.
Duplicate Check integration means connecting the app to every route that writes records into Salesforce. Data entry gets checked automatically, data synced from other platforms stays deduplicated, and workflows see one record instead of three. There are three main routes: API integration, Salesforce Flow Actions, and automatic processing of duplicates from web-to-lead forms, imports and API calls.
| Route in | What Duplicate Check does | What to decide |
|---|---|---|
| Users on the record page | The entry page checks before save and warns or blocks. The live component shows possible duplicates on an existing record, with merge and convert actions. | Warn or block, per object and per team. Blocking everyone frustrates reps when a match is a false positive. |
| Web-to-lead forms | Incoming leads are checked but not blocked, so no form submission is lost. Duplicates go to a job for review, or Direct Processing merges them on arrival. | Which source wins on a merge: usually the existing record keeps its owner and the new submission adds its latest field values and campaign. |
| Imports | Unique Import compares imported records with existing ones after the import, from any tool, such as the Data Import Wizard. It runs only for bulk imports of two or more records. | Whether to clean after loading or skip duplicates before they load. Skipping before loading uses Plauti's Import Data Flow on Desktop, Server or Cloud. |
| API inserts and syncs | Records created or updated through the API, marketing integrations or syncs are checked and placed in a job, or direct-processed. | Which integration user and object combinations to check, so a high-volume sync does not flood the review queue. |
| Salesforce Flow | Flow Actions find duplicates by record ID or field values, return duplicate IDs, run a quick merge or convert, find the master record, store results in a job, or direct-process. | Where in your flows a check belongs. Find Duplicates By ID handles one record at a time, so it suits record-triggered flows, not bulk loads. |
| Apex and REST | The Apex API searches, merges and converts from code. The REST API searches for duplicates or upserts through Plauti's Data API. Apex plugins run custom logic on search, merge and prevention events. | Whether custom triggers or an integration layer should call Duplicate Check directly, and how errors are logged. |
Where the data lives. Plauti describes the app as 100% native, with no data transfer when finding, merging or preventing duplicates. Its documentation adds that large jobs can be run on Plauti Desktop or Server on your own machine, or on Plauti Cloud as a paid service. If records must never leave Salesforce, keep jobs on the in-org option and write that into the design. Duplicate checks sit alongside the sync design in our Salesforce and HubSpot data sync and Salesforce and NetSuite data sync work, because a sync with a weak match key is the most common source of API duplicates.
A sales team adds leads constantly: by hand, from forms and from event lists. Over time the same person ends up as several lead records, follow-ups split between owners, and nobody trusts the activity history. With Duplicate Check's prevention each lead stays unique, so tracking and follow-up stay accurate. Here is the same lead through each control.
The entry page matches the new name, email and company against existing leads and contacts before save, and shows the rep the existing lead, scored.
ResultThe rep opens the existing record instead of creating a second one
The web-to-lead record is saved, so nothing is lost, and checked on arrival. At a near-certain score, Direct Processing merges it into the existing lead under the merge rules.
ResultOne lead, with the newest form values and the original owner
Cross-object matching finds that the person exists as a contact on a current account. The rep converts the lead into that contact rather than starting a new opportunity cycle.
ResultAccount manager alerted, no cold outreach to a customer
Unique Import compares the new rows with existing records after the load and places likely duplicates in a job for the marketing operations owner to review.
ResultEvent attendance added to existing leads, not new ones
A weekly job catches anything that slipped through. Pairs above the auto-merge threshold merge on their own, and unclear pairs wait for a person.
ResultThe backlog stays near zero without a monthly clean-up project
The audit dashboard shows merges and converts by object and user, so the admin can spot a scenario that is too loose or a team that keeps overriding warnings.
ResultMatching tuned on evidence, not on complaints
A merge deletes the losing records and moves their related records to the master, and Plauti notes that merges cannot be undone. The order of the rollout matters more than any single setting. This is the sequence we follow.
| Step | What to do | Why it matters |
|---|---|---|
| 1 · Size the licence | Count records on the largest object you will deduplicate and list the features you need: fuzzy matching, cross-object, imports, automation, API. | The licence is priced on that record count and does not grow on its own; most automation needs Premium rather than Free. |
| 2 · Back up first | Take a full export or backup of the objects in scope before the first merge. | Merged-away records are deleted. A backup is the only way to reconstruct a bad merge. |
| 3 · Build scenarios in a sandbox | Start with strict scenarios on email, phone and normalized company name. Add fuzzy name matching, frequent words and synonyms once the strict results look right. | Loose scenarios produce false positives, and reviewers stop trusting a queue full of them. |
| 4 · Run find-only jobs | Run jobs without merging, sample results across score bands, and discard false positives. | This is where you learn which score is genuinely safe to automate in your data. |
| 5 · Write the merge rules | Decide which record survives (oldest, most complete, owned by an active user, a customer over a prospect) and which field values win, per object, lead source or record type. | Without rules, every merge is a manual judgement and every reviewer decides differently. |
| 6 · Clear the backlog | Merge the high-confidence pairs first, then work the middle band with the owning teams. Leave the low band alone. | The first clean-up is the largest. Doing it in bands keeps the risky decisions with people who know the accounts. |
| 7 · Turn on prevention | Enable entry checks, the live component, web-to-lead, API and Unique Import, channel by channel, and align or retire overlapping native duplicate rules. | Two systems warning about the same record confuses users and doubles the work. |
| 8 · Automate at a high threshold | Schedule recurring jobs and enable auto merge or Direct Processing only at the score you proved in step 4. Plauti recommends 99% or 100% for Direct Processing. | Automation without review is only safe where a match is near certain. |
| 9 · Train, audit, tune | Train users on warnings and merging, limit merge rights where needed, and review the audit dashboard monthly for the first quarter. | Scenarios drift as data and teams change; the audit shows where. |
Installing the package takes minutes. The work is in the matching design, the merge rules, the backlog and the integrations, and in getting the people who own the data to trust the result.
We measure how many duplicates you have, on which objects, and which channels create them. Then we decide whether native rules, Duplicate Check or both fit, and which edition you need.
Scenarios, merge rules, prevention on every entry route and automation thresholds, built in a sandbox and fitted around the flows, validation rules and integrations already in your org.
Role-specific sessions for reps, marketers and admins: what a warning means, when to merge or convert, and when to hand a pair to the data owner.
Scenario tuning from the audit data, new objects and integrations brought under control, and help as Plauti releases change the app. Our revenue operations team keeps it tied to the reports it protects.
Related reading. For the other half of data hygiene, see our guides to improving Salesforce data quality with Validity, loading data into Salesforce efficiently, and deleting data from a Salesforce org safely. On HubSpot, the same discipline applies to clean HubSpot imports. More guides are on the Twopir blog.
Yes. Plauti renamed Duplicate Check to Plauti Deduplicate in its Spring '25 release. Since the 2026 R1 release, only Plauti Deduplicate appears in the Salesforce App Launcher. It is the same managed package and the same AppExchange listing, so existing configuration carries over.
There is a free edition for up to 10,000 records with basic functionality and exact matching only. Fuzzy matching, cross-object matching, custom objects, Unique Import, web-to-lead and API prevention, automation, merge rules and the APIs need a paid edition. Plauti prices paid licences on the record count of the largest object you deduplicate, with unlimited users, and does not publish list prices.
Not necessarily, but they can coexist. Some orgs keep native duplicate rules on page layouts and use Duplicate Check for imports, integrations and scheduled clean-up. Others move entry checks to Duplicate Check as well. Either way, design the two together so users are not warned twice about the same record, and so a native block rule does not reject records that Duplicate Check was meant to merge.
Yes, in the Premium edition it works with all objects, custom objects included, and can match across two objects. Salesforce's native duplicate jobs can find duplicates on custom objects, but Salesforce Help states that you cannot compare and merge them, which is a common reason teams add the app.
Not for jobs processed within Salesforce: Plauti states that finding, merging and preventing duplicates there involves no data transfer. For high-volume jobs Plauti also offers Plauti Desktop or Server, which run on your own machine, and Plauti Cloud, a paid service on Plauti's servers. Choose the processing option deliberately if your data policy requires records to stay in the org.
Treat it as permanent. On a merge only the master record is kept, the other records are deleted, and their related records move to the master. Plauti recommends a 99% or 100% score threshold for Direct Processing for exactly that reason. Back up before the first clean-up, run find-only jobs to prove your thresholds, and automate only above them.
Clean, accurate records are critical to business success. They decide whether a rep calls the right person, whether marketing reaches each customer once, and whether leadership trusts the pipeline. Duplicate Check gives Salesforce the tools to prevent, find and merge duplicates, and Twopir Consulting configures them for your org so your CRM stays clean. Tell us where your duplicates come from and we will show you what it takes to fix them.
Talk to a Salesforce architect about your data quality