Dynamics 365 native import limits, explained
The Dynamics 365 import wizard covers the simple case. But when the file grows or the data comes in imperfect, Microsoft-documented limits appear that you'd rather know before — not during — the import.
The limits, in one table
| Limit | Documented value | What it means in practice |
|---|---|---|
| Rows per import | Recommended: 20,000 or fewer | A typical contact migration (40-100k) forces you to split the file into several manual imports. |
| File size | 8 MB (32 MB zipped) | An Excel file with many columns hits the cap well before 20,000 rows. |
| Duplicate rules | Maximum 5 published per table | Real scenarios (email + phone + company name + domain + tax ID...) quickly exceed 5 rules. |
| Record merge | Account, Contact and Lead only · 2 records at a time | Cleaning 500 duplicates means hundreds of manual merges, in pairs. |
| Error messages | Per record, no file-level context | The classic "row failed" without knowing which column or why. You fix blind, retry, repeat. |
| Unsupported fields | Owner, multiselect, file/image in the modern Excel import | Records land without an assigned owner, or the field simply can't be mapped. |
Limits per official Microsoft documentation (learn.microsoft.com) · June 2026
How ImportToD365 handles this
ImportToD365 was designed exactly around these limits. Upload your full Excel or CSV and validation runs before touching the CRM: you see every error with its exact reason and fix it inline in the Fix Center, without going back to Excel. Potential duplicates are compared side by side against your live Dynamics records — not bounded by the 5 native rules — and you approve case by case or in bulk. Only the records you approved get written; what already exists in your CRM is never modified, and at the end you download the row-by-row report.
You only pay for rows successfully written to Dynamics: invalid records, rejected duplicates and discarded rows never consume your quota.
No credit card. No fine print.