
If you’re planning on elevating your CRM game from spreadsheets to Salesforce, you’ll need a solid CRM migration plan to ensure nothing gets left behind. Many companies start with a Google Sheets CRM before moving into a full platform like Salesforce. With the right spreadsheet CRM automation, teams can automate follow ups, track deals, and manage contacts without purchasing expensive CRM licenses right away. The move from spreadsheet to CRM is a drastic one as the data structure, while similar aesthetically, is vastly different behind the scenes. Spreadsheets are flat and the rows that comprise them generally do not carry a relationship with other rows within the workbook. CRMs like Salesforce, HubSpot and others use a relational database model.
This involves using multiple tables to relate rows of data. Knowing this, you’ll want to structure your spreadsheet accordingly to ensure a smooth import. In this article, I’ll step you through how to successfully get your data out of Sheets into Salesforce.
Your spreadsheet will need to “speak” Salesforce before smashing the import button. This is where mapping becomes crucial. You’ll want to take your custom column names and point them to the right area.
Pro tip: Salesforce uses objects, while your spreadsheet might call them tabs or sheets. They function the same way.
Your spreadsheet may look something like this.
| Name | Phone | Company | Deal | Status | Notes |
|---|
This is ok in Sheets, but in Salesforce, this data will be split into multiple objects. For example, Name, Email, Phone will reside in the Contact object. Notes will go into the Comments object and so will Company.
A single sheet within a workbook could fall into these separate Objects in Salesforce:
As such, the first decision you need to make is what each sheet in your workbook represents. In most cases, the easiest path is importing everything into Leads first, then converting those leads into Accounts, Contacts, and Opportunities within Salesforce.
I’ve written at length about the importance of cleaning CRM data regularly. And, I’ve published a free CRM data cleaning tool for you to use prior to your import. Before any migration, I always recommend performing proper CRM data cleaning. As with any CRM migration, garbage in, garbage out. Before importing anything into Salesforce, clean your spreadsheet.
Here are the most common issues I see when people migrate from Google Sheets:
Fix these before exporting, or you’ll just end up with expensive messy data.
The order in which you import is one of the most important factors of the whole process. To get your records to relate to one another, you’ll need their record Id. This unique Id can only be obtained from Salesforce after a record is created. Because of this, parent records generally need to be imported before their children.
Import order varies from org to org but a general rule of them is to import the people who create the records first. Then, the records that house customers (leads, companies, contacts). Finally, import the records that track activity (notes, opportunities, cases, etc.).
Here’s what a typical import order looks like.
It’s important to learn the landscape of the environment you’ll be working in. Salesforce, like many applications, uses Objects to house various types of data. Each one of these objects serves a specific purpose that you’ll want to fully understand before adding a single kilobyte of data to the new system.
| Object | Purpose |
|---|---|
| Leads | Potential customers |
| Accounts | Companies |
| Contacts | People |
| Opportunities | Deals |
| Activities | Calls, emails, tasks |
Simplier migrations from spreadsheets follow this flow:
This approach preserves relationships and avoids import headaches.
Field mapping is the most important part of the migration. If your mapping is wrong, your data will be messy in Salesforce and hard to fix later.
Here is a basic mapping example for importing Leads:
| Google Sheets Column | Salesforce Field | Object |
|---|---|---|
| First Name | FirstName | Lead |
| Last Name | LastName | Lead |
| Lead | ||
| Phone | Phone | Lead |
| Company | Company | Lead |
| Title | Title | Lead |
| Status | Lead Status | Lead |
| Lead Source | Lead Source | Lead |
| Notes | Description | Lead |
If you have additional columns in your spreadsheet that don’t exist in Salesforce, they can still be imported. But, you’ll first need to create them as custom fields.
Examples of custom fields you might need:
Build the field before trying to map them in an import.
Once you Google Sheet is cleaned, de-duped, mapped, and ready, you’ll want to export it is as a CSV file. To do this, follow these steps.
Make sure:
There are dozens of great tools out there to assist you in your migration efforts. I’ve tried more than I can remember but the below tools are staples for any of my migration projects. If you’re migrating open source platforms like vTiger or SuiteCRM, the process is very similar. I’ve also worked on Dynamics 365 migration projects which follow similar migration principles.
When performing larger migrations, it’s important to understand the difference between the Salesforce Record ID and what many people refer to as a Reference ID or External ID.
The Salesforce Record ID is the unique identifier generated by Salesforce when a record is created. This ID is used to relate records together. For example, a Contact relates to an Account using the AccountId field, and an Opportunity also relates to an Account using the AccountId field. During migrations, this becomes important because child records cannot be related to parent records unless the parent record already exists and has a Salesforce Record ID. It can get messy if this relationship is not preserved.
To get around this, many migrations use External ID fields. An External ID allows you to assign your own unique identifier to a record and then use that identifier to relate records during import. This makes migrations a bit easier than other systems like vTiger and SuiteCRM which require you to use IDs generated by them.
The easiest way to import spreadsheet data into Salesforce is the Data Import Wizard.
Steps:
The Data Import Wizard works well for:
For very large imports (in excess of 50k records), you would use Data Loader instead. It can handle around 5 million records.
Here are some of the most common issues I see when migrating from spreadsheets to Salesforce:
Most import failures are due to picklist values not matching exactly or required fields being blank. For example, WebSite vs web_site.
Some teams continue to use Google Sheets even after moving to Salesforce. They do this for a myriad of reasons but the most common is to save on license costs. Salesforce is great but buy enough licenses and it’ll look like a monthly payment for a Lamborghini. By using a single service account and taking data from Google Sheets automatically, you avoid having to buy extra licenses.
You can connect Google Sheets and Salesforce using the below tools:
Common integrations include:
This allows teams to keep using Sheets while Salesforce becomes the system of record.
Here’s a quick checklist for moving from Google Sheets to Salesforce:
Moving from Google Sheets to Salesforce is generally a sign that your business is growing and your needs have matured. Sheets are great, but do not scale like a CRM. With any migration the biggest challenge you will face isn’t the import itself, rather, the prep work.
Structuring, cleaning, and making sense of a massive spreadsheet that many people have worked on for months and years takes tons of time and effort. But, by following the steps outlined in this article, you can help ensure that your data makes it safely to its new home.
If you’re working through different CRM systems, the migration concepts remain very similar across platforms. Whether you’re migrating open source, planning a Dynamics 365 migration, building a spreadsheet CRM automation, or cleaning up your existing data with CRM data cleaning, the most important part of any migration is always the preparation and data structure.
If you’re planning a CRM migration or want to collaborate with me on a project, I’m only a DM away on LinkedIn or any of the other socials listed below.

Posted by: Matt Irving on 04/01/2026