CRM & Data

Fixing duplicate records in HubSpot and Pipedrive

Fixing duplicates means matching rules, deliberate merge priority, and a check at entry that stops the next one being created.

Fixing duplicate records properly takes three things: real matching rules rather than a manual scroll, deliberate logic for which record survives a merge, and a check at the point of entry that stops the next duplicate forming. Skip the third and you will be back here in six months.

Duplicates are the most visible symptom of messy CRM data, and the most commonly mishandled, because most attempts focus on merging what already exists rather than stopping new ones being created.

Why are duplicates harder to fix than they look?

  1. The easy ones are a small fraction. Exact email matches are real duplicates and should be merged, and they are the smallest group. The harder ones need judgement: one person with a work email on one record and a personal email on another, one company under its trading name and its legal name, a contact who changed jobs and was created again instead of updated, a form fill with a slightly different name format.
  2. Associated records have to follow the merge. A duplicate contact may carry deals; a duplicate company may carry contacts and deals. Every deal, activity and company link has to end up on the surviving record. A merge that ignores them leaves orphaned deals, disconnected contacts and broken history.
  3. The cause keeps running. A form that creates a record without checking the email, an integration that syncs without a matching rule, an import nobody deduplicated, a rep who created rather than searched. Leave those in place and the duplicates come back.

Start with matching rules, not a manual scroll

Spotting duplicates by eye, scrolling a contact list for names that look similar, does not scale past a few hundred records. It also misses the less obvious cases: a company entered as "Acme Ltd" in one record and "Acme Limited" in another, or a contact with two slightly different email addresses across two records.

A proper approach uses matching rules. Exact matches on email address as a starting point, then fuzzy matching on company name and domain, to surface the genuine duplicates a manual scroll would miss entirely.

Merge logic has to decide which record wins

Once duplicates are identified, the harder question is which version of the data survives.

If one record has a complete set of fields and the other has more recent activity logged against it, the merge process needs a clear rule for which takes priority, not an arbitrary "keep whichever was created first". Getting this wrong quietly loses good data while fixing the duplicate problem, which is worse than leaving the duplicate in place.

A field-by-field approach works better than one blanket rule such as "keep the most recently updated record", because the newer record often has the worse data:

FieldA sensible survivorship rule
EmailKeep the business address as primary; keep the other as a secondary if your platform supports it
Phone, job titleKeep the most recently verified value, not simply the most recent edit
Company associationKeep the association with the most deals and activity behind it, and check the rest by hand
Lifecycle stageKeep the furthest stage the evidence supports, such as Customer where there is a won deal
OwnerKeep the active owner with the live relationship, never a leaver
Lead sourceKeep the earliest, so original attribution is not overwritten

Write the rules down and agree them before anything is merged.

The real fix happens at the entry point

Merging existing duplicates fixes what is already there. It does nothing to stop the next one forming the same way, usually because there is no check when a new contact or company is created that flags "this might already exist".

The effective fix adds that check at entry, so duplicate creation is caught before it happens rather than accumulating until the next clean-up project. This is the same reason data cleaning projects fail to stick: the clean-up treats the symptom and leaves the cause running.

How does HubSpot create duplicates?

  1. Automatic company creation. HubSpot can create and associate a company from a contact's email domain when no match exists. It skips common free email providers, but a group with several domains or subsidiaries can end up as several companies representing one business.
  2. Forms with a different email. HubSpot matches contacts on email address, so the same person submitting once with a work address and once with a personal one becomes two contacts.
  3. Integrations without matching rules. A connected marketing platform or other CRM that syncs without explicit matching creates a new contact whenever the email does not match exactly.
  4. Imports. Event lists, partner lists and data from a previous CRM usually overlap what is already there. Without deduplication before import, every partial match becomes a duplicate. Imports are often the largest single source.

How does Pipedrive create duplicates?

  1. Several reps creating the same person. Creating a record in Pipedrive is quick, so when searching first is not a habit, the rep who took the inbound call and the rep who found the company on LinkedIn each create the same prospect.
  2. People and organisations created separately. A person and an organisation created without being linked, then created again when the contact reappears, duplicates both.
  3. Imports. The same pattern as HubSpot: any overlap not caught before import becomes a duplicate.
  4. Duplicates found after the fact. Pipedrive can surface possible duplicates and merge them, but that happens after they exist; nothing in the standard workflow stops a rep creating a second record in the moment.

HubSpot and Pipedrive both have native tools

Both platforms offer built-in duplicate management. Used properly, with sensible matching rules configured rather than left on defaults, they catch a meaningful share automatically.

Used blindly, accepting every suggested merge without checking which record should win, they can just as easily merge two genuinely different companies that happen to share a similar name. The tool is not the fix on its own. The judgment behind how it is configured is.

What should a deduplication service cover?

  1. An audit before any merge. How many duplicate contacts, companies and deals, how many are exact matches and how many fuzzy, how many carry associated records, and where they are coming from. Scope is often underestimated: a business that thinks it has a few hundred duplicates frequently has thousands.
  2. Real matching rules, not just exact-match defaults.
  3. Written survivorship rules, field by field, agreed before anything merges.
  4. Associated record handling, so deals, activities and company links follow the surviving record.
  5. Merges in batches, with checks. A sample of each batch reviewed, and anything unexpected checked by hand before the next one runs.
  6. The causes fixed. Matching on forms, matching rules on integrations, deduplication before imports, and a check at the point of entry.
  7. Monitoring afterwards, so a new source creating duplicates is spotted early.

Skipping any of these means duplicates either keep reappearing or the clean-up itself quietly damages good data.

What types of provider fix duplicate records?

  1. Self-serve data management platforms. Fuzzy matching and configurable field-level merge rules across HubSpot and Pipedrive, for businesses with someone in-house to run them. No audit, root cause work or governance.
  2. Dedicated deduplication tools. Stronger than the native tools for complex near-duplicates, and similarly self-serve.
  3. The platforms' own tools. HubSpot's Data Hub duplicate management and Pipedrive's merge tools, a sound starting point for straightforward cases with someone to manage them.
  4. Freelance specialists. Fine for a one-off merge on a small, simple database; the causes and the monitoring are usually out of scope, so duplicates return.
  5. Data-first CRM consultancies. The full job: audit, rules, merges, causes and monitoring.

Where does Flowbird fit?

We are Flowbird, a UK HubSpot Solution Partner and Pipedrive Elite Partner, and we sit in the last group. A CRM & ERP Opportunity Audit measures duplicates by object, where they come from and how many carry deals and activity, before anything is scoped. CRM Data Cleaning then merges them under rules you approve, keeping a survivor record connected to every past activity, note and deal, and flags what it cannot resolve rather than guessing. We fix the causes it found, not a generic list, and our managed service keeps contact deduplication going so the rate stays low.

What should you ask a deduplication consultant?

  1. Do they start with an audit or a tool? Volume, sources and associated records come before tool choice.
  2. What are their survivorship rules? The answer should name fields and the logic for each, not "the newest record wins".
  3. How do they handle associated records? Merging contacts without a plan for their deals, activities and companies is a merge, not a deduplication.
  4. What changes afterwards to stop recurrence? If the merge is the end of the engagement, the cause is still running.

The pattern, in short

Fixing duplicates is not really about the merge. That part is mechanical once you know which records match. It is about deciding deliberately which data survives, and stopping the next duplicate before it is created.

The limit: some duplication is unavoidable, and chasing zero costs more than it saves. The target is a rate low enough not to distort your reporting.

What does fixing CRM duplicates cost?

It depends on how many duplicates there are, how many objects and associated records are involved, and how much needs changing at the sources. We quote every engagement individually once the audit has measured it.

The case is usually simple: every duplicate distorts a count, splits a history or doubles an email, and the cost of operating on that for another year is almost always larger than fixing it.

Duplicates piling up in HubSpot or Pipedrive again?

Get in touch. We will fix what is there and stop it happening again. No obligation, just a straight answer. That starts with CRM Data Cleaning.