Duplicate Management
Prevent duplicate people with uniqueness constraints and import duplicate handling
Coherence prevents duplicate people in two places:
- Uniqueness constraints on the People module, checked every time a person is created or edited
- Duplicate Handling in the import wizard, applied to each row of a file you import
Coherence does not have a duplicate review queue, a scan of existing records, or a tool that merges two existing people into one. Constraints are checked when a record is saved; adding a constraint does not re-check the people you already have.
Uniqueness Constraints
Duplicate rules for people are uniqueness constraints on the People module:
- Click Modules in the sidebar to open the Module catalog, then open People
- Click the Uniqueness tab
- Click Add Constraint
| Setting | Options |
|---|---|
| Constraint Type | Simple Unique, Composite Unique, Duplicate Detection Rule |
| Rules (Duplicate Detection Rule only) | Duplicates are detected if ANY rule matches. Within a rule, fields are combined with AND. Each field uses Exact Match, Case Insensitive, or Normalized (ignore spaces/special chars) |
| Enforcement | Block or Warn (see What Happens When a Save Matches) |
| Active | Turn the constraint off without deleting it |
For example, a Simple Unique constraint on Email with Block enforcement stops two people from sharing an email address.
See Uniqueness & Duplicate Detection for every option.
What Happens When a Save Matches
Only active constraints are checked, and people in the trash are never treated as duplicates. For a Simple Unique constraint, an empty field is not checked.
| Enforcement | What you see |
|---|---|
| Block | The save is rejected with an error such as "A record with matching email already exists" |
| Warn | The save is stopped with a "Potential duplicate record detected" error |
In both cases the person is not saved.
The web app does not currently offer a "save anyway" option after a Warn match, so a Warn constraint stops the save in the create and edit forms just as Block does. Use Block when you want a hard rule, and review the constraint before turning on Warn.
Resolving a Duplicate
There is no merge action. To resolve a duplicate, search for the existing person, update that record with any details you want to keep, and delete the record you no longer need.
Duplicates During Import
The Validate step of the import wizard has a Duplicate Handling section:
| Setting | Options |
|---|---|
| When duplicates are found | Skip duplicates, Merge with existing records, Create new records anyway |
| Match on fields (optional) | The field used to find an existing person. Values must match exactly. No duplicate check turns the check off |
If you choose Merge with existing records, pick a Merge behavior:
| Merge behavior | Result |
|---|---|
| Fill empty fields only | Only update fields that are currently empty in the existing record |
| Overwrite all fields | Replace all fields with import values (empty import values clear existing) |
| Import values take priority | Update with import values, but keep existing if import is empty |
With no match field selected, the wizard shows "No duplicate check configured" and no row is matched to an existing person.
Uniqueness constraints also apply to imported rows. A row that matches an active constraint (Block or Warn) fails and appears in the import's error list instead of being created.
See Importing People for the full import walkthrough.
Best Practices
Add a Constraint Early
Constraints only check records as they are saved. Add an email constraint before your first large import so duplicates are caught on the way in.
Clean Before Import
Before large imports:
- De-duplicate your source file
- Standardize formatting (email case, phone format)
- Choose a Match on fields value, usually Email, and make sure every row has a value in that column
Related: Importing People | Data Enrichment | Uniqueness & Duplicate Detection