Prepare Your Data for Import

When you’re starting a data import project, take the time you need to make sure that the data you’re going to import is correct, clean, de-duplicated, and error-free. This important step will avoid “garbage in, garbage out,” as they say.

You should also prepare yourself to spend a lot of time in spreadsheets and CSVs. About 99% of the time you spend on an import will be outside of Salesforce, making sure your data is ready. To help with that process, we created NPSP Data Importer templates with the instructions and column headers you need to format your data for either a simple import or advanced mapping features. Download the templates from the link in the Resources section below to use with your own data when you import for real after practicing in this module. 

Consider the challenges here as a test import similar to what you’ll want to do in your own Salesforce org. While you may have large datasets to import, we recommend first starting any import with a single record (or just a few, depending on the situation) to make sure you have the formatting correct and to first practice the import in a Sandbox and not your main Salesforce org. 

For your use in completing the challenges, we’re providing 10 records already entered and formatted in a CSV file. We’re keeping it simple in this module without mapping custom fields and importing a small number of records. First, download one of the sample CSV files and save them to a convenient place like your desktop. If your locale formats dates as month/day/year, download this file; but if your locale uses the day/month/year date format, download this file. (You can learn more about locales in the documentation link in Resources.)

Once you have the file downloaded and open, move ahead to the next section.



In this project we’ll be using the Salesforce Data Import Wizard to get the data into the NPSP Data Import staging object—though, depending on your needs, you may want to use Salesforce Data Loader,, or another tool. The template linked in Resources has a tab formatted for either Data Import Wizard or Salesforce Data Loader.

Understand and Use the Template

The data you just downloaded is in a relatively simple table of supported objects and fields.

The downloaded data opened in a spreadsheet program, with 11 rows, including header.

Each column header corresponds to a field in the NPSP data import object that will temporarily house your data as you prepare for final import to contacts, accounts, and other objects. It’s best to line up these column headers with the fields in the NPSP data import object to save yourself time mapping columns when the data is in Salesforce.

Here’s how a few of the fields line up in the template, data import object, and contact object.

Template Column Header

Data Import Object Field

Contact Object Field

Contact1 First Name

Contact1 First Name

First Name

Contact1 Last Name

Contact1 Last Name

Last Name

Contact1 Title

Contact1 Title


Contact1 Personal Email

Contact1 Personal Email

Personal Email

Contact1 Preferred Email

Contact1 Preferred Email

Preferred Email

Contact1 Home Phone

Contact1 Home Phone

Home Phone

Why “Contact1” in field names? We’ll get to that in the next section, but first you should know that if you need more objects or fields you can add those through Advanced Mapping in NPSP Data Importer. We won’t dive into that in this project, but you can check the link in the Resources section if you want to know more.

Looking at the dataset you downloaded again, there is one change you need to make now before you upload the file for import.

  1. Find the row for Amer Shakil.
  2. The value for Contact1 Preferred Email is blank. This is a picklist field in Salesforce that allows for Personal, Work, or Alternate as values by default.
  3. Enter Work in Amer Shakil’s Contact1 Preferred Email.
  4. Save the template as a CSV somewhere it will be easy to find, like your desktop. You’ll need this file in the next step.

How to Use The Template in Specific Situations

You probably noticed the extra columns in the dataset you just edited. See the details below to learn how you can use them. (And, if you want more documentation on what different fields do or what values are accepted, download the blank template from the link in Resources.)

If you want to add second, third, or more household members: Use the Contact2 fields on several rows with the same primary contact in the Contact1 fields. If Contact1 matches on the first name, last name, email, or legacy ID, NPSP Data Importer will add each Contact2 to the same household account and not create duplicates. See the rows where Haley Brown is Contact1 as an example where we are adding three more contacts to her household.

Spreadsheet with three rows where Haley Brown is Contact1, each with a different name in Contact2

If you want to add multiple donations for the same contact: Use the same Contact1 fields on several rows with different data in the Donation fields. The same matching rules apply as with household members. See the rows where Yasin Callahan is Contact1 as an example, recording two $50 gifts on different days.

Spreadsheet with two rows where Yasin Callahan is Contact1 with two donations on different dates.

If you want to add opportunities other than donations, such as grants or memberships: Designate the record type in the Donation Record Type Name field. The template is set up for the values Donation, Grant, In-Kind Gift, Major Gift, Matching Gift, or Membership. See the row where Tabitha Maldonado is Contact1 and her employer, Electric Lighting Systems (ELS), is Account1 as an example.

Spreadsheet listing a Donation Record Type Name of “Matching Gift”

If you want to add a donation from an account, not a contact: In the column with the Donation Donor header, you can set the donation to come from either Contact1 or Account1. Use Contact1 to record a donation for an individual and the person's household, and use Account1 for organization donations. See the row where there is no Contact1 and Green’s Antique Farm is in the Account1 Name field for an example of an organization donation. (One quick note: you can only set Contact1 or Account1 as the donation donor—Contact2 and Account2 won't work.)

Spreadsheet listing no contact name but an Account1 Name of Green’s Antique Farm and a Donation Donor set to Account1

Before We Move On

To demonstrate how the matching rules work, you need to create a new contact that we’ll be updating through NPSP Data Importer. Go to your Trailhead Playground, then:

  1. Click the App Launcher (App Launcher) and find and select Contacts.
  2. Click New.
  3. In the First Name field enter Haley.
  4. In the Last Name field enter Brown.
  5. In the Personal Email field enter
  6. Click Save.

You just created a contact record for Haley Brown and NPSP created a household account for her, as well. We'll be adding members to that household soon with our import.

That’s all for this step. Select the Playground to which you added Haley Brown’s contact in the drop down below and click Verify, then move on to the next step.