Back to blogMigration guide

Nonprofit CRM migration is really import cleanup: how to avoid bad donor data on day one

A nonprofit CRM migration checklist for imports, duplicate records, external IDs, gift history, households, anonymous donors, DAF gifts, receipts, and review queues.

Sapling CRMAugust 1, 20268 min read

Migration quality is decided before the import button

Most CRM migrations fail quietly. The data technically moves, but donor history gets flattened, relationships disappear, gift dates shift, receipts become unclear, and duplicate contacts multiply. A safer migration treats import as a review workflow: map, stage, flag, resolve, approve, and only then commit.

Keep source IDs everywhere you can

External IDs are boring until you need them. They let teams re-run imports idempotently, trace a record back to the source system, reconcile gifts, and avoid creating duplicates when a file is corrected. Contacts, gifts, individuals, addresses, recurring commitments, and receipt artifacts should preserve their source identity when possible.

Do not let clean rows bypass common sense

A row can be technically clean and still operationally risky. A donor may be marked anonymous, a gift may have an impossible date, a tender label may actually mean payment method, or two rows may describe the same person. A useful CRM import flow should check clean rows against CRM rules and against the file itself before they become production data.

  • Validate dates, amounts, tender/payment method labels, required fields, and receipt status.
  • Compare rows inside the same file for likely duplicate contacts or gifts.
  • Hold anonymous, passthrough, DAF, and relationship-heavy rows for staff review.
  • Show unused source data so staff understand what will not import.

Households and individuals need special care

Household data is where many migrations lose nuance. A file may contain one row for the household, another for an individual, and a third with an alternate email or spouse name. The CRM should let staff preserve multiple individuals, primary contacts, contact preferences, and household-level giving without collapsing everything into one display name.

Gift history is not just amount and date

Gift imports should protect fund, campaign, appeal, tender, payment status, receipt status, recurring status, soft credits, matching, tribute, passthrough, DAF, and refund context. If that context is dropped, development and finance teams spend months rebuilding trust in the new database.

Receipts should be validated during migration

If a migrated gift has a receipt status, staff should know whether that status reflects a sent receipt, a generated file, a historical note, or a placeholder. A CRM that connects gifts to receipt templates, delivery history, and downloadable files gives the team a cleaner starting point.

A migration checklist that catches real problems

Before you commit a migration, require a review pass that mirrors real fundraising operations. The goal is not perfection. The goal is knowing which records are clean, which need a decision, and which should wait.

  • Map every source column or explicitly skip it.
  • Review duplicate candidates before creating contacts.
  • Test recurring gifts, refunds, receipts, soft credits, matching, and DAF/passthrough gifts.
  • Confirm that annual giving rollups match the old system.
  • Keep an audit trail of import decisions and dropped rows.

Sapling CRM

See what a nonprofit CRM feels like when everything is in one place.