πŸ’» Tilores Studio is now available. Run entity resolution locally on your machine.Download free

Product Β· Step 1 of 3

Extract & Transform

Raw customer data is messy β€” different casing, formats, and field names in every system. Tilores ingests records from any source and turns them into clean, normalized, enrichable entities, ready to be matched.

The ingest pipeline
CRM
Salesforce, HubSpot
Databases
Postgres, Snowflake
Files
CSV, Parquet, JSON
Events
Kafka, webhooks
Extract
submit()
Transform
clean Β· normalize Β· enrich
Match-ready
canonical record

Interactive

Watch a record get cleaned up

Step through the pipeline to see a single messy record become a canonical, match-ready entity. Changed fields are highlighted at each step.

record.json
{
}


What happens under the hood

More than a cleanup β€” a foundation for resolution

Any schema, no migration

Push records in whatever shape they already have. Tilores maps them to a flexible entity model β€” you never reshape your data warehouse to fit ours.

Normalized for matching

Names are cased and split, addresses parsed and expanded, phones formatted to E.164, dates made ISO. Clean inputs mean the matching engine compares like with like.

Enriched on the way in

Derive country codes, split name parts, canonicalize email providers, and attach your own computed attributes β€” before a single edge is drawn.


In the API

One call to ingest.
Preview before you commit.

Send records with submit. Records pushed together are linked with a STATIC edge, so data you already know belongs together stays together.

Not sure how a batch will resolve? Use submitWithPreview with dryRun to see the resulting entities without writing anything.

GraphQL
mutation IngestCustomers {
  submitWithPreview(
    input: {
      records: [
        { id: "crm-8842", name: "Jon Smith",
          email: "jsmith@googlemail.com" }
      ]
      dryRun: true
    }
  ) {
    entities { id score }
    duplicates
  }
}

Try it with your own data

Download the evaluation build and run the full ingest pipeline locally β€” up to 100,000 records, no signup.