- A spreadsheet stops working when several people edit it at once and nobody knows which version is current.
- Before importing, gather every source, remove duplicates, put phone numbers in international format and check the legal basis for each contact.
- Map every column to a CRM field, import a small test batch first, then the rest.
- Every contact needs an owner, and the old spreadsheet should be frozen as read-only from an agreed cutover date.
- A short training session and a launch checklist keep the team from drifting back to old habits.
On this page
- Signs you've outgrown the spreadsheet
- Inventory: where your data lives today
- Cleanup: the step that decides the outcome
- Mapping: columns to fields
- Import in batches and test
- Tags and segments
- Give every contact an owner
- Transition period and freezing the spreadsheet
- Training: short and hands-on
- Migration checklist
- Frequently asked questions
Almost every business starts selling with a spreadsheet. One column for the name, one for the phone number, one for "status," and after a few months a "notes" column that holds everything that didn't fit anywhere else. It works fine while one person handles customers and only a handful of new leads come in each week.
The trouble creeps in slowly: copies on laptops, extra tabs, rows highlighted in yellow with no explanation. When you finally move to a CRM, the temptation is to export everything and hit import. That's where a lot of migrations go wrong: the spreadsheet's problems move into the new system, and the team decides the CRM "doesn't work."
This guide walks you through the move step by step, from inventory to final checklist. If you haven't picked a tool yet, start with how to choose a CRM, and for the bigger picture see the complete CRM guide for small businesses.
Signs you've outgrown the spreadsheet
There's no magic number of contacts that tells you it's time. The signs show up in how your team works:
- Nobody knows which version is right. There's "customers_final.xlsx," "customers_final_v2.xlsx" and a copy sitting in someone's inbox.
- Follow-ups slip through the cracks. A quote sent on Tuesday needed a check-in on Friday and nobody remembered, because a spreadsheet doesn't send reminders.
- Conversations live somewhere else. The customer history is in one person's WhatsApp, another person's email and a pile of sticky notes. The spreadsheet holds a summary at best.
- You can't say how many proposals are open or who owns each account.
- The team has grown. Several people editing the same file at the same time is a recipe for conflicts.
If two or three of these sound familiar, switching will save you work. A CRM keeps contacts, conversations, tasks and your sales pipeline in one place, with a clear history and a clear owner for every record.
Inventory: where your data lives today
Before you clean anything, list every source. Most teams find more than they expected.
- Main spreadsheets and their copies. Ask each person on the team which files they use, including anything saved locally.
- Phone contacts and WhatsApp. Plenty of deals start there and never make it into the sheet.
- Email inboxes. Customers who only exist in a thread.
- Website forms and social media. Exports of contact requests and messages from Instagram or Facebook.
- Billing system or online store. People who already bought from you and should come in as customers, not leads.
For each source, write down who owns it, what columns it has and how old the data is. A trade show list from five years ago may not be worth importing at all.
Cleanup: the step that decides the outcome
Cleanup is the most tedious part, and it has the biggest effect on the result. A CRM full of messy data is just a more expensive spreadsheet.
Duplicates
Pull every source into a single tab and sort by email, then by phone. Duplicates are rarely identical: "Sarah Miller" with a cell number in one file and "Sarah J. Miller" with an email in another are probably the same person. A few rules:
- Use email and phone as your main matching keys, not the name.
- When you merge two records, keep the most recent information and combine the notes.
- If you're not sure, don't merge. Flag it as "check" and decide later with whoever knows the customer.
Phone numbers in international format
This matters a lot if you plan to send WhatsApp messages or texts from the CRM. A number saved as "(555) 123-4567" works when you dial from the US, but a messaging system needs to know the country. Put every number in international format:
- Always start with "+" and the country code: +1 for the US and Canada, +44 for the UK, +52 for Mexico.
- Remove spaces, dots, dashes and parentheses.
- Strip international dialing prefixes such as "011" or "00" that someone typed in front of the country code.
- If you have customers in several countries, add a "country" column before you normalize, so you don't apply the wrong code.
Example: "(555) 123-4567" becomes "+15551234567".
Email addresses
- Convert everything to lowercase and trim leading and trailing spaces.
- Look for obvious domain typos like "gmial" or "hotmal."
- If a cell has two emails, pick the main one and store the other in its own field.
Consent and privacy rules
Moving personal data doesn't change your obligations. In the US, commercial email is governed by the CAN-SPAM Act; the FTC's compliance guide covers requirements such as honoring opt-out requests. If you have contacts in Europe, the GDPR requires a legal basis for processing each person's data, and consent is only one of them. Texting has its own rules, too. For the migration itself:
- Add a "marketing consent" or "opt-in status" column with clear values: yes, no, unknown.
- Where you know it, record the date and source of consent (web form, contract, event).
- Keep a list of everyone who has unsubscribed and make sure that status comes across, so nobody gets re-added to campaigns by mistake.
- Contacts marked "unknown" can still be stored, but leave them out of campaigns until you've checked.
- Use the moment to delete data you have no reason to keep. Less data means less risk.
This article isn't legal advice. If you're unsure, check with whoever handles privacy and compliance at your company.
Mapping: columns to fields
With clean data, decide where each column goes. Do it in a simple table before you open the importer. Here's a template you can adapt:
| Spreadsheet column | CRM field | Expected format | Notes |
|---|---|---|---|
| First name | First name | Text | Split first and last name if they're in one cell |
| Last name | Last name | Text | |
| Cell | Phone | +15551234567 | Always with country code |
| lowercase | One email per field | ||
| Company | Company | Text | |
| Status | Pipeline stage | Fixed list | Turn "hot," "warm" into real stages |
| Source | Source | Fixed list | Website, Instagram, referral, trade show |
| Rep | Owner | CRM user | Name must match the user account |
| Notes | Note | Free text | Only what's still useful |
| Yellow highlight | Tag | Text | Find out what the color meant |
| Opt-in | Marketing consent | Yes / No / Unknown | With date, if available |
Standardize fixed lists before importing ("insta," "Instagram" and "IG" become one value), and remember that colors, comments and formulas don't import: anything that carries meaning has to become text in a column.
Import in batches and test
Don't import everything at once. Export the cleaned sheet as CSV and follow this order:
- Test batch. Pick a small sample that includes the tricky cases: names with accents or apostrophes, international numbers, contacts with no email, a customer at an advanced pipeline stage.
- Check record by record. Open the imported contacts in the CRM. Do special characters display correctly? Does the phone have a country code? Is the right owner assigned? Is the pipeline stage correct?
- Fix it at the source. If something broke, correct the file or the mapping, not individual contacts in the CRM. Delete the test batch and run it again.
- Import by source or segment. Active customers first, then recent leads, then historical records. Keep each batch file with the date in the filename.
A common problem is garbled characters where accents should be. Saving the CSV with UTF-8 encoding usually fixes it. The help center has a step-by-step guide to importing contacts and the formats it accepts.
Tags and segments
In the spreadsheet, customer groups were tabs, colors or filters. In the CRM they become tags and segments, and it's worth planning them before you import.
- Tags describe characteristics: "customer," "partner," "interested in training," "trade show 2026." Keep the list short and agree on how tags are written. Twenty well-used tags beat two hundred made up on the fly.
- Segments are groups that update themselves based on rules: for example, every contact tagged "customer" with no purchase in recent months. Once they're set up, they stop being manual work.
Add a tag such as "imported-sheet-oct2026" to every batch so you can isolate and review those contacts later.
Give every contact an owner
In the CRM, every contact should have an owner. That's what makes sure someone gets the follow-up task.
- Agree on simple rules: whoever responded first owns the contact; active customers keep their current owner; unassigned leads go to one person who distributes them.
- Create user accounts in the CRM before importing, so the "owner" field can be filled in right away.
- Set permissions for each person. Not everyone needs to see or delete everything.
Every Elooo CRM plan includes unlimited users, so there's no reason to share logins to save on seats: everyone gets their own access and the history shows who did what. You can see what each plan includes on the plans and pricing page.
Transition period and freezing the spreadsheet
The riskiest moment isn't the import, it's the week after. If the spreadsheet stays editable, someone will add a row "just this once," and suddenly you have two sources of truth.
- Pick a cutover date and announce it ahead of time.
- Until that date, the spreadsheet is still the reference and the CRM is in testing.
- On cutover day, do one last import of recent changes.
- After that, freeze the spreadsheet: make it read-only, rename it with "archive" and the date, and remove edit access.
- Keep the archive copy for a while, then delete what you no longer have a reason to keep.
Training: short and hands-on
Your team doesn't need to learn every feature on day one. They need to be good at what they used to do in the spreadsheet: finding and adding contacts, logging notes, moving deals through the pipeline and completing follow-up tasks.
Train with your own imported data. Record the session or write a one-page set of house rules: how tags are written, which stages exist, who owns what. Every Elooo CRM plan starts with a welcome meeting, and Enterprise includes live training for your team. To see everything the platform brings together in one place, take a look at what Elooo CRM is.
Migration checklist
Preparation
- List of every data source, with owner and date.
- Cutover date set and announced.
Cleanup
- Duplicates found and merged (or flagged for review).
- Phone numbers in international format, with country code.
- Emails in lowercase, one per field, no obvious typos.
- Consent or opt-in column filled in, unsubscribes carried over.
Mapping and import
- Column-to-field mapping table finished.
- Fixed lists standardized (status, source, owner).
- Test batch imported and checked.
- Batches imported in order, each with an import tag.
Launch
- Main tags and segments created.
- Every contact has an owner.
- Spreadsheet frozen as read-only after cutover.
- Training done and house rules written down.
The mistakes that sink most migrations are predictable: importing first and cleaning later, bringing every column "just in case," and leaving the spreadsheet alive next to the CRM. A good migration isn't the one that imports the most contacts. It's the one where your team trusts the data from day one. With a proper inventory, careful cleanup and a cutover date everyone respects, the spreadsheet can finally go into the archive.
Ready to stop losing sales to missing process?
See the plans or talk to us on WhatsApp. Access in minutes after payment, with a welcome meeting included.
Frequently asked questions
Can I import my Excel or Google Sheets file straight into a CRM?
Yes, as long as you export it as CSV or another format the importer accepts. The important part is cleaning and organizing the columns first, because the CRM imports mistakes exactly as they are.
How long does a migration like this take?
It depends on how many sources you have and how messy the data is. A small team with one tidy spreadsheet can do it in a day; several files with duplicates and mixed formats need more cleanup time.
Can I import contacts who never opted in?
You can usually store contacts you have a genuine business relationship with, but sending marketing to them depends on the rules that apply to you. If you're unsure, tag those contacts separately and keep them out of campaigns until you've checked.
What should I do with the spreadsheet after migrating?
Freeze it: make it read-only, save a dated archive copy and agree with the team that nothing new goes in after the cutover date. Once you're confident nothing was missed, delete copies you no longer need.
Does Elooo CRM limit the number of contacts or users?
No. Every plan includes unlimited users and contacts, so you can import your whole list and give your entire team access.