Technology

How to Move a Donor Spreadsheet Into a CRM Without Losing Anything

— October 25, 2026 — 7 min read

A person comparing a paper spreadsheet with a contact list on a laptop, index cards beside the desk

Picture a hypothetical campaign two months into the cycle. The donor list lives in a shared spreadsheet with three tabs: Donors, Pledges, and a tab named after the October house party. The finance director keeps call notes in a column that has grown to a paragraph per row. Some donors appear on all three tabs, with their names spelled two different ways. The treasurer has asked for employer and occupation on every itemized gift before the next filing.

Moving that list into a CRM is mostly a cleanup job with an import at the end. Done in the right order it takes an afternoon and nothing gets lost. This guide walks through the order, using FundraiserMax for the specific steps where the details matter. The same plan applies to most donor CRMs.

Before You Export Anything

  • Make a copy. Work on a duplicate of the spreadsheet and keep the original untouched. It is your backup and your answer key when you check totals later.
  • Pick a cutover day. Tell everyone who edits the sheet that changes stop on a given day and start in the CRM after it. Two systems updated in parallel for a month is how records drift apart.
  • List every tab and every column. Write down what each one holds and who relies on it. Columns nobody can explain are candidates to drop or to keep as notes.

Clean the Columns, Not Every Cell

You do not need a perfect spreadsheet. You need one that a computer can read consistently. Spend your time on structure:

  • One row per person per tab. If a donor appears twice on the Donors tab, combine the rows. Gifts belong on their own rows, one per gift, with the donor's name and email repeated on each.
  • Split names. Separate first name and last name into their own columns. A single Name column is the most common cause of bad matches.
  • One fact per column. Street, city, state, and ZIP in separate columns. Employer and occupation in separate columns.
  • Numbers as numbers. Remove dollar signs and words like "pledged" from amount columns. Put dates in one consistent format.
  • Tags in one cell. If you use labels such as Host Committee or Board, put them in one Tags column separated by commas. FundraiserMax splits a tag cell on commas, semicolons, or vertical bars.
  • Keep the long notes. A notes column comes across as a note on the contact. You do not have to shorten it.

Decide Where Each Column Goes

Every column ends up in one of four places: a standard field, a custom field, a tag, or a note. Decide before you import, because custom fields have to exist before the import can fill them.

Spreadsheet columnWhere it goes
First, Last, Email, Phone, AddressStandard contact fields
Employer, OccupationStandard contact fields, used for itemization
Gift Amount, Gift Date, MethodDonation fields
Pledge AmountPledge, with the balance still to collect
Precinct, Volunteer Shift, T-Shirt SizeCustom fields you create first
Host Committee, Board, Event GuestTags
Call NotesNote on the contact

In FundraiserMax, owners, admins, and managers create custom fields under Settings, Custom fields. Each one is text, a number, a date, or a pick list, on either contacts or donations. A pick-list value in the spreadsheet has to match one of the options you set up, ignoring capitalization and spacing. Values that do not match are reported after the import instead of being stored as something else.

Understand How Duplicates Are Matched

When you import into a CRM that already has contacts, or when the same person appears on two tabs, the import has to decide whether a row is a new person or someone it already knows. In FundraiserMax the check goes in this order:

  1. Any email address on the row matches an email already on a contact.
  2. If no email matched, any phone number on the row matches one already on a contact.
  3. If neither matched, the first and last name match exactly.

A row that matches adds to the existing contact instead of creating a second one. Its tags are added, its note is appended, and its gifts land on that contact. The import reports how many rows matched and on what.

The name rule has one consequence to plan for. Two different people with the same first and last name, and no email or phone on either row, will be treated as one person. If your list has two John Smiths, give each an email or phone number before importing, or import one and add the other by hand.

After the import finishes, a duplicate scan looks across the account for likely duplicates the row-by-row matching missed, such as the same person with a nickname, and lists them for you to review and merge.

Import Contacts, Then Gifts

Bring in contacts first so every gift has a person to land on. Then import donations and pledges. Each gift row should carry the donor's email or name so it matches the contact you just created. An Excel workbook with several tabs can go in as one file, and each tab is mapped on its own.

During mapping, column headers are matched to fields automatically where the names are clear. Check each one, correct the misses, and point your custom columns at the custom fields you created.

Run a Test With Twenty Rows

Before importing the whole list, copy twenty rows into a new file, including a few you know are tricky: a donor on two tabs, a pledge with a partial payment, a row with an odd date. Import that file and look at the result.

  • The import history shows how many rows came in, how many matched existing contacts, and how many were skipped and why. Skipped rows can be downloaded so you can fix and re-import them.
  • Open three or four of the imported contacts and check every field, tag, and note.
  • If something went wrong, undo the import. That removes the contacts the import created, and you can fix the file and try again.

Fifteen minutes on a test file saves an evening of cleanup on the real one.

Problems You Are Likely to Hit

  • Header row in the wrong place. Many spreadsheets have a title or a blank row above the column names. Tell the import which row holds the headers so the rows above it are skipped.
  • Dates that read as text. A column with "Oct 12" in some rows and "10/12/2026" in others will have rows that do not come across. Pick one format and apply it to the whole column before you export.
  • Amounts with notes in them. A cell that says "250 (check pending)" is not a number. Move the note to its own column.
  • Households in one row. "John and Mary Lee" on one row with one email is one contact. If they give separately, split them into two rows, each with its own gifts.
  • Organizations mixed in with people. Gifts from a PAC, a business, or a foundation should be marked as organizations so contribution limits and itemization treat them correctly. A Contact Type column handles it, and PAC or Committee values are read as organizations.

Check the Numbers Afterward

When the full import is done, compare it with the original spreadsheet:

  • Counts. The number of contacts should equal the number of unique people in the sheet, minus any rows that were skipped or matched as duplicates.
  • Totals. Total gifts in the CRM for the period should equal the sum of the amount column in the sheet. If they differ, sort by amount and look for the rows that did not come across.
  • Spot checks. Pick ten donors at random and compare their records field by field, including the largest donor and one you know gave several times.
  • Filing fields. Run the pre-filing checklist and look for itemized donors still missing employer or occupation. That list is what the treasurer will ask about first.

After the Cutover

Set the old spreadsheet to read-only and leave it where people can find it. Within a week, build the lists the team used to keep by hand, such as lapsed donors, pledges with a balance, and event guests who have not given, as smart lists. They rebuild from current records, so nobody has to maintain them.

The first time someone asks for a number they used to pull from the sheet, show them where it is in the CRM. That habit, more than the import itself, is what makes the move stick.

Checklist

  • Copy the spreadsheet and set a cutover day.
  • Split names and addresses into separate columns.
  • Put gifts one per row with the donor's email or name.
  • Create custom fields for nonstandard columns.
  • Give same-name donors an email or phone.
  • Import twenty rows, check them, and undo if needed.
  • Import contacts, then gifts and pledges.
  • Compare counts and totals with the original.
  • Review the duplicate scan and merge.
  • Make the spreadsheet read-only.

If you are still deciding whether to move at all, our comparison of a donor CRM and a spreadsheet covers when staying put is the right call. When you are ready, FundraiserMax has a 14-day free trial with no card required, long enough to import your list and check it against the original. Contact management describes what the records look like once the data is in.

Tags: data migration, donor database, fundraising software, data import

Related Articles