Integration with Salesforce by Manual Upload

A headshot for Jay Mehta, Prolocity's PROserve Essential lead

Jay Mehta
PROserve Essentials Lead

Most organizations start integrating Salesforce with old-fashioned manual import. Usually, this takes the form of building a spreadsheet that contains the data you need to import, and then using a tool like Salesforce's Apex Data Loader or a cloud-based service like JetStream (which we're big fans of) to load the records on a regular basis–for example, uploading new donations monthly.

There are some nuances here, however. Are you an NPSP org trying to import donations into your system? If so, you might want to use the NPSP Data Importer with its Salesforce-provided template, because doing that allows you to import Household Accounts, Contacts, and Opportunity (Donation) records all in one process, while scanning the imported records for duplicates. Are you importing a few new Leads or Contacts? You might want to use the built-in Data Import Wizard. Do you need to bulk update records based on certain criteria? A third-party tool might be best. We'll walk through some of those options.

But before we do anything, a word of caution. Using import tools to import and update records can cause permanent, potentially irrecoverable damage to your database. It's a good idea to keep any import files you use when performing imports and updates, and to make sure you have a backup strategy (even if that's just using Salesforce's integrated data export functionality).

Using Data Import Wizard

Data Import Wizard's primary advantage is that it's integrated directly into Salesforce, located in the Setup section. So, if you're an admin with access to Setup, you can perform imports without ever leaving your browser, with no need to install any additional software.

Data Import Wizard allows you to import records found in a CSV file into a single standard or custom object at a time. You can create new records, update existing records, or create and update records at the same time (this is also called an Upsert–Salesforce will update a record if a matching one is found, and create one if it is not). To access it, click the setup icon (the gear) at the top right of the screen, and select Data Import Wizard.

From there, Salesforce will walk you through the process of selecting an object to load data into, picking the operation you want to perform (inserting new records, updating existing records, or updating a record if a match is found and inserting it if no match exists–often called an Upsert). If you select the Update option, you'll specify which column in your file identifies matching records. This might be an email address for Contacts, or a record ID for a custom object.

After uploading your file, Salesforce will ask you to map the columns in your CSV file to fields on the destination object. A quick tip on this part of the process; if your file's header row labels match the Salesforce column name, Salesforce will automatically map the columns for you.

After you finish mapping and start the import, Data Import Wizard uses the Salesforce Bulk API to run the import in the background–the Wizard will redirect you to the monitoring page to see the results of the operation.

Strengths: integrated into Salesforce Setup, allows records to be imported without triggering automations like Flow.
Weaknesses: only allows import of up to 50,000 records per operation run, can only import records into one object at a time.
Bottom line: the easiest way for admins to quickly get records into a single object.

Using Data Loader

Data Loader is available as a free download from Salesforce. Installation requires downloading both the Data Loader package and a Java Virtual Machine. This means that if you're using a system that doesn't allow you to install software, Data Loader may not be a viable option for you.

If you can use it, Data Loader allows you to import far more records than Data Import Wizard–up to five million at a time. Data Loader also automatically executes automations that run when importing records–you have to remember to check a box to do this when using Data Import Wizard. Data Loader also has a few more tricks that Data Import Wizard doesn't–it can bulk Delete or Hard Delete records, and also bulk Export records.

Quick Aside: What's the difference between Delete and Hard Delete?

Deleting a record in Salesforce has two stages–soft and hard delete. Normally, when a user deletes a record, that record, is soft deleted, which means Salesforce moves the record to the recycle bin, allowing you to recover it. Eventually, records reach a threshold for hard deletion, which is when the record is actually removed from the database permanently and can no longer be recovered. So, if you know you want to remove records from the database immediately and permanently, you can perform a Hard Delete operation with Data Loader.

Basically, everything you can do with Data Import Wizard, you can do bigger, better, and potentially faster (because you can change import batch sizes and the import API you're using) with Data Loader. If you're a Windows user, you can even schedule Data Loader operations using the Windows command line, enabling scheduled uploads that, for example, scan a folder for a file that's uploaded by another process and then import its data.

Strengths: allows import of up to 5m records in one operation. Can perform all the same actions as Data Import Wizard, plus Delete, Hard Delete, Export, and Export All records. On Windows machines, can be used via the command line to schedule operations. Great flexibility on how records are imported
Weaknesses: requires software installation, which is not the most user-friendly. only works with CSV files.
Bottom line: it's powerful but can be cumbersome if you're not used to its quirks

Importing Data with Data Loader

Exporting and Bulk Deleting Data

For Non-Profits Only: Using the NPSP Data Importer

Non-profits that use NPSP and need to import donation data may be well served by the NPSP Data Importer, which is a built-in tool that's designed to import donation data and match donors against existing accounts/contacts, and create the necessary opportunity and payment records all in one shot. As long as you get the data into the right format,

The first step is to download the appropriate template file. You'll notice that you have four options:

  1. Accounts and Contacts import–useful if you only need to create Household Accounts and Contacts, with no donation data. We often use this in setting up a new NPSP based Salesforce org to do the initial data import
  2. Donation Import (Individuals): Useful for importing single gifts where the donor is an individual (for example, gifts given by cash or check).
  3. Donation Import (Organizations): Useful for importing single gifts where the donor is a company (for example, major gifts or grants)
  4. Recurring Donations Import–Useful for importing donations that recur into NPSP's special format.

Each file contains instructions on how to complete the data so that Salesforce can correctly import it using the Data Import Wizard. This process can be involved, depending on the amount of data you need to import and the format you're receiving it in. But, once you've set your file up, you can follow instructions in Salesforce to actually import the records.

Strengths: allows importing households, contacts, and donations in a single operation, and de-duplicates the resulting records on configurable rules. allows a preview of the data to be imported, and a dry run to verify its accuracy and completeness, before actually performing the import
Weaknesses: requires formatting import data into the template file's format exactly. only works with NPSP orgs
Bottom Line: if you're using NPSP, the NPSP data import tool may be the best way to get donation data into the system.

Using a cloud-based tool like JetStream

There are many cloud-based platforms that are designed to push data to and from Salesforce. These often are called ETL tools (standing for Extract, Transform, and Load). Most of these are "freemium" tools, granting access to a level of free usage that then requires a paid license as you load more data (like and Jitterbit), but there's one great admin tool that doesn't have these limits and comes at no cost–the open source JetStream.

JetStream can perform imports and updates, much like Data Loader, but it has some very neat additional tricks like allowing you to bulk update records without using a file at all, instead using criteria like "update all records created this week." Or, think about a scenario where you did a data import and accidentally mismapped your file, placing all your Contacts' first names in the middle name field. Jetstream would allow you to run an update that tells Salesforce to "set first name on all Contacts equal to the middle name field for records created today." While you could accomplish the same task using any of the other tools (by building an import file), JetStream may get you there faster.

Strengths: allows using an Excel file or Google Drive, allows loading to multiple objects at once, allows uploading records without using a file at all, some services come with additional costs.
Weaknesses: requires using a third-party tool, which may be limited by your organization's policies/cost
Bottom Line: third party tools come with a wide variety of capabilities, but may cost extra