---
title: "Case Study: The Triple-Lock Engine That Solved Incentivesmart's Cross-Regional Duplicate Problem"
description: "How CXChronicles built a custom \"Triple-Lock\" deduplication engine in HubSpot that resolved about 70% of Incentivesmart's duplicate company records on its first run."
---

[Skip to content](https://www.cxchronicles.com/blog/case-study-the-triple-lock-engine-that-solved-incentivesmarts-cross-regional-duplicate-problem#main)

[![CXChronicles home](https://www.cxchronicles.com/hs-fs/hubfs/%5BBRANDING%5D/Updated%20CXC%20Logo%202021.jpg?width=500&name=Updated%20CXC%20Logo%202021.jpg)](https://www.cxchronicles.com/)

[Services](https://www.cxchronicles.com/services/)

[Partners](https://www.cxchronicles.com/partners/)

- [Strategic partner networkVetted CX and RevOps tools, preferred pricing](https://www.cxchronicles.com/partners/)
- [HubSpot Solutions PartnerImplementation, onboarding and migration](https://www.cxchronicles.com/partners/hubspot/)

[Podcast](https://www.cxchronicles.com/podcast/)

- [The CXChronicles PodcastEpisodes, rankings and how to listen](https://www.cxchronicles.com/podcast/)
- [Content bundles and sponsorshipFeatured episodes for your brand](https://www.cxchronicles.com/podcast-content/)

[Events](https://www.cxchronicles.com/events/)

[Insights](https://www.cxchronicles.com/insights/)

- [BlogArticles and guides from CX leaders](https://www.cxchronicles.com/insights/)
- [Case studiesResults from our clients](https://www.cxchronicles.com/case-studies/)
- [The Four CX Pillars bookAdrian's playbook for growing with CX](https://www.cxchronicles.com/the-four-cx-pillars/)

[About](https://www.cxchronicles.com/about/) [Book a consultation](https://www.cxchronicles.com/contact-us/) 

Menu

- [Services](https://www.cxchronicles.com/services/)
- [Partners](https://www.cxchronicles.com/partners/)
- [HubSpot Solutions Partner](https://www.cxchronicles.com/partners/hubspot/)
- [Podcast](https://www.cxchronicles.com/podcast/)
- [Content bundles and sponsorship](https://www.cxchronicles.com/podcast-content/)
- [Events](https://www.cxchronicles.com/events/)
- [Insights](https://www.cxchronicles.com/insights/)
- [Case studies](https://www.cxchronicles.com/case-studies/)
- [The Four CX Pillars book](https://www.cxchronicles.com/the-four-cx-pillars/)
- [About](https://www.cxchronicles.com/about/)
- [Book a consultation](https://www.cxchronicles.com/contact-us/)

[Insights](https://www.cxchronicles.com/insights/)

# Case Study: The Triple-Lock Engine That Solved Incentivesmart's Cross-Regional Duplicate Problem

By **Maria Fleissig** November 12, 2026

[AI in CX](https://www.cxchronicles.com/blog/tag/ai-in-cx)[Case study](https://www.cxchronicles.com/blog/tag/case-study)[Tools](https://www.cxchronicles.com/blog/tag/tools)

Data duplication is a profit killer. For [Incentivesmart](https://www.incentivesmart.com/), a provider of employee engagement and customer loyalty software, it grew into an operational crisis. As the business scaled its outbound efforts, integrations like Lusha and data imports began flooding HubSpot with records. With no strict guardrails in place, small variations in domains and formats triggered a chain reaction.

The biggest bottleneck was a common cross-regional domain mismatch. A company would be created with its .com corporate domain, but when contacts from the same company arrived from a .co.uk address, HubSpot treated them as a separate company. The result was a fractured database: reps had to check several records to verify communication, colleagues stepped on each other's toes because of disjointed ownership, and leadership lost a single view of account health.

Incentivesmart didn't have the resources to clean thousands of records by hand. Marketplace deduplication apps were ruled out too, because their surface-level matching rules didn't account for country suffixes and cross-regional domain differences.

## The strategy

CXChronicles set a clear objective: build an automation that stays native to HubSpot workflows, avoids marketplace integrations and adapts to real-world customer data.

The core challenge was risk tolerance. Automated merges are traditionally seen as high-risk, because a single error can permanently overwrite sales data, timeline activity or deal associations.

To build confidence, we designed a "Triple-Lock" validation framework. Instead of routing every possible duplicate to a human review queue, which would create a backlog and slow sales down, we showed that a highly restrictive threshold could reduce false positives to a manageable level. By requiring domain, name and metadata to match at the same time, we earned leadership's approval to automate the merges.

## The solution

CXChronicles built a serverless JavaScript engine using HubSpot custom-code workflow steps, the HubSpot API and the language capabilities of Breeze AI. It runs automatically whenever a company is created or its key properties change, in five stages.

1. **Data normalization.** The engine cleans company data to remove formatting differences: it strips http, https and www, converts everything to lowercase, and removes legal suffixes (Ltd, LLC, Inc, Plc, GmbH) and country markers (UK, IE, USA). "Incentivesmart Ltd" and "Incentivesmart (UK)" become identical.
2. **Domain root extraction.** To bridge the .com and .co.uk split, domains are reduced to their root using a list of multi-part top-level domains, so regional variations map back to one parent company.
3. **Multi-angle candidate search.** The engine searches the CRM from four angles (exact domain, normalized name, LinkedIn handle and LinkedIn company page) to build a pool of possible matches.
4. **Match scoring.** It removes the record being checked from the pool, then applies a weighted score. Domain and name matches score highest; matching postcodes or LinkedIn data add secondary confidence.
5. **The Triple-Lock gate.** A merge only happens if the top candidate passes all three checks: domain match, company name match and at least one secondary signal (postcode, LinkedIn handle or LinkedIn page). If it passes, the engine calls HubSpot's merge endpoint and folds the duplicate into the primary record. If not, the workflow exits safely.

**The flow at a glance:** company created or updated → normalize data → search candidates → score matches → Triple-Lock gate → automatic merge, or safe exit.

## The impact

- **About 70% of duplicates resolved on day one.** On its first run against historical records, the engine merged nearly 70% of existing duplicate companies.
- **No extra licence costs.** The custom build avoided third-party app subscriptions and thousands of pounds in manual clean-up.
- **Data the sales team trusts.** New duplicates are caught and resolved within about three seconds of arriving, so reps no longer have to verify records by hand.
- **Cleaner attribution and reporting.** Timeline activity, emails and deals are unified onto one record per company, ending ownership conflicts and restoring pipeline accuracy.

## A reusable asset

Because the logic relies on universal B2B identifiers rather than client-specific data, CXChronicles can package the engine as a plug-and-play deployment for other HubSpot clients, giving scaling teams a repeatable way to solve multi-hub duplication and protect CRM integrity.

## Worth knowing

However sophisticated, automation is still bound by the basics of database hygiene. It can't match what isn't there: if key fields are blank or corrupted during an import, the engine won't trigger a match. Good results depend on a baseline of decent data coming in, which is why platform governance is an ongoing practice, not a one-time deployment.

## Dealing with duplicates or messy CRM data?

See more [CXChronicles case studies](https://www.cxchronicles.com/case-studies/), learn about our [HubSpot implementation and optimization services](https://www.cxchronicles.com/partners/hubspot/), or [book a consultation](https://www.cxchronicles.com/contact-us/).

## Want help putting this into practice?

A 30-minute conversation, no obligation. We'll tell you where we'd start.

[Book a consultation](https://www.cxchronicles.com/contact-us/)

[← Back to all insights](https://www.cxchronicles.com/insights/)

## Get CXC Weekly

Join 15,000+ customer-focused leaders who get our weekly roundup of new episodes, insights and events.

[![CXChronicles home](https://www.cxchronicles.com/hs-fs/hubfs/%5BBRANDING%5D/Updated%20CXC%20Logo%202021.jpg?width=360&name=Updated%20CXC%20Logo%202021.jpg)](https://www.cxchronicles.com/)

Make happiness a habit.

[hello@cxchronicles.com](mailto:hello@cxchronicles.com)

#### Services

- [Managed services](https://www.cxchronicles.com/services/)
- [Strategic partners](https://www.cxchronicles.com/partners/)
- [HubSpot implementation](https://www.cxchronicles.com/partners/hubspot/)
- [Case studies](https://www.cxchronicles.com/case-studies/)

#### Content

- [Podcast](https://www.cxchronicles.com/podcast/)
- [Content bundles](https://www.cxchronicles.com/podcast-content/)
- [Live events](https://www.cxchronicles.com/events/)
- [Insights](https://www.cxchronicles.com/insights/)
- [The Four CX Pillars book](https://www.cxchronicles.com/the-four-cx-pillars/)

#### Company

- [About](https://www.cxchronicles.com/about/)
- [Contact](https://www.cxchronicles.com/contact-us/)

© 2026 CXChronicles. All rights reserved.[Privacy and cookie policy](https://www.cxchronicles.com/privacy-policy/)

Cookie settings

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Maria Fleissig",
    "url" : "https://www.cxchronicles.com/blog/author/maria-fleissig"
  },
  "dateModified" : "2026-11-12T13:07:18.810Z",
  "datePublished" : "2026-11-12T13:07:18.000Z",
  "headline" : "Case Study: The Triple-Lock Engine That Solved Incentivesmart's Cross-Regional Duplicate Problem",
  "mainEntityOfPage" : {
    "@id" : "https://www.cxchronicles.com/blog/case-study-the-triple-lock-engine-that-solved-incentivesmarts-cross-regional-duplicate-problem",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://www.cxchronicles.com/hubfs/Copy%20of%20Frame%2035882%20(1).png"
    },
    "name" : "CXChronicles"
  }
}
```