Salesforce Consulting
A practitioner checklist for an NPSP data migration: object inventory, field mapping, sandbox rehearsal, reconciliation counts, load order and cutover traps.
Shubham Shrivastava — Quantum Associates
· 7 min read
Most of the risk in an NPSP data migration sits nowhere near the extract or the load. It sits in the fortnight before you load anything: deciding what actually moves, agreeing what each record becomes on the other side, and naming the person who signs off that it arrived intact. The tooling is the easy part. Data Loader has not been the bottleneck on any project we have run.
This is the checklist we work from. It assumes you have already decided to move — if you are still weighing that up, start with the migration decision itself and come back here when the answer is yes.
The short version: inventory every object and field before you map anything, rehearse the full load in a partial-copy sandbox until the reconciliation counts match the source, load parents before children with sign-off between each step, and archive every record before you delete it. Everything below is elaboration on those five sentences.
Worth being blunt about the ground you are standing on. NPSP received its last feature work in March 2023. It is still supported, and Salesforce has published no retirement date — so nobody is forcing your hand this quarter. In December 2025 Nonprofit Cloud was renamed Agentforce Nonprofit. NPSP was not renamed, and NPSP data was not moved anywhere as part of that.
That last point is the one that catches people. There is no upgrade path, no toggle, no migration wizard. You are building a new org and moving data into a different model. The model differences are what generate almost all of the mapping work:
You cannot map what you have not counted. Before any mapping workshop, produce a single spreadsheet with one row per object and one row per field.
On an Australian community-care provider we delivered with the implementation partner, the Contact object alone carried 314 fields across standard, NPSP-package and custom. Nobody in the organisation knew that number before we counted. A meaningful share were dead — populated once in 2019 and never again. Finding that early is what keeps the mapping workshop to a sane length, and it is the single biggest driver of what the migration ends up costing.
Field mapping is the visible work. Value mapping is where the load actually fails.
That last one is not optional. An external ID lets you upsert rather than insert, which makes every load re-runnable. Without it, a half-failed load leaves you reconciling duplicates by hand at eleven at night. With it, you fix the mapping and run the same file again.
A clean target org will reject your data enthusiastically. Automation that is correct for daily use is usually wrong for a bulk load.
A rehearsal that runs in a developer sandbox with twelve records tells you nothing. Rehearsal loads need real volume and real mess.
On that same provider, 201 risk assessments carrying 4,645 question responses loaded with zero failed records in production — because the rehearsal rounds had already surfaced every picklist mismatch and every required-field gap. Zero failures on the day is a rehearsal outcome, not luck.
Ordering is not a preference. A child record with no parent is a failed row.
The production order we used was: organisations, then people, then cases, enquiries, relationships and tasks — with sign-off between each step. Not sign-off at the end. Between each step.
Final reconciliation on that engagement covered 2,313 people, 625 organisations, 2,097 cases and 2,519 contact-detail records. The counts were checked against source, by object, and signed off — which is why nobody spent the following month wondering whether something had gone missing.
Big-bang cutovers fail for organisational reasons more often than technical ones. We moved staff in cohorts, running a delta load after each one to capture everything created in the legacy system while that cohort was still working in it. One delta was around 3,500 records — client sessions, tasks, documents, check-ins and risk assessments.
The staged cutover pattern is worth reading in full if you have more than one service line.
17,248 legacy tasks became Benefit Disbursement records on that project. Every original was archived before deletion — extracted, stored, and verified readable.
You can see the full shape of this work in the community-care migration case study.
If you are planning one of these and want a second set of eyes on the mapping before you load anything, have a conversation with us. Thirty minutes on your object inventory is cheaper than a fortnight of reconciliation.
Related insights
Salesforce Consulting
NPSP to Nonprofit Cloud migration for Australian not-for-profits: what changed, whether to move at all, how the data models differ, and how a migration runs.
Salesforce Consulting
A staged cutover delivers CRM migration without downtime: cohorts, delta loads, freeze windows, reconciliation and archive-before-delete, from a real migration.
Salesforce Consulting
Salesforce data migration cost in Australia: why no one can quote honestly before seeing your data, and how to build your own estimate from the real drivers.
Next step
30 minutes, no pitch, no deck — just a working conversation about how this applies to your situation.