Microsoft Copilot $21$18. Plus, get 1 month free!

March 5, 2026

Migrating 1.3 Million CRM Records in Dynamics 365: Why We Used a Custom Console App

A government client needed to restructure 1.3 million contact records in Microsoft Dynamics 365 CRM. At that scale, traditional UI tools and flows can throttle, fail silently, or leave a migration half-finished.

Instead of relying on standard imports, we used a custom console application built on the Dataverse SDK to execute the migration safely and deterministically, even when the job was interrupted mid-run.

Key Takeaways

  • Large-scale updates in Dynamics 365 CRM / Dataverse require a different approach than standard UI tools or imports.
  • A custom console app using the Dataverse SDK provides control over batching, retries, and execution logic.
  • Idempotent update logic ensures migrations can safely resume if interrupted.
  • Testing with dry runs and small batches first significantly reduces migration risk.

The Challenge: Migrating 1.3 Million Dynamics 365 CRM Records

Recently, one of our firm’s clients in the government sector needed to overhaul how they track contact origins in Microsoft Dynamics 365. The goal was straightforward on paper: migrate data from a legacy “Source” field into a newly redesigned, structured field and map the old option set values into new grouped categories.

The catch? We were dealing with 1.3 million Contact records.

Why Updating 1.3 Million Dynamics 365 Records Requires a Different Approach

Updating a few hundred records is a quick afternoon task. Updating 1.3 million records becomes an operational risk if it isn’t handled carefully. At that scale, standard out-of-the-box tools and event-driven automations simply cannot handle the load reliably.

Several factors made this migration particularly complex:

  • Throttling and Timeouts
    Standard UI tools and flows will inevitably throttle, time out, or fail silently when pushed to seven-digit volumes.
  • Inactive Records
    A large portion of the database consisted of inactive contacts. The standard Dataverse UI locks these records down, preventing edits without temporarily reactivating them — a messy and risky workaround.
  • Data Integrity
    We had to preserve existing, populated values. Accidentally overwriting valid data across millions of rows was not an option.
  • The “Half-Finished” Nightmare
    If a standard import fails halfway through, figuring out exactly where it stopped and how to resume without duplicating work or corrupting data can become a massive headache.

Our Solution: Using a Dataverse Console App for a Large-Scale CRM Data Migration

To eliminate these risks, we bypassed the UI entirely and built a custom console app leveraging the Dataverse SDK. This wasn’t about building a flashy interface; it was about having absolute control and deterministic execution.

We implemented a strict “test small first” methodology:

  • Idempotent Logic
    The update rule was designed so that running it twice would not change anything the second time. It only targeted records where the old field had data and the new field was empty.
  • Dry Runs
    We ran the logic in a simulated state first to validate mappings and confirm exact record counts without touching the live database.
  • Direct SDK Access
    Using the Dataverse SDK allowed us to update inactive records without triggering UI-level restrictions.
  • Controlled Batching
    We managed the exact size and speed of the data payloads being sent to the server to prevent throttling or system instability.

Ensuring Reliable Dynamics 365 Data Migration at Scale

This approach protected the client from data loss, downtime, and operational chaos.

The true test of our methodology happened mid-deployment: the power went out while the job was running. Because we designed the console app with idempotent logic, it wasn’t a crisis. We simply rebooted, restarted the application, and it picked up exactly where it left off, ignoring the records that had already been processed.

When your data volume reaches seven digits, you need a solution that guarantees success on the first try. By stepping outside the standard UI and using a controlled SDK-based approach, we delivered a flawless, verifiable migration.

Organizations planning a Dynamics 365 CRM implementation or large-scale data restructuring often encounter similar challenges, where careful planning and the right technical approach make all the difference.

Deeper Technical Breakdown of the Dataverse Migration

For a deeper technical breakdown of the migration, including the code logic, execution pattern, and the pre-flight checklist used for this project, read the full article on updating millions of Dataverse records using a custom console app.

Other articles

Project Online Retirement: What Businesses Need to Do Before September 2026

Daniel Dix

|

May 7, 2026
For years, Project Online, Microsoft’s cloud-hosted project and portfolio management (PPM) solution, built on SharePoint Online has played a central role in enterprise environments, supporting everything from detailed scheduling to…

Microsoft Dynamics 365 Business Central Implementation Packages

Clayton Jones

|

April 29, 2026
If you’re like 99% of our clients, you’re trying to rein in the soaring costs of technology. It’s a delicate balancing act. On the one hand, you understand that you…

Doing More With the Team You Have: What BCS is Changing with AI

Jackie Gant

|

April 29, 2026
AI is everywhere right now, but what feels different is the pace. For the first time in a long time, small and mid-sized businesses are adopting new technology just as quickly…

Why AI Sometimes Feels Off (Even When You Have the Data)

Zoltan Orban

|

April 23, 2026
Webinar: Doing More With the Team You Have | What BCS is Changing About AIApril 28 @ 12:00 PM PT/3:00 PM ETRegister Now!Most small and mid-sized businesses aren't behind on…

What 200% ROI from Business Central Really Looks Like

Jackie Gant

|

April 13, 2026
Where ROI actually shows up from finance efficiency to operational visibility Forrester says Business Central delivers 200% ROI. But what does that actually look like in practice? A recent Total Economic…

Do You Need Avalara for Business Central? A Practical Guide

Clayton Jones

|

April 10, 2026
Webinar: Sales Tax Works…Until It Doesn’t: Tax Complexity at Scale for Product CompaniesMay 5 @ 10:00 AM PT/1:00 PM ETRegister Now!Most companies focused on making, distributing, or selling products manage…