Guide
How to move from spreadsheets to a CRM

Most teams start their customer list in a spreadsheet, and it works until it doesn’t. A second tab appears for leads, a third for this year’s deals, somebody saves a copy to their own drive, and two people call the same customer in one afternoon because neither could see the other’s note.
This guide moves that spreadsheet into a CRM in about a week, without losing rows and without a day when nobody knows where to look.
Signs a team has outgrown the sheet
- More than two or three people edit it, and changes cross.
- There is more than one copy, and they disagree.
- You cannot tell who owns a customer, or who spoke to them last.
- Notes live in a cell, in email, or in somebody’s head.
- Support questions and sales conversations about the same customer are in different places.
Step 1: Gather every copy
Collect every sheet that holds customers: the main one, the leads tab, last year’s event list, the copy on a colleague’s drive. Decide which one wins where they disagree. Usually it is the one edited most recently by the person who owns that customer.
Step 2: Clean the file
Work in a copy and keep the original untouched.
- One row per person. A row for a company with three names in one cell becomes three rows.
- An email address on every row. A CRM that keys contacts on their address cannot import a row without one. Set those rows aside and fill them in later.
- One column per kind of fact. First name and last name, or one name column; company; phone; status. Remove merged cells and color-coding the CRM cannot read, and turn the color into a column (“status: lost”) if it meant something.
- Phone numbers with their country code if your customers are in more than one country, such as +1 615 555 0100.
- Remove obvious duplicates, the same address twice.
Save the result as a CSV file, with the column names in the first line.
Step 3: Decide what each column becomes
Before the import, write down where each column goes: email, name, company, phone, status, and any column that needs a custom field of its own. Leave out columns nobody has used in a year.
If some of your contacts agreed to marketing email, keep that as its own column, and keep a note of how and when they agreed: a CRM that takes consent seriously asks for the evidence.
Step 4: Import, and read the preview
A good import shows what it will do before it writes anything. In ContactRoll, an import lists each row as a new contact, a contact already here (and whether its blank fields are filled in or left as they are), or a row refused with its reason. Rows that fail come back as their own CSV file with a column saying why, so you fix them and import that file again.
Import a hundred rows first, check them on the contact pages, then import the rest.
Step 5: Check companies, owners and duplicates
- Companies. Make sure people at the same company are grouped under one company, not three spellings of it.
- Owners. Give each customer an owner, so the CRM can show each person their own.
- Duplicates. Two rows for one person under two addresses become two contacts. Look for likely duplicates and merge them, choosing field by field what to keep.
Step 6: Bring in the history that matters
A spreadsheet rarely has the conversation history. Do not try to copy years of email into the CRM. Add a short note to each important customer with what someone new would need to know, and let the history build from today. Email and calls from now on land on the customer’s timeline.
Step 7: Stop editing the sheet
Pick a day. From that day the sheet is read-only, with a note at the top saying where the customers are now. Keep it for a month for comparison, then archive it. Two live copies is the problem you started with.
Step 8: Set up who sees what
For a team of 10 to 25, decide who sees every customer and who sees only their own or their team’s, before you invite everyone. It is easier to widen access later than to take it back.
Where ContactRoll fits
ContactRoll imports contacts from a CSV file of up to 2,000 rows at a time, reads files exported from HubSpot, Pipedrive, Salesforce and Zoho CRM with their own column names, shows each row’s outcome before it writes anything, and hands back the rows that failed. Duplicates can be found and merged field by field, and custom fields hold the columns that are yours alone. Each customer then has one timeline of emails, calls, cases, deals and notes.
See every feature and the plans. The step-by-step import is in the help article Import your contacts from a CSV file.
Questions
When should a small team move from spreadsheets to a CRM?
When more than two or three people edit the customer sheet, when two copies of it disagree, or when you cannot tell from the sheet who last spoke to a customer and what they said. For a team of 10 to 25 that point has usually passed.
How long does it take to move from a spreadsheet to a CRM?
For a few thousand rows, about a week of part-time work: a day to clean the file, an hour to import it, a day or two to check duplicates and owners, and a few days of the team using the CRM while the sheet is still there to compare.
What happens to rows without an email address?
Many CRMs, ContactRoll among them, key a contact on its email address, so a row without one cannot be imported as a contact. Find the address, or keep those rows aside as a list to complete before the import.
Can I import a file exported from another CRM?
Usually, as a CSV file. ContactRoll reads files exported from HubSpot, Pipedrive, Salesforce and Zoho CRM with their own column names, including company and phone columns.