Browse the docs
Join node

Fuzzy Match

Find records that mean the same thing despite typos, spelling, or word order. Cluster duplicates, or match against a reference list.

Category
Join

What it does

Matches records that mean the same thing even when they aren't identical: typos, abbreviations, punctuation, sounds-alike spellings, or a different word order. Find duplicates mode clusters near-duplicate rows in one table and tags each with a group id, a primary flag (the survivor), and a match score. Match to a list mode fuzzy-joins your data against a reference/master table, splitting rows into matched (with the best reference row attached) and unmatched.

Inputs and outputs

InputsDedupe mode: one input. Match mode: Input and Reference.
OutputsDedupe mode: one output. Match mode: Matched and Unmatched.

When to use it

  • Deduplicate a messy customer, vendor, or product list
  • Match an incoming file against a clean master list
  • Reconcile records that don't share an exact key

Examples

Cluster duplicates

Find duplicates · name (Typos & spelling) · 85%

Jon Smith, John Smith, J. Smith land in one group.

Sounds-alike names

name (Sounds-alike) · 90%

Catherine and Kathryn match; Smith and Smyth match.

Accents don't split a name

last_name (Exact) · 100%

García, GARCIA and Garcia land in one group; so do Müller and Muller, Strauß and Strauss.

Ignore word order

name (Word order / extra words)

'John A. Smith' matches 'Smith, John'.

Match to a master list

Match to a list · company (Typos & spelling) · 80%

Each input row gets its best reference match, or lands in unmatched.

Tips

  • Add several fields (name + city + email) and give the important ones more weight; the scores combine into one.
  • Higher threshold = stricter. Start around 80–85% and adjust from the results.
  • Find duplicates gives you group_id, is_primary and match_score in one step, with no extra grouping node needed. Keep only the primaries with a Unique or Filter downstream.
  • On large tables, turn on a match key so only records sharing a coarse key (e.g. first 3 letters of a name, or a sounds-alike code) are compared: a big speed-up.
  • Every method ignores accents, so é matches e and the German sharp s (ß) matches ss, and Ignore case works for every alphabet (É and é, Ü and ü). To keep accents apart, use a node that matches exactly, such as Join.
  • Sounds-alike is built for names in the Latin alphabet. A value with no Latin letters, such as a name written in Cyrillic or Chinese, has no sound code, so it never matches on that field; the run says how many there were in Messages. Use Typos & spelling for those values.