Skip to main content
Entity matching uses machine learning to find matches between entities from different data sources. You train a model on example matches, then use it to predict matches across your data.
Whether CDF provides an entity matching user interface depends on the data modeling status of the CDF project. The API works with data modeling.

How it works

The entity matching service learns from labeled examples you provide. You create a match configuration with training data, then run the model to predict matches for new entities. The service scores each potential match and returns candidates above a confidence threshold.

Common use cases

Entity matching is useful for linking sensor data to equipment, matching P&ID tags to assets, consolidating duplicate records from multiple systems, and enriching data with cross-references. You can match entities across different schemas and naming conventions.
Entity matching requires training data. Provide representative examples of correct matches and non-matches for best results.

Key capabilities

  • Train models on your labeled match examples
  • Predict matches for new entity pairs or batches
  • Configure thresholds to control precision and recall
  • Review suggestions when matches need human verification

Predict and refit

Predict requires entitymatchingAcl:WRITE. It also requires assetsAcl:READ unless the request sets both sources and targets. A successful response includes an X-Job-Token header you can use to read the job without assetsAcl:READ. Refit trains a new model from an existing model plus confirmed matches. The original model is unchanged. The new model has a new ID. It receives newExternalId when you set that field, and no external ID when you omit it.

Pipeline runs

A pipeline run downloads data from CDF and fits a model from the parameters stored on the pipeline. For each source, the run returns one match in this order:
  1. A confirmed match, when the source has one.
  2. A match from a regex rule, when that match is not rejected.
  3. A model match whose score is above the threshold, when that match is not rejected.
Otherwise the source has no match. Confirm more matches, reject matches, or add rules, then run the pipeline again. Pipeline runs are available on the beta and alpha APIs.

Entity matching pipelines (preview)

Pipelines let you define and run repeatable entity matching flows as pipeline resources with runs you can inspect (including latest run). You create, update, list, and delete pipelines, then start runs and read run results by pipeline and run ID. Pipelines are available in the beta and alpha API references; they are not part of the stable 20230101 OpenAPI bundle yet.

Advanced joins (alpha)

Advanced joins extend contextualization with join resources and related jobs: for example creating and listing advanced joins, estimating contextualization quality, managing matches, measuring mapped percentage, and suggesting improvements, often with asynchronous job polling for long-running steps. These endpoints are published under the alpha API reference only (/advancedjoins/...). POST /advancedjoins/run writes the best combination of matcher results and matches into the direct relation on the source instances. You need write access to the view you query and read access to the RAW table the matcher uses.
Last modified on November 2, 2026