Recurring Duplicates

Recurring duplicates are duplicate records that keep appearing in a CRM after earlier duplicates have been found and merged, because the processes that created them are still running. The term covers new duplicates of people, companies or deals already in the CRM, and records that return after a merge. It's what people mean when they ask why duplicates keep coming back.

A cleanup removes the duplicates that exist on the day it runs. It doesn't change how records get in. Web forms, list imports, integrations, syncs between systems and reps adding records by hand each check for an existing record in their own way, and some don't check at all. Each gap lets a new duplicate in. Tackling recurring duplicates means finding which sources create them, fixing those sources where possible, and catching the rest with regular deduplication.

See how Dedupely merges new duplicates as they arrive in your CRM

What Are Recurring Duplicates?

Recurring duplicates, sometimes called repeat duplicates, are the reason a CRM that was clean last quarter has duplicates again. Their causes are similar in every CRM. A person fills out a form with a personal email after a rep added them with a work email. A list import brings in people who are already there under a slightly different name. An integration or sync creates records using its own matching rules. And data decay adds new records for people who changed jobs or email addresses.

A typical example: J. Smith, john.smith@acme.com, is merged with a second record during a cleanup, and the work email is kept. A month later, J. Smith registers for a webinar with jsmith@gmail.com. The form checks only the email address, finds no match and creates a new contact. The cleanup worked, but the entry point behind the first duplicate is unchanged, so the duplicate returns.

Recurring duplicates affect every object: contacts and companies in HubSpot, leads and accounts in Salesforce, people and organizations in Pipedrive, leads in Close, and contacts in Nimble and Google Contacts.

Teams handle them in two ways, and many use both. Fixing the source, such as a form, an import mapping or a sync setting, cuts the number of new duplicates at the point they're created. Ongoing deduplication runs matching on a schedule or as new records arrive, and catches the duplicates that still get through, including those from sources a team can't change.

How Recurring Duplicates Work

Recurring duplicates come from the gap between how records enter a CRM and how duplicates are checked. The cycle often looks like this:

  1. Records enter from several places. Forms, imports, sales and marketing tools, syncs with other systems and reps adding records by hand all create records, and each one runs on its own settings.
  2. Each entry point checks a few fields, or none. Some look for an existing record by email address, some by an ID, and some create a record every time. A person who arrives with a different email, a nickname or a new company passes the check.
  3. A new duplicate is created. The new record and the existing one describe the same person or company, and each holds part of the history.
  4. Syncs carry duplicates between systems. When two connected systems match records differently, a duplicate merged in one can remain in the other, and the next sync can bring it back or create it again.
  5. Cleanup resets the count, not the cause. A one-time cleanup merges what exists, but the entry points stay the same, so the count climbs again until the next cleanup.

Breaking the cycle starts with tracing duplicates to their source. The creation date, the owner and the source field of each record in a duplicate set, where the CRM keeps one, often point to the form, import or integration that keeps adding them.

Why Recurring Duplicates Matter for CRM Teams

Recurring duplicates undo the work of a cleanup. Reports that were accurate after the last merge drift again: contact counts and pipeline totals rise without new customers, attribution splits between records, and the same account can show up twice in a forecast. Tools billed by contact count charge for each new duplicate, so the bill grows with them.

Day to day, the effects return as well. Two reps contact the same lead, a customer gets the same email twice, and support sees only part of the history. An unsubscribe recorded on one record may not reach the other, so a person can keep getting emails they opted out of. Routing and lead scoring work from half a record, so an active lead can look inactive.

They also change what deduplication costs. When the source isn't fixed, each cleanup is followed by another, and the time spent merging grows with every entry point the CRM adds: a new form, a new sales tool, a new sync. Fixing a source once lowers the number of duplicates every later cleanup has to handle. Duplicates found soon after they're created are often simpler to merge, too, because fewer emails, deals and notes have been added to both records.

Getting Started With Recurring Duplicates

Start by finding where the duplicates come from. Take a sample of recent duplicate sets and look at how each record was created: the source, the creation date, the owner and the form or integration behind it. A pattern often appears, such as one form, one import or one sync adding most of them.

Then fix the sources you control. A form can update an existing record on email address instead of creating a new one, an import can map a unique ID or email so existing records are updated, and two connected systems can be set to match records the same way. Reps can search before adding a record. Some causes can't be fixed at the source, such as people using a personal email, or details that change when people move jobs.

For the duplicates that still get through, run the checks that have proven reliable on a schedule or as new records arrive, so new duplicates are merged while they're still few. Record the pairs that aren't duplicates, so they aren't flagged again on every run, and compare the counts over time to see whether a fix worked.

In Dedupely, Auto Match and Auto Merge carry out those ongoing checks on a trusted Duplicate Search, with Auto Match notifying you when new matches reach a count you set and Auto Merge merging new duplicates on a schedule or as soon as possible. Rejected Matches keep sets you've marked as not duplicates out of current and future searches.

Key Takeaways: Recurring Duplicates

Recurring duplicates are the duplicates that keep coming back after a cleanup, because the sources that created them are still running: forms, imports, integrations, syncs, reps adding records and data decay. Fixing those sources lowers how many get in, and ongoing deduplication catches the rest. In Dedupely, new records are detected within 1–5 minutes, and Auto Match and Auto Merge keep trusted Duplicate Searches running: Auto Match notifies you when new matches reach a count you set, and Auto Merge merges new duplicates on a schedule or as soon as possible. Rejected Matches keep sets marked as not duplicates out of current and future searches, and the Duplicate Report email shows the matches found along with Suggestions, such as trying Auto Merge.

Frequently Asked Questions About Recurring Duplicates

Why do duplicates keep coming back after a CRM cleanup?

Duplicates keep coming back because a cleanup merges the duplicates that exist but doesn't change how new records get in. Every form, import, integration and sync that created the first set keeps running afterward. If a form checks only email address, the next person who signs up with a personal email instead of a work email becomes a new contact. If two synced systems match records differently, a record merged on one side can be created again from the other. Data decay adds more, as people change jobs and come back with new details. The fix has two parts: change the sources you control, and run deduplication on an ongoing basis for the rest. In Dedupely, Auto Match and Auto Merge keep a trusted Duplicate Search running, and new records are detected within 1–5 minutes. With an active HubSpot–Salesforce integration, Dedupely merges the duplicates in both CRMs at once, so the two stay in sync.

Which integrations create the most duplicate records in a CRM?

The integrations that create the most duplicates are often the ones that add records without checking for an existing one on more than one field. These include form tools, event and webinar platforms, enrichment and prospecting tools, outbound sales tools and syncs with other systems. Each one decides on its own whether a record already exists, often by email address alone, so a person with a second email or a typo becomes a new record. Two-way syncs add a second risk: when the two systems match records differently, each can create records the other then sends back. Which integration adds the most varies from one CRM to the next, so the reliable answer comes from your own data: compare the sources of the records in recent duplicate sets. In Dedupely, new records from every connected CRM are detected within 1–5 minutes, and Auto Merge can run as soon as possible on a trusted Duplicate Search, so the duplicates an integration creates are merged soon after they arrive.

How do you find the source of recurring duplicates?

Find the source by looking at how the records in recent duplicate sets were created. For each set, compare the creation date, the source field, the record owner and any form or integration named on the record. When most new duplicates share one of those, such as the same form or the same import date, that's the source to fix first. It also helps to look at which field differs between the records: a different email often points to forms or data decay, a different name format to an import, and records created minutes apart to an integration or sync. A sample from the last few weeks, rather than the whole history, shows what's creating duplicates now. In Dedupely, Merge History shows each merge with every original record and its field values, and it can be downloaded as a CSV, so the sources of merged records can be compared side by side. Synced custom fields can be used in filters, so a Duplicate Search can focus on the records from one source.

Why do rejected matches come back in a duplicate search?

Rejected matches come back when the tool doesn't store the decision, so every new scan compares the same records and flags them again. Two records that look alike but describe different people, such as two J. Smiths at different companies, will match on every run unless the rejection is kept. A stored rejection is the reliable fix, because it applies to that set in every future scan without changing either record. If one search keeps producing the same kind of false match, such as pairs that share only a name, it also helps to tighten the rule, for example by adding a company or email field. In Dedupely, rejected matches don't come back: rejecting a match removes that duplicate set from current and future Duplicate Searches. A set returns only if someone restores it with "Remove from Rejected." Matches in Dedupely Intelligence, Dedupely's AI duplicate matching, can be rejected and restored the same way.

How do you stop recurring duplicates in a CRM?

Stop recurring duplicates by fixing the sources that create them and deduplicating on an ongoing basis for what still gets through. First, trace recent duplicates to their source and change what you control: set forms to update existing records, map imports to a unique ID or email, align matching between synced systems, and ask reps to search before adding a record. Then run your most reliable duplicate checks on a schedule or as records arrive, whether the CRM is HubSpot, Salesforce, Pipedrive or another, so new duplicates are merged while they're still few. Some causes, like personal emails and data decay, can't be fixed at the source, which is why the ongoing checks matter. In Dedupely, Auto Match notifies you when new matches reach a count you set, and Auto Merge merges new duplicates on a schedule or as soon as possible, skipping matches excluded by Safety Settings. The Duplicate Report email adds Suggestions, such as trying Auto Merge.

Skip to content