Process Duplicates
The Process Duplicates section defines what the merged result looks like when a duplicate cluster is confirmed. It does not perform the actual merge — it produces the structured data that drives automatic merges and webhook payloads.
Base and Subordinate Records
Every duplicate cluster consists of one base (master) record and one or more subordinate records. The base record is typically the one that survives after a merge; each subordinate is deactivated or deleted depending on the connected system.
The baseRecordStrategy setting determines which record in the cluster becomes the base. It is evaluated across all N cluster members — the record that best matches the strategy (e.g. the latest date, the oldest date, or random selection) is designated as the base. A cluster can have multiple subordinates, each with their own probability score relative to the base. When processing is triggered, DeDuplica loops through all subordinates sequentially and merges each into the base.
Field-Level Merge Rules
For each field you add (from table selected in Get Data tab), you specify which value appears in the merged output:
| Strategy | Description |
|---|---|
| Keep Non-Null | Keeps the first non-null value found among duplicates for this field |
| Append Text | Appends all values from duplicates, separated as appropriate — useful for text fields |
| Sum | Sums all numeric values from duplicates — use for numeric fields only |
| Higher Number | Keeps the higher numeric value among duplicates — use for numeric fields only |
| Lower Number | Keeps the lower numeric value among duplicates — use for numeric fields only |
| Longer Text | Keeps the longer text value (by character length) — use for text fields only |
| Shorter Text | Keeps the shorter text value (by character length) — use for text fields only |
| Latest Datetime | Selects the latest datetime among duplicate records — use for datetime fields only |
| Oldest Datetime | Selects the oldest datetime among duplicate records — use for datetime fields only |
| Take From Base Record | Takes the value from the base record |
| TakeFromHighestProbSubordinate | Takes the field value from the subordinate with the highest probability score relative to the base |
| TakeFirstMostPopular | Takes the most common value across all cluster members; ties are resolved in favour of the base record’s value |
You can set different strategies for different fields. For example: use Take From Base Record for an account number (more authoritative) but Latest Datetime for a last-contact field.
Merge Output JSON
DeDuplica assembles the field decisions into a merge output JSON. This JSON is:
- Used directly by the auto-merge engine for Dynamics / Dataverse connections
- Included in the
MergeOutputJsonfield of webhook payloads for external processing - Visible in the Duplicates detail view for manual review
Dynamics/Dataverse specific behaviour
If merge records with lookup type fields and you don’t want to use default lookup type, you need to add fieldnametype also to processing output. So if you want to set ownerid field as a team, you also need to add field owneridtype to process duplicates table, so that when record merges, correct value is taken.
Notes
- For databases other than Dynamics / Dataverse, DeDuplica cannot write merged records directly. The merge JSON is delivered via webhook for your system to apply.
- Calculated, read-only, and system-managed fields (e.g.
CreatedOn,ModifiedBy) are excluded from the merge output automatically. - See Webhooks Guide for the full payload structure.
- See How Duplicate Detection Works for a full description of how clusters are formed and how each merge strategy is evaluated across all cluster members.