Let me walk you through a complete solution covering all three focus areas:
Duplicate Detection Settings:
First, verify the system-wide setting at Settings > Data Management > Duplicate Detection Settings. Ensure “Enable duplicate detection” is checked for both “When a record is created or updated” AND “During data import”. This is the master switch.
Next, review your duplicate detection rule. Open it and check:
- Status must be “Published” (not just saved)
- Base Record Type and Matching Record Type both set to “Contact”
- The rule criteria matches your data - if imports use different field formatting (like email in uppercase), the match will fail
- Rule is not expired - check the Valid Until date
Test the rule manually: Create a contact, then try to create another with the same email. If it doesn’t trigger a duplicate warning, the rule itself is broken.
Bulk Import Configuration:
The 5,000 record threshold mentioned earlier is real in 9.0. Here’s the proper configuration:
<ImportConfig>
<BatchSize>2500</BatchSize>
<EnableDuplicateDetection>true</EnableDuplicateDetection>
<DuplicateDetectionMode>Strict</DuplicateDetectionMode>
</ImportConfig>
In the Data Import Wizard:
- Map your fields carefully - ensure email and company name are mapped to the correct D365 fields
- On the “Review Mapping and Import Data” page, click “Advanced Options”
- Check “Enable duplicate detection”
- Select your specific duplicate detection rule from the dropdown (don’t rely on default)
- Set “Duplicate Handling” to “Do not import duplicate records” rather than “Import and mark as duplicates”
For CSV imports, ensure email addresses are properly formatted and company names match your existing data casing (“Acme Corp” vs “ACME CORP” won’t match unless you use case-insensitive matching).
Post-Import Cleanup Process:
Even with proper settings, you need a safety net. Here’s a three-tier cleanup approach:
-
Immediate Post-Import Scan (within 1 hour):
- Run the built-in “Detect Duplicates” job targeting contacts created today
- Filter to only records from your import file (add a “Import Batch ID” field to track this)
- Review and merge obvious duplicates immediately
-
Weekly Duplicate Audit (automated):
- Create an Advanced Find view: Contacts where Email contains data AND Created On = Last 7 Days
- Export to Excel, use Remove Duplicates function on email column
- Compare count - difference shows duplicate volume
- Use D365’s Merge Records feature for cleanup
-
Preventive Data Scrubbing (before import):
- Export your import file to Excel first
- Use Excel’s Remove Duplicates on email column before importing
- Standardize company names (TRIM, PROPER functions)
- Validate email format with a formula
For automated cleanup, create a workflow or Power Automate flow that runs daily:
- Query contacts created in last 24 hours
- Group by email address having count > 1
- Send report to data stewards with merge recommendations
- Optionally auto-merge if confidence is high (exact email + company match)
The key is defense in depth: fix the detection settings, optimize your import configuration, and maintain cleanup processes for anything that slips through.
This draft is based on general Microsoft Dynamics 365 Sales knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.