A nonprofit CRM migration is the controlled transfer of donor identities, gifts, pledges, recurring schedules, relationships, notes, and operational history into a new system. A safe migration preserves totals and relationships, documents every transformation, and gives staff a way to verify the new database before the old one is retired.
Most migration failures are not dramatic. They are quiet: soft credits disappear, dates change format, a spouse becomes a duplicate, or a fulfilled pledge reopens. This checklist is designed to catch those errors before they reach a donor or a board report.
Phase 1: define the source of truth
List every place that currently contains donor or fundraising data:
- CRM or spreadsheet;
- payment processor;
- donation form platform;
- email platform;
- event or ticketing tool;
- accounting system;
- shared drives and staff files;
- paper pledge cards or event records.
For each field, decide which system is authoritative. The CRM may own the donor address while the payment processor owns the transaction ID. The accounting system may own the posted journal entry while the fundraising system owns campaign attribution.
This step prevents the team from choosing whichever value looks newest during cleanup.
Phase 2: export before changing anything
Export every available object separately. At minimum, preserve donors, organizations, households, gifts, pledges, recurring plans, notes, tasks, campaigns, funds, appeals, tags, custom fields, and users.
Keep the original exports untouched. Create working copies for cleanup. Store a short data dictionary explaining each column and code. If the old system uses values such as A, LYB, or HHD24, document what they mean now.
Export attachments and receipts if the system stores them. Also save reports showing lifetime giving, yearly revenue, outstanding pledges, and recurring-plan status. Those become validation controls after import.
Phase 3: clean what creates risk
Do not clean everything. Clean the records that can change reporting or donor communication:
- exact and likely duplicates;
- missing or malformed email addresses;
- inconsistent date and currency formats;
- deceased and do-not-contact flags;
- household and organization relationships;
- campaign, fund, and appeal codes;
- pledge and payment links;
- recurring-plan status;
- hard-bounce and unsubscribe history.
Archive obsolete tags instead of mapping all of them. A migration is an opportunity to stop carrying years of unused classifications.
If the current system is a spreadsheet, first read when to switch from a spreadsheet to a nonprofit CRM.
Phase 4: map fields and relationships
Create a mapping table with source field, destination field, transformation rule, owner, and validation method. Never rely on memory.
Pay special attention to:
- first name, preferred name, and formal addressee;
- individual versus organization records;
- spouse and household relationships;
- hard and soft credits;
- tribute and memorial relationships;
- anonymous gifts;
- split gifts across funds;
- pledges with irregular installments;
- refunded or disputed transactions;
- historical users who no longer have accounts.
A donor is not just a row. Relationships between rows are often the most valuable part of the database.
Phase 5: run a small test import
Import 50 to 100 carefully selected records, not the first 100 rows. Include simple donors and difficult edge cases: spouses, organizations, tribute gifts, soft credits, recurring plans, partial pledges, refunds, in-kind gifts, and people with several addresses.
Then validate:
- record counts;
- revenue totals by year;
- totals by payment method and campaign;
- outstanding pledge balances;
- active recurring plans;
- household and organization relationships;
- opt-out and consent flags;
- notes and contact history.
Fix the mapping and repeat. Do not repair hundreds of records manually inside the new CRM when one mapping change can correct the whole import.
Phase 6: test workflows, not just totals
Correct totals can hide a broken operating model. Ask staff to complete real work:
- find a donor by spouse, email, or organization;
- record a check against an existing pledge;
- update a recurring donor's card;
- send a receipt and annual statement;
- create a campaign segment;
- reconcile a deposit;
- export a board report.
The new system should pass the buyer's-guide scorecard in our nonprofit CRM buyer's guide.
Phase 7: plan the cutover
Choose a cutover window that avoids a gala, year-end campaign, audit deadline, or statement run. Freeze edits in the old system, take final exports, import the delta, and document the exact time the new CRM becomes authoritative.
Keep the old system read-only for an agreed period. Do not let staff enter data into both systems indefinitely. Parallel entry feels safe but creates two conflicting sources of truth.
Assign owners for gifts, recurring plans, pledges, communications, reports, and finance validation. One person should make the final go-live decision.
Day 1, day 7, and day 30 checks
Day 1: verify counts, totals, permissions, payment processing, receipts, and high-risk relationships.
Day 7: review duplicates, failed imports, staff questions, campaign reporting, recurring charges, and pledge application.
Day 30: reconcile the first full deposit cycle, reproduce a board report, audit a sample of donor histories, and confirm the old system can remain read-only.
Keep a migration exception log. Every discrepancy should have an owner, decision, and resolution date.
What to ask a CRM vendor about migration
- Who performs the field mapping?
- How are duplicates identified and approved?
- Can we run multiple test imports?
- Are historical gifts and notes included?
- How are pledges and recurring plans migrated?
- What validation reports are provided?
- Can we export everything cleanly if we leave?
- What support is available during the first reconciliation cycle?
DonorForge supports spreadsheet and legacy-system imports, clean exports, and a trial environment where teams can validate real workflows before committing. Review migration options, pricing, or start a free account when your data is ready for a test.