If you use Salesforce, you’re going to have to do a data import at some point. Whether it’s to import all of your historical data from an old system or to import a new list of leads, there’s really no getting around it. You’re going to have to figure out a way to get that data outside of Salesforce into Salesforce without entering it by hand.
There’s a lot to consider when importing your data into Salesforce, and it’s best to consider all your options before you pull the trigger on bringing hundreds or thousands of new records into your database.
There are a number of tools you can use to import your data into Salesforce, with different considerations for each, such as which objects you can import and how many records you can insert, so here’s a side-by-side comparison of some of the main tools. Salesforce offers three main ways to import your data: the unified Data Import Wizard, the object-specific import wizards, and the Apex Data Loader.
When to Use a Data Import Wizard vs. Data Loader
Generally, the import wizard is a bit more intuitive and user-friendly. I would default to using that unless you need to load records into an object that isn’t yet supported by the import wizard (e.g., Opportunities), or you need to load more than 50,000 records at a time. The data loader is also limited in its ability to prevent duplicates, which can make it a bit risky to use unless you are updating existing Salesforce data using the Salesforce ID, or you know for certain you are entering entirely new data that would have no chance of already existing in the database.
Third-Party Salesforce Import Tools
There are a number of third-party tools available that can help with data import. Searching for “data import” in the AppExchange will return a number of tools. Some of them connect certain systems or apps to Salesforce, and some are general data loaders that are more robust than Salesforce’s native offerings. I’ll just touch on two tools that Newfangled has used for our import needs at various times: PeopleImport and Act-On.
PeopleImport is a Windows-based program offered by CRMFusion as part of their suite of de-duplication and data cleanliness tools. (We also use the other tools in the suite: DupeBlocker and DemandTools.) PeopleImport allows you to de-dupe against existing leads and contacts (using matching rules you define yourself), assign the list to a specific campaign and add new tasks. It’s a really nice tool, and I used it for a long time for all our data imports before we discovered Act-On.
The marketing automation platform Act-On can insert new leads and de-dupe against existing leads or contacts by matching on email address. This is what we use now to import attendee lists from conferences or events: We can add the contacts to Act-On and use the Act-On/Salesforce connector to sync them with Salesforce. We can also use this sync to add everyone in the list to a specific campaign.
Preparing for Your Import
In order to use any of the data import tools above, you’ll need a CSV file of your data. To prepare that file for final import, there are a few things to think about.
First, you need to fully understand what kind of data you have and how it corresponds to Salesforce objects and their fields. This is a very important step, and one that is often overlooked in the rush to get your data into the system. If you don’t think through the data you have and where it should end up in Salesforce before you import, you could end up with data in the wrong place or missing entirely.
Did you purchase a list of potential prospects? Those people should come in as Leads. Did you do an export of your current and past clients from your old system? You should bring in those companies and people as Accounts and Contacts.
Those are fairly simple import scenarios. Where it gets more complicated is when you have a list that’s a mix of different types of people. Let’s say your old CRM system only had one object to represent people and their companies, called “Contacts.” You can easily export a CSV of all your old system’s Contacts, but it’s a mix of prospect data and client data. Any prospects will require a Lead import. Any client companies and their employees will require an Accounts & Contacts import. You’ll need to split up your bigger list into smaller lists based on the corresponding objects in Salesforce.
Once you’ve determined what type of data you have and what objects it corresponds to, you should take inventory of the fields and column headers in your source data, and the fields available to you in Salesforce on the objects you’ll be importing data into.
If there are fields in your source data that don’t exist in Salesforce, you should decide if that data should come through. If it should, you’ll need to create custom fields to house that data. If you’re bringing in a list of leads and you end up creating any custom fields on the lead object, remember that you need to map your lead custom fields to corresponding custom fields on either the account, contact or opportunity object.
If you’re importing Accounts & Contacts together, think about whether there are certain fields that will need to map to both the account and contact record, such as address data.
You should also think about any fields that aren’t included in your source data, but should be populated with your import. For example, the Lead Status and Lead Source columns should probably be added to your source file if you’re importing Leads.
I suggest putting together a simple spreadsheet that lists your source data fields, the type of data and the corresponding Salesforce field(s). This allows you to quickly see which fields you may need to add or which fields you may not want to import at all. Here is an example of such a document.
Data imports can be frustrating because you often run into errors stemming from requirements that aren’t clear from the specifications of the import tool or Salesforce. Below are just a few errors that I’ve run into before that you should watch out for.
1. State and Country Picklists
Salesforce recently introduced a change to their State and Country fields. Those fields used to be open text fields, but Salesforce now gives you the option of changing these fields to picklists. Newer orgs may already have State and Country picklists turned on, but if you’ve had your org for a while like we have, these fields still might be text areas. To see if you have picklists enabled, go to Setup > Administer Data Management > State and Country Picklists. You’ll see 5 steps required to enable picklists. Under Step 4, you’ll see one of two messages: “State and country picklists have already been enabled” or “Please complete Step 2 and Step 3 before enabling state and country picklists.”
If you’re importing state and country data into your org, you should know which type of field you’re dealing with. If you’re rolling with picklist fields, Salesforce will reject records if the State or Country values in your CSV do not exactly match the values in the Salesforce picklist.
Say you’re trying to import Joe Smith’s data, and you have picklists enabled:
Do you know which values Salesforce is expecting for the state and country columns? Are the values in Joe’s record correct?
To find out, go to Setup > Administer Data Management > State and Country Picklists > Configure States and Countries.
Look at the values under the Country heading — those are the values you want to make sure your data matches. You can click Edit next to a country’s name to be taken to that country’s detail page, where you’ll see the values for States.
In looking at Joe Smith’s data, I notice two things I should change in my import file through find and replace so that I don’t get errors when importing:
- USA → United States
- AZ → Arizona
I could also change the values that Salesforce is expecting, and keep the values in my import file as is. Say for instance I am regularly pulling data from another system that has slightly different values for certain states and countries. I might change the values on Salesforce’s end to minimize the time it takes me to import and the chance of seeing errors.
2. Multiple Street Fields
The standard Address component in Salesforce is made up of a number of fields: Street, City, State, Zip/Postal Code, and Country. We talked about State and Country above, but there’s one last address consideration to take into account when importing. The Street field in Salesforce is actually made up of three lines: Street 1, Street 2, and Street 3. This may be called something different in your import data, e.g. Address 1, Address 2, Unit Number, PO Box, etc. Importing this kind of data into Salesforce can be a bit tricky, depending on the data tool you’re using.
If you’re using an object-specific import wizard, all three street fields will be available separately for you to map to. However, if you’re using the data import wizard or the data loader, there will only be one street field available for mapping. This requires you to format your import data so that your separate street columns are combined into one column, and the street lines in each cell are separated by carriage returns. See this help document for instructions on implementation.
3. Required Fields
Each Salesforce object has certain required fields and, depending on the import tool, if they are not included in your import file, your import will fail. I would recommend adding the following fields to your source data.
- Leads: Lead Status, Company, Last Name
- Contacts: Last Name, Account Name
- Accounts: Account Name
- Opportunities: Opportunity Name, Account Name, Stage, Amount, Close Date
4. Invalid Email Addresses
The import wizard will block any email addresses that are missing @ or .domain. E.g., johnsmith@agency will throw an error, while email@example.com will come through just fine.
Before you introduce a large number of records to your database, I recommend you do a small test import to make sure that your data is importing correctly. In putting together a set of sample data, try to do the following:
- Send data to each field. Each specific record doesn’t necessarily need to have data for every field (although that’s a bonus because it makes it easier to test your data submission), but you should be sending data to each field in your CSV so you can make sure it’s all mapping over correctly.
- Make sure the data is varied. Don’t send records that have the same values for the majority of fields. You’re trying to make sure you don’t have any errors in your data, and you probably won’t find any if you’re only testing a few values.
Naming Your Files
If you’re working on a large data import, it might take you days or weeks to get everything finely tuned and ready for your final import. You’re going to end up with a lot of test CSVs, and when you do the final imports, you’re probably going to end up doing more than one pass to correct any errors. I would highly recommend figuring out a descriptive naming convention for your CSV files so you’re never confused about which the files you should be working with. For example, the last large data import I did involved importing leads, accounts, contacts and opportunities. The client was uploading new files every couple of days as we worked through various issues with their data. I used the following convention when editing their source files for import: Object – description of the file – date.csv.
The Actual Import
Using each tool will be slightly different, but generally the steps for importing are:
- Choose the object you’ll be importing data into.
- Choose your matching convention to prevent duplicates.
- Choose your source file.
- Map your fields.
- Check your error logs.
- Spot-check your live data.
Regarding step 5: The data import wizard and the data loader should both produce a CSV with the results of your import, so you can see what went wrong with any records that failed to import. The error messages are fairly straightforward (e.g., “Required fields are missing: Company”), and should help you fix your source data.
From what I’ve read, only the Enterprise and Unlimited Editions of Salesforce allow access to the “Bulk Data Load Jobs” page, which is where you can view the status of your job and download the results CSV. Just something to keep in mind if you are using Professional Edition or below.
One-Time Imports vs. Continuous Synchronization
A lot of the same considerations for a one-time data import should be taken into account with any continuous synchronizations you set up with existing systems, such as your website’s CMS or marketing automation platform. Make sure you know what data you want to bring in and where it should go before you start bringing live data into Salesforce.
Often when you’re first getting started with Salesforce, there’s a rush to get data into the system so you can start using it. Eagerness to start using Salesforce is great, but I hope this post has given you some reasons to take a moment to consider all the necessary factors before importing live data into your org.