A Duplicate Check defines how D365 BC identifies whether a master data record being created or updated already exists in the system. You configure the check as a reusable definition by specifying the table to search and the fields to compare, and then link it to a policy version. When a match is detected, D365 BC either blocks the save with an error or displays a warning, based on the configured outcome. Duplicate checks and validation rules work independently. A policy version can have both, either, or neither.
Purpose
Create a Duplicate Check definition that specifies the matching logic for detecting duplicate Customer, Vendor, or Contact records. Once created, the definition is linked to a policy version from the Data Policy form, where the outcome behaviour is configured.
Before You Start
Duplicate Check setup has two stages and two pages:
Stage | Page | What you do |
|---|---|---|
Stage 1 | Duplicate Check List → Duplicate Check card | Create a Duplicate Check definition: name, type, table, fields |
Stage 2 | Data Policy form → Duplicate Check Rules sub-grid | Link the definition to a policy version, set outcome and message |
Complete both stages. A duplicate check definition that is not linked to a policy has no effect.
Stage 1 - Create the Duplicate Check Definition
Press Alt+Q.
Type Duplicate Check List.
Select the result. The Duplicate Check List shows all existing definitions. Check whether a suitable one already exists. If so, skip to Link the Duplicate Check to a Policy Version.
Click + New in the action bar.
The Duplicate Check card form opens.
Fill in the General section
Field | Instructions |
|---|---|
Description | Enter a clear name for this check, e.g. "Customer Name + Phone DC" or "Contact Basic DC". This name is what you will select when linking to a policy. |
Duplicate Check Type | Select Basic for exact field matching. |
Source Table | Select the table this check targets: 18 (Customer), 23 (Vendor), or 5050 (Contact). |
Threshold % | (Fuzzy only) Enter the minimum match percentage required to flag a record as a duplicate, e.g. 70 means 70% of the total field weightage must match. |
Active | Leave this turned off for now. Enable it after adding the fields in Add fields to the Field Constraints sub-grid. |
Add fields to the Field Constraints sub-grid
The fields you add here are the ones compared between the new record and all existing records in the table. All fields must match for a Basic check to trigger; for each contributes a weighted match score.
In the Field Constraints sub-grid, click New Line.
Click the lookup in Field No. and select the first field (e.g. Name).
Field Caption populates automatically.
(Fuzzy only) Enter a Weightage value for this field.
Repeat for each additional field (e.g. Phone No., E-Mail).
Note
For Basic matching: add only the fields that together reliably identify a duplicate. Adding too many fields makes it harder to trigger a match (all must match exactly). A combination of two or
e high-confidence fields is usually sufficient.In the General section, click the Active toggle to enable it.
D365 BC saves automatically.
The definition now appears in the Duplicate Check List and is available for selection in the Duplicate Check Rules sub-grid of Anywhere Mobility Solutions policy version.
Stage 2 - Link the Duplicate Check to a Policy Version
Once the definition exists and is Active, link it to a policy version:
Add the duplicate check to the Duplicate Check Rules sub-grid
Open Data Policies (Tell Me → "Data Policies").
Click the Policy Table ID for the policy you want to configure (e.g. 18 for Customer).
In the Duplicate Check Rules sub-grid, click New Line.
Click the lookup in Duplicate Check Id and select the definition you created.
Description auto-populates from the definition.
Set Outcome:
Error - Blocks the save. The user must resolve the duplicate before the record can be saved.
Warning - Displays a message popup. The user can acknowledge the message and proceed..
Enter a Validation Message, which is displayed to the user when a duplicate is detected.
Enable the Active toggle in the General section of the Data Policy form (see Create and Manage Policy Versions). Once active, the duplicate check fires whenever a user saves a record in the targeted table.
The row saves automatically. The duplicate check is now linked to this version.
Examples
Example 1 - Detect duplicate Contacts by Name + Phone No.
Scenario: Prevent two Contact records being created with the same name and phone number.
Stage 1 - Duplicate Check card:
Field | Value |
|---|---|
Description | Contact_DC |
Duplicate Check Type | Basic |
Source Table | 5050 (Contact) |
Active | On |
Field Constraints:
Field No. | Field Caption |
|---|---|
2 | Name |
9 | Phone No. |
Stage 2 - Data Policy form, Duplicate Check Rules sub-grid (Contact policy, Version 1):
Duplicate Check Id | Description | Outcome | Validation Message | Active |
|---|---|---|---|---|
DUP-0008 | Contact_DC | Error | "A contact with this name and phone number already exists. Please search for the existing record before creating a new one." | ✓ |
What the user sees: When a user tries to save a Contact with the same Name and Phone No. as an existing Contact, the record is blocked with the custom error message.
Example 2 - Detect duplicate Customers by Name + Address (warning, not error)
Scenario: Flag potential duplicate customers when Name and Address match, but allow the user to proceed if it is intentional (e.g. a parent/child company at the same address).
Stage 1 - Duplicate Check card:
Field | Value |
|---|---|
Description | Customer Name+Address DC |
Duplicate Check Type | Basic |
Source Table | 18 (Customer) |
Active | On |
Field Constraints:
Field No. | Field Caption |
|---|---|
2 | Name |
5 | Address |
Stage 2 - Data Policy form (Customer policy, Version 1):
Duplicate Check Id | Outcome | Validation Message | Active |
|---|---|---|---|
DUP-0015 | Warning | "A customer with this name and address already exists. Verify this is not a duplicate before saving." | ✓ |
What the user sees: A popup with the warning message and an OK button. They can click OK and the record saves. The duplicate is flagged but not blocked.
Note
The Weightage values do not need to add up to exactly 100, but using values that total 100 makes the Threshold % easier to reason about.
Warning
Once a Duplicate Check definition is referenced by an active policy version, it cannot be edited. If you need to change the matching fields, threshold, or type, create a new Duplicate Check definition, link it to the policy, and deactivate the old one.