Illustration of two people wearing headsets on a video call, with the caption De-dupe your data

Why does data quality matter more than the sync itself? Because in a CRM and ERP integration, connecting the systems is the easy part. The hard part is data clarity: making sure the customers, companies and contacts flowing between them are accurate and unique. Sync messy data and you get thousands of duplicates, reps who don’t trust the CRM, and a system nobody relies on. Good CRM data quality is what makes the integration worth having.

At Cogent we connect operational tools such as ERP systems with customer-facing tools such as HubSpot, the CRM platform (our guide to HubSpot ERP integration covers the options). When data comes from several systems, things get messy fast. One project showed how much the right deduplication tool matters when the stakes are high and the datasets are large. Here is how we cleaned up tens of thousands of records using Koalify and set the client up to grow.

Why is clean data the hardest part of a CRM and ERP sync?

Clean data is the hardest part because each system records customers in its own way. When you consolidate them into HubSpot, shared mailboxes, inconsistent names, missing identifiers and companies listed under several variants all turn into duplicates. HubSpot can only merge what it can tell apart, so poor data quality in the source systems becomes poor data quality in the CRM.

The client had a typical but complex set of systems:

  • an ERP, OrderWise, they had used for years;
  • a CRM being retired (Freshsales and Freshdesk);
  • a new CRM, HubSpot, they were migrating into.

Each system spoke a different data dialect. As we consolidated them into HubSpot, the major problem was duplication. Examples included:

  • shared mailboxes used for several contacts;
  • inconsistent formats for contact and company names;
  • missing identifiers such as domains or phone numbers;
  • the same company listed under several variants.

When HubSpot sees two contacts with the same email, it merges them. When emails are shared or missing, HubSpot can’t tell the difference. The result was thousands of duplicate records, many of them invisible to users and hard to track manually. We cover the wider causes in how to fix duplicate data.

Why weren’t HubSpot’s native tools enough?

HubSpot’s Operations Hub was part of the solution, but it had limits for a job this size. It flagged data quality issues but couldn’t merge records based on several criteria at once, didn’t support custom, layered rules such as checking both company ID and postcode, and lacked the flexibility this integration needed. That is where Koalify came in.

What the project neededHubSpot Operations Hub
Flag data quality issuesYes
Merge records based on multiple criteriaNo
Custom, layered duplicate rules (for example company ID and postcode)No
Flexibility for a nuanced integrationNot enough

How do you deduplicate data before and after an ERP sync?

We deduplicated in three steps. First, enrich the records with ERP identifiers so there is something reliable to match on. Second, build custom duplicate rules for contacts and companies with the client’s input. Third, merge in bulk using HubSpot workflows, starting with the highest-certainty matches and keeping record ownership correct.

Step 1: enrich the data first

Before syncing, we enriched the dataset, especially the records from Freshsales, with OrderWise IDs, account numbers and other internal references. These became unique identifiers that Koalify could use to match records accurately.

Step 2: set custom duplicate rules

In Koalify we built several duplicate rules for contact and company records. The key rules were:

  • Company match by OrderWise ID and postcode.
  • Contact match by name, phone and internal account number.
  • Catch-all rules for post-import validation, using less precise criteria such as first name plus email domain.

Each rule was built with input from the client, so the matches were relevant rather than risky.

Step 3: bulk merge using workflows

Once we were confident in the matching logic, we built automated workflows in HubSpot that:

  • detected duplicates based on the Koalify rules;
  • merged high-certainty matches straight away;
  • kept ownership logic intact, assigning the correct rep when records merged.

One workflow, for example, merged company records using account number plus postcode, a match that is nearly bulletproof in the ERP world.

What did cleaning the data achieve?

Cleaning the data massively reduced duplicates across contacts and companies, gave reps a single source of truth they trusted, and ended the double-handling and misrouted deals that duplicates caused. It also gave the client visibility of new duplicates as they appear, which matters because the database keeps growing every week.

  • Duplicate count massively reduced across contacts and companies.
  • Reps able to trust and work from a single source of truth.
  • Better collaboration, with no more double-handling or misrouted deals.
  • Visibility of ongoing duplicate creation, which we continue to monitor.

With around 40,000 contacts and 10,000 companies in play, and more added weekly, ongoing control is essential. Koalify makes it easy to track duplicates as they happen and correct them with confidence.

What lessons apply to any CRM and ERP integration?

The main lesson is to think like a system architect. Bring legacy IDs into HubSpot, set unique properties before you sync, don’t rely on email alone, and show the client their data so they buy into the clean-up. These habits apply to any ERP sync, not just OrderWise.

  1. Always import legacy system IDs into HubSpot, even if you don’t think you’ll need them. You will.
  2. Set unique properties in HubSpot before you sync. They give you clean boundaries and audit control.
  3. Don’t rely on email alone, especially where shared inboxes are used.
  4. Show your clients the data. Koalify dashboards, such as the Supered Zero Duplicates template, make problem areas visible and win buy-in.

There is a big difference between syncing data and syncing clean data. Koalify gave us and our client a layer of trust that HubSpot alone couldn’t provide: it was easy to use, transparent on cost and powerful. If you are syncing an ERP with HubSpot and want to avoid hours of manual clean-up, or worse, a system nobody trusts, it is worth having from day one.

We built these lessons into our own OrderWise connector, OW Sync; read why HubSpot and OrderWise are worth integrating for more. If you are planning a migration or an integration, see our data migration and integrations services.

Questions people also ask

Why does HubSpot create duplicates when shared mailboxes are used?

HubSpot merges two contacts when they share the same email address. When several people use one shared mailbox, or the email is missing, HubSpot can't tell the contacts apart. In the project described here, that gap produced thousands of duplicate records, many of them invisible to users and hard to track down by hand.

What makes a good unique identifier for matching records?

An identifier that already exists in the ERP. In this project we added OrderWise IDs, account numbers and other internal references to the records before syncing, then matched on them. Account number plus postcode, for example, is a nearly bulletproof match for company records, and far more reliable than email alone.

Is deduplication a one-off job?

No. In this project around 40,000 contacts and 10,000 companies were in play, with more added every week, so duplicates keep appearing. Ongoing control matters as much as the first clean-up. Koalify lets us track duplicates as they are created and take corrective action, and we continue to monitor them for the client.

Should I clean my data before or after connecting HubSpot to my ERP?

Before, as far as possible. Enrich records with ERP identifiers, set unique properties in HubSpot and agree the matching rules before the sync runs, then use looser catch-all rules to validate after import. Skipping this risks hours of manual clean-up later or, worse, a system nobody trusts.