---
title: How Reaching 8 Merged 60,000 Duplicate Companies for a SaaS Company in HubSpot
description: Kaz from Reaching 8 shares how he merged 60,000 duplicate HubSpot companies for a SaaS client, and why domain matching broke after an acquisition.
image: https://koalify.io/hubfs/How%20I%20Fixed%20Your%20Data%20-%20Kazim%20Yukruk.jpg
---

[Skip to content](https://koalify.io/blog/how-reaching-8-merged-60000-duplicate-companies-for-a-saas-company-in-hubspot#main-content)

[![rectangle\_long\_koala\_with\_name\_bold\_200\_125\_white](https://koalify.io/hubfs/rectangle_long_koala_with_name_bold_200_125_white.png)](https://koalify.io)

- Products
  
  Show submenu for Products 
  
    - [Deduplication](https://koalify.io)
    - [Email Validation](https://koalify.io/hubspot-email-validation)
- Pricing
  
  Show submenu for Pricing 
  
    - [Deduplication](https://koalify.io/pricing)
    - [Email Validation](https://koalify.io/hubspot-email-validation-pricing-koalify)
- [Partners](https://koalify.io/partners)
- [Blog](https://koalify.io/blog)
- Knowledge base
  
  Show submenu for Knowledge base 
  
    - [Deduplication](https://koalify.io/knowledge-base)
    - [Email Validation](https://koalify.io/email-validation-knowledge-base)

- Products
  
  Show submenu for Products 
  
    - [Deduplication](https://koalify.io)
    - [Email Validation](https://koalify.io/hubspot-email-validation)
- Pricing
  
  Show submenu for Pricing 
  
    - [Deduplication](https://koalify.io/pricing)
    - [Email Validation](https://koalify.io/hubspot-email-validation-pricing-koalify)
- [Partners](https://koalify.io/partners)
- [Blog](https://koalify.io/blog)
- Knowledge base
  
  Show submenu for Knowledge base 
  
    - [Deduplication](https://koalify.io/knowledge-base)
    - [Email Validation](https://koalify.io/email-validation-knowledge-base)

![menu-toggle](https://21645388.fs1.hubspotusercontent-na1.net/hubfs/21645388/menu-toggle.svg)

![menu-close](https://21645388.fs1.hubspotusercontent-na1.net/hubfs/21645388/menu-close.svg)

[Get Started Free](https://api.koalify.io/hubspot/install?utm_source=koalify&utm_medium=website&utm_campaign=navigation)

[HubSpot Data Quality](https://koalify.io/blog/tag/hubspot-data-quality), [HubSpot Deduplication](https://koalify.io/blog/tag/hubspot-deduplication)

# How Reaching 8 Merged 60,000 Duplicate Companies for a SaaS Company in HubSpot

[By \- Jonas,](https://koalify.io/blog/author/jonas)  Nov 05, 2026

![ Featured Image](https://koalify.io/hs-fs/hubfs/How%20I%20Fixed%20Your%20Data%20-%20Kazim%20Yukruk.jpg?width=3844&height=2160&name=How%20I%20Fixed%20Your%20Data%20-%20Kazim%20Yukruk.jpg)

When Kaz, founder of RevOps consultancy Reaching 8 and partner at Domestique, starts a new client engagement, the brief is almost never about duplicates. It's lifecycle stages. Lead scoring. Marketing attribution. A RevOps audit.

But in nearly every engagement, the same thing happens. Somewhere in the first few weeks, the duplicates surface, and it becomes clear that the work he was hired to do won't be reliable until they're dealt with. "In almost every scenario, there is some sort of data hygiene issue as it relates to duplicate contacts and companies," Kaz said. He has now rolled out Koalify for six or seven clients.

This client was a SaaS company selling mainly to US SaaS businesses. Kaz was brought in through Domestique to rebuild their lifecycle stages and fix their marketing attribution. The client wanted to know which channels were actually creating contacts, so they could decide where an extra marketing budget should go. That question can't be answered when the same company exists three times in your CRM.

Then, partway through the relationship, the client was acquired. Their company count jumped from 80,000 to almost 900,000, and matching companies on domain alone stopped working.

🎥 **Watch the full episode below:**

 

<iframe class="hs-responsive-embed-iframe hs-fullwidth-embed" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;" xml="lang" src="https://www.youtube.com/embed/rOJLJQG-FBk" width="560" height="315" frameborder="0" allowfullscreen data-service="youtube"></iframe>

 

## The problem: two reps selling to the same company

Duplicates distort reporting, but that wasn't the cost Kaz worried about most. The bigger problem was territory assignment and lead routing.

When the same company exists twice, say once per office or once per import, it can end up with two owners. Two reps then work two different teams inside what is really one account, often pitching the same product to the same buying group without knowing about each other. For a product that sells best across a whole organisation, that splits the deal before it starts.

The duplicates came from familiar places: manual imports after events, purchased lists, and above all Apollo. The way Apollo had been set up and used was creating duplicate records continuously. "It was just creating so many duplicates in the system," Kaz said.

The first signal was HubSpot's own duplicate management tool. Kaz checks it at the start of every engagement as part of a mini audit. It doesn't give you an exact count, but it shows you quickly how big the problem is. Once he knows that, the question for the client becomes simple: review thousands of pairs by hand, or set up a systematic approach with rules you control.

His version of the manual option: buy a junior team member pizza and have them click "review" one pair at a time. This client called the systematic approach "a no-brainer".

![Prospect asking a sales rep whether they already spoke with a colleague, caused by duplicate company records in HubSpot](https://koalify.io/hs-fs/hubfs/ARE%20YOU%20SURE%20YOU%20SPOKE%20WITH%20MY%20COLLEAGUE%20LAST%20WEEK.jpg?width=602&height=414&name=ARE%20YOU%20SURE%20YOU%20SPOKE%20WITH%20MY%20COLLEAGUE%20LAST%20WEEK.jpg)

 

## Phase 1: a bulk cleanup with rules vetted before anything merged

### Start with the default rules, then tighten them

Koalify installs with a set of out-of-the-box duplicate rules, fuzzy rules and primary rules. Kaz finds they're good enough that many portals could run on them unchanged. For larger databases, though, he customises them every time.

For contacts, the core rule was an exact email match. Fuzzy matching on first name, last name and company name was added on top, with one important condition: each property has to be known. "If the property isn't known, you might be matching someone's first name only, because the last name is not known."

For companies, the main rule was an exact match on company name and domain. Further rules combined company name with phone number, city, street address and LinkedIn URL. Because the client sold to US SaaS businesses, these rules could be fairly relaxed.

Kaz is clear that this doesn't apply everywhere. If your client works in hospitality, one domain can cover hundreds of hotels in dozens of countries. Matching on domain there would merge separate branches that you need to keep apart.

![Koalify duplicate rule matching HubSpot companies on an exact domain and country code (DKBC) property](https://koalify.io/hs-fs/hubfs/Koalify%20Duplicate%20Rules%20for%20DKBC.png?width=800&height=600&name=Koalify%20Duplicate%20Rules%20for%20DKBC.png)

### Vet the matches in a segment before you merge

Before anything merged, Kaz checked the results himself. Clicking the duplicate count for a rule in Koalify opens a HubSpot segment of every matched record. He adds the Koalify properties as columns, sorts by the identified primary record ID, and reads through the pairs: this one is the primary, this one merges into it. Does he agree?

Only after that does he run spot tests on a batch of 50 contacts or companies, and then go live. He calls it the quickest way to test your logic, and says everyone should do it.

### Run the merges through workflows

For the merges, Kaz uses the workflows Koalify creates automatically when you install it. He selects the rule he wants to run in the company or contact workflow, adds a delay if needed, and adds a notification so the team knows a merge happened and which rule triggered it.

Every merged record also gets an app event on its HubSpot timeline. It records how the record was merged and by which rule, and you can **unmerge** from that event. Kaz sees it as cover for the 1% of cases where even well-tested logic gets it wrong.

![HubSpot company workflow using the Koalify merge action to merge duplicate companies with the DKBC rule](https://koalify.io/hs-fs/hubfs/DKBC%20Workflow.png?width=800&height=615&name=DKBC%20Workflow.png)

## Phase 2: when domain matching stops working

After the acquisition, the client had to import a large set of company records into HubSpot. Company records went from 80,000 to almost 900,000. At that scale, and with that many international entities, domain alone could no longer identify a company.

So Kaz switched off HubSpot's native contact-to-company association and replaced it with a **DKBC key**: domain plus country code. The client has Data Hub Professional, so a custom-coded workflow runs every time a contact is created:

- If exactly one company matches the contact's DKBC key, the contact is associated with that company.
- If no company matches, a new company is created and the contact is associated with it.
- If more than one company matches, the workflow fails on purpose and sends a Slack notification to the operations team.

That third outcome soon turned up around 3,000 duplicate companies sharing a DKBC key. By the time we recorded, the number had grown to 5,500. Duplicates like these will keep appearing, so the client reactivated Koalify, this time as an ongoing safeguard rather than a one-off cleanup.

The new setup replaces the original company rules with a single exact-match rule on the DKBC property. Kaz is also adding an exclusion. Many imported companies carry an account ID from the acquiring company's own CRM, and two records with different account IDs must never merge. Koalify's duplicate rules can include a filter that blocks a match whenever those IDs differ, so the process skips those records instead of merging them. Kaz expects roughly 500 of the 5,500 to need a closer manual look.

![HubSpot custom coded workflow action that associates new contacts with companies by domain and country code](https://koalify.io/hs-fs/hubfs/Custom%20Coded%20Workflow%20Action.png?width=800&height=611&name=Custom%20Coded%20Workflow%20Action.png)

 

## Results: 120,000 companies down to 60,000

The first bulk cleanup roughly halved the company database, from about 120,000 records to around 60,000. Contacts went from about 300,000 to around 200,000.

The effort was small. Setting up the rules, testing them and walking the client through the logic took Kaz two to three hours. Once the workflows were switched on, the backlog cleared within about 24 hours. Koalify processes around 2,000 merges per hour within HubSpot's API rate limits. After the backlog is cleared, new duplicates are detected almost instantly and merged within minutes.

The bigger result is the one Kaz was hired for. Attribution reports and lifecycle stages that rest on one record per company and one record per person, and reps who aren't unknowingly working the same account.

## Lessons from Kaz's approach

### Spend your time on primary rules, not duplicate rules

"The duplicate rules, it's hard to go wrong there," Kaz said. The primary rules decide which record survives a merge, and he recommends spending at least a few hours testing different scenarios before relying on them. The default primary rules focus on standard email properties that every portal uses. Most of the real work is deciding which properties should determine the primary for your portal, and in what order. Setting them up in Koalify then takes a few minutes.

### Use merge rules as your safety net

By default, a merge keeps the primary record's property values. Merge rules let you override that for specific properties. Kaz ran into a case where the secondary record had a higher lifecycle stage than the primary, and the higher value had to survive the merge. Within a week or two of his request, Koalify shipped a merge rule that keeps the highest value of a property. "It absolutely saved a client," he said.

![Koalify merge rule that keeps the highest lead status value when merging duplicate HubSpot records](https://koalify.io/hs-fs/hubfs/Merge%20rule%20for%20Lead%20Status%20V2.png?width=1097&height=813&name=Merge%20rule%20for%20Lead%20Status%20V2.png)

### Expect your matching logic to change as the business changes

Rules that worked well for a SaaS company with 80,000 companies stopped working after an acquisition. Deduplication isn't something you set up once. Every acquisition, new integration or large import changes what a duplicate looks like in your portal.

### Plan for the 1%

No set of rules is perfect, and Kaz doesn't aim for perfect. He aims for 99.9%, so the process can run in the background indefinitely, with the unmerge option covering the rest.

 

## FAQ

### How do you find duplicate companies in HubSpot?

HubSpot's duplicate management tool in Data Hub gives you a quick sense of how many duplicates you have, but every pair has to be reviewed by hand. For larger portals, set up matching rules on domain, company name, phone or address, check the matches in a segment, and then merge them automatically with a workflow.

### Why isn't domain matching enough to deduplicate companies?

A single domain can belong to many legitimate company records: regional offices, franchises or hotel branches. Combining domain with country code, or excluding records with different external account IDs, stops you from merging companies that should stay separate.

### How long does it take to merge 60,000 duplicate companies in HubSpot?

For Kaz, setting up and testing the rules took two to three hours, and the merges finished within about 24 hours. Koalify processes around 2,000 merges per hour within HubSpot's API limits.

### Can you undo a merge in HubSpot?

HubSpot's native merge can't be undone. Merges run through Koalify add an app event to the record's timeline, and you can unmerge the record from there.

 

Reaching 8 is a revenue operations consultancy based in Dubai, and Kaz partners with Domestique on client engagements. If your portal keeps filling up with duplicates from enrichment tools, imports or acquisitions, you can [install Koalify for free and test your rules on your own data](https://api.koalify.io/hubspot/install?utm_source=koalify&utm_medium=blog&utm_campaign=how-i-fixed-your-data) before you pay. If you're a HubSpot Solution Partner, the [Koalify partner programme](https://koalify.io/partners) covers all object types and includes a free partner account.

Related reading: [how to merge companies in HubSpot safely](https://koalify.io/blog/how-to-merge-companies-in-hubspot-manual-or-in-bulk), [how to create custom merge rules](https://koalify.io/knowledge-base/how-to-create-custom-merge-rules-in-hubspot-with-koalify), and [how Fathom AI merged 13,000 duplicate companies in 3 hours](https://koalify.io/blog/fathom-ai-hubspot-duplicate-company-case-study).

###### Category

- [HubSpot Data Quality](https://koalify.io/blog/tag/hubspot-data-quality)
- [HubSpot Email Validation](https://koalify.io/blog/tag/hubspot-email-validation)
- [HubSpot Integration Duplicates](https://koalify.io/blog/tag/hubspot-integration-duplicates)
- [HubSpot Revenue Operations](https://koalify.io/blog/tag/hubspot-revenue-operations)
- [HubSpot Deduplication](https://koalify.io/blog/tag/hubspot-deduplication)
- [HubSpot Associations](https://koalify.io/blog/tag/hubspot-associations)

###### Popular Post

- [HubSpot best practices for contacts that leave a company](https://koalify.io/blog/hubspot-best-practices-for-contacts-that-leave-a-company)
- [How to Bulk Merge HubSpot Duplicates: Contacts, Companies, Deals and More](https://koalify.io/blog/how-to-bulk-merge-hubspot-duplicates-contacts-companies-more)
- [How to Merge Companies in HubSpot (Safely, Manually or in Bulk)](https://koalify.io/blog/how-to-merge-companies-in-hubspot-manual-or-in-bulk)
- [HubSpot Deduplication: How to Find, Manage, and Remove Duplicates in HubSpot](https://koalify.io/blog/hubspot-deduplication-the-ultimate-guide-to-zero-duplicates-in-hubspot)
- [How to Merge Duplicate Contacts in HubSpot Without Losing Data](https://koalify.io/blog/how-to-merge-contacts-in-hubspot-manual-or-in-bulk)

### Similar Blogs

![How Jasper Meurs Fixed Duplicate HubSpot Companies in Higher Education (with Koalify)](https://koalify.io/hs-fs/hubfs/How%20Jasper%20Meurs%20Fixed%20Duplicate%20HubSpot%20Companies%20in%20Higher%20Education%20%28with%20Koalify%29.png?width=352&name=How%20Jasper%20Meurs%20Fixed%20Duplicate%20HubSpot%20Companies%20in%20Higher%20Education%20%28with%20Koalify%29.png)

#### [How Jasper Meurs Fixed Duplicate HubSpot Companies in Higher Education (with Koalify)](https://koalify.io/blog/how-jasper-meurs-fixed-duplicate-hubspot-companies-in-higher-education-with-koalify)

By [Jonas](https://koalify.io/blog/author/jonas) 7 October 2025

In higher education, subdomains are everywhere:`math.university.edu`, `engineering.university.edu`, `...`

[READ MORE](https://koalify.io/blog/how-jasper-meurs-fixed-duplicate-hubspot-companies-in-higher-education-with-koalify)

![How to Create Sibling Company Associations in HubSpot](https://koalify.io/hs-fs/hubfs/Create%20a%20workflow%20to%20set%20the%20sibling%20association.png?width=352&name=Create%20a%20workflow%20to%20set%20the%20sibling%20association.png)

#### [How to Create Sibling Company Associations in HubSpot](https://koalify.io/blog/hubspot-sibling-company-associations)

By [Jonas](https://koalify.io/blog/author/jonas) 16 March 2026

HubSpot users often model company hierarchies with parent-child relationships. That works well when...

[READ MORE](https://koalify.io/blog/hubspot-sibling-company-associations)

![How Fathom AI Merged 13,000 Duplicate Companies in HubSpot in 3 Hours](https://koalify.io/hs-fs/hubfs/How%20Fathom%20AI%20Merged%2013%2c000%20Duplicate%20Companies%20in%20HubSpot%20in%203%20Hours%20V2.png?width=352&name=How%20Fathom%20AI%20Merged%2013%2c000%20Duplicate%20Companies%20in%20HubSpot%20in%203%20Hours%20V2.png)

#### [How Fathom AI Merged 13,000 Duplicate Companies in HubSpot in 3 Hours](https://koalify.io/blog/fathom-ai-hubspot-duplicate-company-case-study)

By [Jonas](https://koalify.io/blog/author/jonas) 17 February 2026

When CRM data gets messy, teams usually learn to live with it.

[READ MORE](https://koalify.io/blog/fathom-ai-hubspot-duplicate-company-case-study)

## Koalify

HubSpot deduplication & email validation

- <https://www.linkedin.com/company/koalify-io>
- <https://www.youtube.com/@Koalify_io>

[Review Koalify in the HubSpot Marketplace](https://app-eu1.hubspot.com/l/marketplace/listing/koalify-io/write-review?eco_review_source=external-button)

[![SOC 2 Logo](https://koalify.io/hs-fs/hubfs/SOC%202%20Logo.webp?width=70&height=70&name=SOC%202%20Logo.webp "SOC 2 Logo")](https://trust.koalify.io/)

[![gdpr](https://koalify.io/hs-fs/hubfs/gdpr.png?width=70&height=70&name=gdpr.png "gdpr")](https://trust.koalify.io/)

## Deduplication

[Deduplication for HubSpot](https://koalify.io)

[Pricing](https://koalify.io/pricing)

[Knowledge Base](https://koalify.io/knowledge-base)

[Terms of Service](https://koalify.io/terms-of-service)

[Data Processing Addendum](https://koalify.io/data-processing-addendum)

[HubSpot Deduplication Tools](https://koalify.io/best-hubspot-deduplication-apps)

[vs. HubSpot Native](https://koalify.io/compare/koalify-vs-hubspot-native-deduplication)

[vs. Insycle](https://koalify.io/compare/koalify-vs-insycle-hubspot-deduplication)

[vs. Dedupely](https://koalify.io/compare/koalify-vs-dedupely)

[HubSpot Deduplication Guide](https://koalify.io/blog/hubspot-deduplication-the-ultimate-guide-to-zero-duplicates-in-hubspot)

[Merge HubSpot Contacts](https://koalify.io/blog/how-to-merge-contacts-in-hubspot-manual-or-in-bulk)

[Merge HubSpot Companies](https://koalify.io/blog/how-to-merge-companies-in-hubspot-manual-or-in-bulk)

[Merge HubSpot Deals](https://koalify.io/blog/how-to-merge-deals-in-hubspot-manual-or-in-bulk)

[Bulk Merge HubSpot](https://koalify.io/blog/how-to-bulk-merge-hubspot-duplicates-contacts-companies-more)

## Email Validation

[Email Validation for HubSpot](https://koalify.io/hubspot-email-validation)

[Pricing](https://koalify.io/hubspot-email-validation-pricing-koalify)

[Knowledge Base](https://koalify.io/email-validation-knowledge-base)

[Terms of Service](https://koalify.io/terms-of-service-email-validation)

[Data Processing Addendum](https://koalify.io/data-processing-addendum-email-validation)

[HubSpot Email Validation Tools](https://koalify.io/best-email-validation-tools-for-hubspot)

[vs. NeverBounce](https://koalify.io/compare/koalify-vs-neverbounce)

[vs. ZeroBounce](https://koalify.io/compare/koalify-vs-zerobounce)

[vs. Kickbox](https://koalify.io/compare/koalify-vs-kickbox)

[HubSpot Email Validation Guide](https://koalify.io/hubspot-email-validation-guide)

[HubSpot Email Deliverability](https://koalify.io/hubspot-email-deliverability)

[HubSpot Bounce Rate](https://koalify.io/hubspot-bounce-rate)

## Company

[Partners](https://koalify.io/partners)

[Blog](https://koalify.io/blog)

[Trust Center](https://trust.koalify.io/)

[Security](https://koalify.io/security)

© 2026 Koalify. All rights reserved.

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Jonas",
    "url" : "https://koalify.io/blog/author/jonas"
  },
  "dateModified" : "2026-11-05T11:27:21.375Z",
  "datePublished" : "2026-11-05T11:22:49.000Z",
  "headline" : "How Reaching 8 Merged 60,000 Duplicate Companies for a SaaS Company in HubSpot",
  "image" : [ "https://koalify.io/hubfs/How%20I%20Fixed%20Your%20Data%20-%20Kazim%20Yukruk.jpg" ],
  "mainEntityOfPage" : {
    "@id" : "https://koalify.io/blog/how-reaching-8-merged-60000-duplicate-companies-for-a-saas-company-in-hubspot",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://koalify.io/hubfs/koalify_rectangle_100px.png"
    },
    "name" : "Koalify"
  }
}
```