I

Automatic deduplication

How Ikigai finds and merges duplicate contacts and deals — match criteria, merge direction, and the guards that keep closed and archived deals untouched.


Ikigai has two built-in deduplication systems, configured under Settings → Integrations: Contact deduplication («Дедупликация контактов» / «Дедуплікація контактів») and Deal deduplication («Дедупликация сделок» / «Дедуплікація угод»). Both run automatically in the background on every new lead and record update.

Contact deduplication

Runs whenever a contact is created or updated. It compares the contact's identifiers against the rest of the workspace using the Match criteria you choose:

  • Phone only, Email only, or Phone or email;
  • Phone and name — stricter, for markets where family members share a number;
  • Custom field — match on any contact field (for example a passport or tax number).

Merge priority decides which record survives: Keep oldest or Most complete. The duplicate's identifiers, deals, and history are re-pointed to the survivor. You can also scope the search to specific pipelines and stages, and allow or forbid cross-pipeline matching.

Deal deduplication

Runs when a deal is created or changes stage. You define deduplication blocks — each block is a pipeline plus a set of stages that count as "the same working set". Within the blocks, duplicates are found by a shared primary contact or a shared company, optionally gated by an extra field that must also match (for example the deal amount).

Merge direction picks the surviving deal:

OptionThe survivor is…
Keep oldest dealThe earliest created
Keep newest dealThe most recent
Furthest in pipelineThe one deepest into the stages
Highest amountThe one with the largest value
Block priorityThe one in the block with the lowest priority number

With Preserve creation date on, the surviving deal keeps the earliest creation date in the group, so funnel and age reports stay honest.

Safety guards

  • Closed deals are never touched: a deal marked won or lost is never auto-merged, in either direction.
  • Archived (deleted) records are never touched: anything in the trash is invisible to dedup.
  • Excluded stages you configure are skipped.
  • A contact that already holds 10 or more open deals is treated as a suspicious "system" contact — merging is refused and flagged for manual review.
  • Every merge leaves a note on both timelines and is recorded as a merge event that can be undone. Owner notifications depend on the type: deal-merge notifications are on by default, contact-merge notifications are off by default (opt-in), and bulk cleanup runs never notify.

Warning: API-driven ingestion fires automations. Records arriving through lead webhooks, website forms, the public API, and integrations (including spreadsheet-to-API bridges) emit the same contact.created / deal.created events as a live lead — welcome emails, distribution rules, and auto-dedup all run at ingestion speed. Before pushing a bulk of records through those channels, review your active automations and pause anything that emails clients. The built-in CSV import is different: it writes directly to the database and does not emit these events, so automations and auto-dedup do not react to those rows.

Note that the CSV importer additionally has its own, simpler Skip duplicates by check — it skips matching rows during the upload itself, while the systems described here merge duplicates that made it into the database.

Was this article helpful?

Related articles

Automatic deduplication · Help Center