💻 Tilores Studio is now available. Run entity resolution locally on your machine.Download free

← Back to Blog
Entity Resolution August 18, 2026 · 11 min read

7 Machine Learning Record Linkage Tools for CRM, Marketing and Support Data in 2026

Steven Renwick
Steven Renwick
CEO, Tilores
7 Machine Learning Record Linkage Tools for CRM, Marketing and Support Data in 2026

TL;DR: Deduplicating customer records that live across a CRM, a marketing platform, and a support tool needs matching software, not three separate exports and a spreadsheet. Seven tools cover that range in 2026: four open-source libraries built for a data team willing to run and tune the matching themselves, and three managed or commercial services for teams that need it running in production without maintaining the matching code.

Compare the shortlist against your own records. Discuss which tool fits with our team, or run the matching locally before committing to one. Book a Demo or Try Tilores Studio (Free).

On this page

  1. How these seven were selected
  2. 1. Python Record Linkage Toolkit: research-grade, small to medium files
  3. 2. Dedupe: active learning for a team without labelled training data
  4. 3. Splink: probabilistic linkage built for tens of millions of records
  5. 4. Zingg: Spark-native matching for data-lake-scale deduplication
  6. 5. AWS Entity Resolution: managed ML matching inside an existing AWS account
  7. 6. Tamr: AI-driven matching with an explicit real-time product tier
  8. 7. Tilores: real-time resolution across CRM, marketing and support at once
  9. How the seven compare

How these seven were selected

A CRM, a marketing platform, and a support tool almost never agree on which records describe the same customer. Each system generates its own ID, its own formatting, and its own version of a name or address, and a simple exact-match join across exports misses most of the overlap. Machine learning record linkage, comparing records with a trained or trainable model rather than a fixed rule, is what closes that gap.

The seven tools below were chosen to span the real range of that problem: four are open-source libraries a data team runs and tunes itself, one is a managed AWS service, and two are commercial platforms built for production use without a data science team maintaining the matching code. Each has a documented, verifiable matching technique. None here is excluded or included based on brand; the AWS Entity Resolution comparison-of-alternatives content elsewhere on this site tracks vendor-by-vendor detail, and this list stays focused on the specific CRM, marketing and support deduplication case.

1. Python Record Linkage Toolkit: research-grade, small to medium files

The Python Record Linkage Toolkit describes itself as “a library to link records in or between data sources,” providing “most of the tools needed for record linkage and deduplication.” It supports smart indexing methods including blocking and sorted neighbourhood indexing, “a large number of comparison and similarity measures for different types of variables such as strings, numbers and dates,” and classification approaches spanning supervised and unsupervised algorithms built on pandas.

Its own documentation is explicit about scope: “the package is developed for research and the linking of small or medium sized files.” For a one-off audit of a CRM export against a marketing list, that scope is exactly right. For a continuously updated pipeline resolving three live systems against each other, it is the wrong tool to reach for first.

A record linkage spectrum from one-off batch workshops through managed configurations to continuous CRM, marketing and support resolution

The real choice is operating model: a project run against a dataset, or a continuous state shared by systems that keep changing.

2. Dedupe: active learning for a team without labelled training data

Dedupe’s active learning model asks a human reviewer to label a small number of record pairs as match or non-match, then uses those labels to train a classifier that generalises to the rest of the dataset, which matters when a team has no existing labelled ground truth to start from, the usual state for a first CRM-plus-marketing deduplication project. It is a Python library, integrates cleanly into a batch script, and is well suited to a project run as a defined task rather than a standing service.

Like the Record Linkage Toolkit, it is built to be run and tuned by whoever owns the project, not deployed as infrastructure other systems query in real time.

Splink, built by the UK Ministry of Justice’s analytical services with initial funding from ADR UK, is “a Python package for probabilistic record linkage (entity resolution) that allows you to deduplicate and link records from datasets without unique identifiers.” Its matching is based on “Fellegi-Sunter’s model of record linkage, with various customizations to improve accuracy,” the same probabilistic foundation underlying decades of Census Bureau and national statistics record linkage work.

Splink is explicitly engineered for scale rather than real-time use: capable of “linking a million records on a laptop in approximately one minute,” and able to “execute linkage jobs in Python (using DuckDB) or big-data backends like AWS Athena or Spark for 100+ million records.” For a large one-off consolidation of historical CRM, marketing and support exports, that scale is the whole appeal. It is a batch tool by design, run as a job rather than queried live.

4. Zingg: Spark-native matching for data-lake-scale deduplication

Zingg describes itself as “an ML based tool for master data management and entity resolution,” addressing the same underlying problem: “real world data contains multiple records belonging to the same customer” across one or many systems. It learns through active learning, building “models on frugally small training samples to high accuracy,” and separates the problem into a blocking or clustering model and a similarity classifier, with an “auto learning blocking model to scale entity resolution to millions of records.”

It runs on Spark and is oriented toward data warehouse and data lake architectures, matched by its own performance testing against multi-million-record datasets. For a team already running its CRM, marketing and support data through a Spark pipeline, Zingg fits that existing infrastructure directly. It is, again, a batch-oriented tool: matching runs as a job phase, not a live lookup.

5. AWS Entity Resolution: managed ML matching inside an existing AWS account

AWS Entity Resolution offers three matching techniques directly: “rule-based matching, machine learning-based matching (ML matching), and data service provider-led matching.” Its ML matching path uses “a pre-configured ML model” tuned specifically for consumer records, working across “name, email address, phone number, address, and date of birth,” returning a confidence score between 0.0 and 1.0 for each match group.

Processing splits into two modes: manual bulk processing, which reprocesses a full dataset on demand, and automatic incremental processing, which compares new records against the existing set as they land in the configured data store, plus a near real-time lookup path through its GetMatchId operation. For a team already standardised on AWS Glue and S3 for its CRM, marketing and support exports, that is a genuinely managed option without introducing a new cloud dependency. Its matching is scoped to the schema and workflow model you configure inside the service.

6. Tamr: AI-driven matching with an explicit real-time product tier

Tamr’s matching is built as probabilistic and AI-driven across its full pipeline, “from initial scanning and smart comparison to labeling, scoring, and intelligent ranking,” rather than assembled from a set of authored rules. Every suggested match carries a plain-language reason, a confidence tier, and automated actions configurable against that tier, with uncertain cases routed for human review rather than resolved silently.

Tamr separates its real-time and bulk paths into distinct products: Tamr RealTime for operational systems that need current data immediately, and its wider SaaS platform for large-scale batch matching as data volume grows. That split is worth noting directly: real-time is a specific product tier here, not the platform’s universal default, which matters when comparing it against tools where real-time behaviour is the whole design.

7. Tilores: real-time resolution across CRM, marketing and support at once

The six tools above mostly answer a version of “how do I deduplicate a dataset.” The CRM, marketing and support case is slightly different: three live systems, each writing its own new and changed records constantly, that need to resolve against each other continuously rather than on a scheduled job. We built Tilores for that shape of problem specifically. Records normalise for inconsistent phone formats, address abbreviations, name variants, and transliteration differences before matching, so records that look different across a CRM, a marketing platform, and a support tool, such as company name variants or a name written with a transliteration difference, resolve to the same entity rather than staying as separate near-duplicates.

Every match returns two scores, an entity score for overall match quality and a hit score for how closely a result aligns with a given search, both queryable through a GraphQL API rather than a fixed export format. New records resolve against existing clusters in under 150 milliseconds on the managed AWS path, or around 1 millisecond self-hosted, so a support ticket created seconds ago can already be linked to the right customer profile drawn from the CRM and marketing systems. Deployment follows the same AWS-native-by-default, infrastructure-agnostic-by-design model as elsewhere on this site: managed on AWS for most teams, or the same engine inside a customer’s own AWS account, another cloud, or on-premise for teams whose data cannot leave their own perimeter.

How the seven compare

ToolMatching approachProcessing modelTypical scaleBest fit
Python Record Linkage ToolkitDeterministic indexing + supervised/unsupervised classifiersBatchSmall to medium filesA research project or one-off audit
DedupeActive learning classifierBatchSmall to medium filesNo existing labelled training data
SplinkProbabilistic, Fellegi-Sunter basedBatchMillions to 100M+ recordsLarge historical consolidation
ZinggActive learning + Spark blocking modelBatchMillions of recordsExisting Spark or data lake pipeline
AWS Entity ResolutionRule-based, ML-based, or provider-ledBulk or incremental, near real-time lookupConfigurable to AWS Glue inputsTeams standardised on AWS Glue and S3
TamrAI-driven, probabilistic pipelineBatch, with a separate real-time product tierEnterprise-scaleTeams needing labelled confidence tiers
TiloresDeterministic + probabilistic, pre-match normalisationReal-time by defaultContinuous, multi-sourceCRM, marketing and support resolving live against each other

None of the four open-source libraries is a worse choice than a managed service. They answer a different question: run and tune the matching yourself, on your own schedule, against a dataset that mostly sits still between runs. The managed options answer the question of live, continuous resolution across systems that keep writing new records. Which one fits depends on whether the CRM, marketing and support problem is a project to run once, or an ongoing state three systems need to stay in sync with.

FAQ

Yes, for a batch project: export both systems, run the matching job, and load the resolved output back. What they do not do natively is keep resolving new records as they arrive in either system, since both are designed to be run as a job against a dataset that is mostly static between runs.

Splink uses probabilistic matching based on the Fellegi-Sunter model and runs on DuckDB or big-data backends like Spark or AWS Athena for very large batch jobs. Zingg is Spark-native from the ground up, using an active learning classifier alongside its own blocking model, and fits most naturally into an existing data lake pipeline.

Does AWS Entity Resolution support real-time matching?

It supports a near real-time lookup through its GetMatchId API operation, alongside bulk processing that reprocesses a full dataset and automatic incremental processing that compares new records against the existing set as they arrive. The core matching techniques offered are rule-based, machine learning-based, and data service provider-led.

Why would a team choose a managed service over an open-source record linkage library?

An open-source library needs a team to run, tune, and maintain the matching code and infrastructure themselves, which is a reasonable trade for a project with a data science team and a defined scope. A managed service trades that ownership for continuous resolution across live systems without maintaining the matching logic in-house.

How does Tilores differ from the four open-source libraries in this list?

The four libraries, Python Record Linkage Toolkit, Dedupe, Splink, and Zingg, are all run as batch jobs against a dataset that is mostly static between runs. Tilores resolves new records from a CRM, marketing platform, or support tool against existing entities continuously, in under 150 milliseconds on the managed AWS path, rather than on a scheduled batch cycle.

Sources

  1. About the Python Record Linkage Toolkit, Python Record Linkage Toolkit Documentation, checked 2026-08-26.
  2. Dedupe Documentation, Dedupe.io, checked 2026-08-26.
  3. Splink Documentation, UK Ministry of Justice Analytical Services, checked 2026-08-26.
  4. Zingg, Zingg (GitHub), checked 2026-08-26.
  5. What Is AWS Entity Resolution?, AWS Entity Resolution Documentation, checked 2026-08-26.
  6. Entity Resolution, Tamr, checked 2026-08-26.
  7. API Reference, Tilores Documentation, checked 2026-08-26.
  8. Deployment Options: Run Tilores Where Your Data Is, Tilores, checked 2026-08-26.
  9. Pricing, Tilores, checked 2026-08-26.

See what resolved entity data does for your business — and your AI.