Skip to main content

CSV Donor Import for Nonprofits

Published: Last updated: Reviewed: Sources: nten.org nptechforgood.com afpfep.org

TLDR

CSV donor import handles field mapping, household de-duplication, and data validation before a single record writes to the database. Most CRM import failures come from one cause: inconsistent household formatting in the source file. GrantPipe surfaces those errors at preview time, not after the import runs.

CSV donor import is the fastest path from a spreadsheet or legacy CRM to a clean database. The importer handles field mapping, de-duplication, and validation before any record writes — so the errors you fix are the errors in your source data, not errors created by the import itself.

TL;DR

  • Field mapper connects any CSV column to any GrantPipe donor or gift field
  • De-duplication runs on email and normalized name-plus-address before import completes
  • Validation preview shows all errors by row and column before a single record writes
  • Giving history imports in the same file or in a separate pass
  • Large files (50K+ rows) process in background batches with progress tracking

What this feature does

The CSV import takes a file from your current system — a spreadsheet, a Blackbaud export, a Salesforce CSV, a DonorPerfect extract — and walks it into GrantPipe through three steps: map the fields, review flagged rows, confirm and import.

The field mapper handles the reality that every system names columns differently. “First Name” in your file might be “fname” or “Contact: First Name” or “Donor First.” You drag and drop until every column you want is linked to a GrantPipe field. Columns you do not map are ignored.

The validation step reads the entire file and surfaces every error before the import runs: missing required fields, duplicate email addresses, date values it cannot parse, currency values with unexpected formatting. You see the error count by category, and you can download a report listing each flagged row. Fix the source file and re-upload, or accept the import without the flagged rows.

The de-duplication step compares incoming records against existing donors and against each other. Matches are flagged for review, not automatically merged. You decide whether to merge or create a separate record.

Who it’s for

Development directors migrating from a spreadsheet-based donor tracking system. Finance staff handling a CRM switch after the organization outgrew its previous platform. Operations teams that received a donor database from a predecessor organization and need to bring it into the current system without losing the giving history.

Workflow example

  1. Export donors from your current system as a CSV (most platforms have an export button; spreadsheets save directly to CSV)
  2. Upload the CSV to the GrantPipe import screen
  3. Map each column header to the corresponding GrantPipe field
  4. Review the validation report — fix any flagged rows in the source file or accept the import without them
  5. Review de-duplication flags — merge, skip, or create for each probable duplicate
  6. Confirm the import; records write in a single transaction
  7. Run a second import for giving history if you imported donors-only in the first pass

The total time for a 5,000-donor file with clean source data is typically under 30 minutes from export to completed import.

Why clean source data matters

The importer surfaces problems in source data it cannot resolve programmatically. The most common: multiple records for the same person under different name formats, addresses that do not parse cleanly, and gift rows that reference donor records not yet in the system.

Most of these are fixable in the source file before the import runs. The validation report tells you exactly which rows to fix. Spending 20 minutes cleaning the export before re-uploading is faster than correcting records one at a time after import.

Integration with the rest of GrantPipe

Imported donor records work identically to manually created records. They appear in segments, donor reports, and communications history. Imported gift records appear in giving history and roll up into retention and LYBUNT reports. The full import history is logged in the audit trail — every batch is timestamped with the importing user and the file name.

What it replaces

  • Manual data entry for donor lists received as spreadsheets
  • The consultant engagement most CRM vendors require for a data migration
  • The multi-day import processes used by legacy platforms that process in overnight batches
  • The partial-import failures that leave databases in inconsistent state

Start a free trial

Start a trial.

Free resource

Get the Nonprofit Grant Compliance Checklist

A practical checklist for post-award grant compliance: restricted funds, reporting cadence, audit prep, and common failure points. Delivered by email.

Email is required for delivery. We'll send the resource to your inbox.

Email is required because the download link is delivered by email, not on-page.

Organizations switching from spreadsheets to a CRM report spending an average of 4-8 hours on manual data entry per 100 donor records without an import tool

Source: Nonprofit Technology Network (NTEN) 2024 Nonprofit Technology Survey

Data migration is cited as the top barrier to CRM adoption by 44% of nonprofits that have delayed a software switch

Source: Idealware / NTEN State of Nonprofit Data 2023

Nonprofits with $500K-$10M budgets spend an average of 3.5% of operating budget on software per Nonprofit Tech for Good's 2024 report

Source: Nonprofit Tech for Good 2024 Technology Report

Q&A

What is the most common reason CSV donor imports fail?

Inconsistent household formatting. A spreadsheet that has 'John and Jane Smith' in one row and 'Smith, John' in another cannot be de-duplicated automatically. Standardizing name columns before import — last name, first name as separate fields — eliminates the majority of import failures and review flags.

Q&A

How do I migrate from Salesforce NPSP using CSV import?

Export contacts, accounts, and opportunities from Salesforce as separate CSVs. Import donors first (contacts/accounts), then gifts (opportunities linked to contact records by email or external ID). The field mapper handles the Salesforce column naming conventions. Most NPSP-to-GrantPipe migrations using the CSV path complete within one business day.

Q&A

Does CSV import support recurring gift history?

Yes. Include a 'gift type' or 'recurrence' column in the giving history CSV and map it to the recurring flag. Historical recurring gift records appear in the donor's giving timeline. Active recurring schedules must be re-created manually or via the recurring-gift import path.

Q&A

What format should the CSV be in?

UTF-8 encoded CSV with a header row. Comma-delimited. Date fields should be ISO 8601 (YYYY-MM-DD) or US format (MM/DD/YYYY) — the importer auto-detects the format from the first ten rows. Currency values should be numeric, no dollar sign or commas.

Frequently asked

Frequently Asked Questions

What fields does the CSV import support?
All standard donor fields: first name, last name, organization, email, phone, mailing address, giving history (date, amount, fund, payment method), soft credits, and custom fields your organization has defined. The field mapper lets you match any column header to any GrantPipe field.
How does household de-duplication work during import?
The importer matches on email address first, then on a normalized name-plus-address combination. Probable duplicates are flagged for review before the import completes. You choose whether to merge, skip, or create a new record for each flagged pair.
Can I import giving history alongside the donor record?
Yes. Giving history rows can be included in the same CSV or imported separately after the donor records exist. The importer links gift rows to donor records by email or by an external ID column you define.
What happens if the import fails partway through?
The import runs in a transaction. A failure rolls back the entire batch — no partial records. Fix the flagged rows and re-run. The error report identifies the exact row and column for each validation failure.
Is there a row limit on the CSV?
No hard row limit is enforced by the platform. Files over 50,000 rows process in background batches with progress tracking. The practical limit for a single run is the size of your source dataset.
Can I map custom fields during import?
Yes. If you have defined custom fields for contacts, you can map CSV columns to those fields during the field-mapping step. Custom fields must exist before the import runs.