You have a spreadsheet with 300 contacts. Maybe 500. It started as a simple list — name, email, phone number. Then someone added a “Notes” column. Then a “Last Contacted” column. Then a “Status” column that means something different to everyone on your team.
Now the spreadsheet is slow, full of duplicates, and nobody trusts the data. You know you need a CRM. But every time you think about migrating, you picture losing half your contacts in a botched import and having to rebuild everything from scratch.
Here’s the good news: moving your contacts to a CRM is far easier than you think. If you can export a CSV file, you can do this. This guide walks you through every step.
Why now? The spreadsheet ceiling is real
Spreadsheets work great for about 100 contacts. Past that, things start breaking in predictable ways:
Duplicates multiply. Someone adds “Acme Corp” and someone else adds “ACME Corporation.” Now you have two records for the same company, each with different contact details. Nobody knows which one is current.
History disappears. You sent a proposal to a client last March. Where is it? In your email. Your colleague’s notes are in their email. The spreadsheet just says “proposal sent” with no date, no details, and no way to find the actual document.
Team visibility is zero. Your sales rep spoke to a lead yesterday, but you don’t know that. You call the same lead today and ask the same questions. The lead thinks your company is disorganized. They’re right.
Sorting and filtering hit their limits. When you need to find “all contacts in logistics who we haven’t spoken to in 60 days,” that’s a pivot table project, not a quick filter. In a CRM, it’s a two-click search.
If any of this sounds familiar, the spreadsheet has done its job and it’s time to graduate.
Before you start: clean your spreadsheet
Importing messy data into a CRM just gives you a messy CRM. Spend 30 minutes cleaning up first — it saves hours later.
Remove obvious duplicates. Sort by email address. If the same email appears twice, keep the row with more complete data and delete the other. Most spreadsheet tools have a “Remove Duplicates” feature — use it.
Standardize your columns. Pick one format and stick with it. “Company Name” or “Company” — not both. “Phone” or “Phone Number” — not both. If you have “First Name” and “Last Name” in separate columns, keep them separate. CRMs handle that well. If you have a single “Full Name” column, that’s fine too — most CRMs can split it during import.
Clean up phone numbers. Decide on a format: +852 1234 5678 or 12345678. International format with country code is best. Remove parentheses, dashes, and “ext.” notes — put extensions in a separate column.
Fix your email addresses. Look for obvious typos: missing @ signs, “.con” instead of “.com”, spaces in the middle. One bad email address imported into a CRM will bounce every time you try to email that contact.
Back up the original file. Before you change anything, make a copy. Name it something like “contacts_backup_april2026.xlsx” and put it somewhere safe. If anything goes wrong during import, you still have the original.
Step-by-step: the actual migration
Here’s the process. It works with virtually any CRM, not just HARi.
Step 1: Export to CSV
If your data is in Excel, go to File > Save As > CSV. If it’s in Google Sheets, go to File > Download > Comma-Separated Values. CSV is the universal format — every CRM on the planet can read it.
If you have multiple sheets (one for contacts, one for companies, one for leads), export each one as a separate CSV file.
Step 2: Set up your CRM fields first
Before importing, open your CRM and check what fields are available. Most CRMs come with standard fields like First Name, Last Name, Email, Phone, and Company. But if your spreadsheet has custom columns — “Industry,” “Region,” “Lead Source,” “WeChat ID” — you’ll need to create matching custom fields in the CRM first.
This step is crucial. If you skip it, your custom data has nowhere to go during import and gets lost.
Step 3: Map your columns
When you start the import, the CRM will ask you to match your spreadsheet columns to CRM fields. This is called “column mapping.” It usually looks like a dropdown next to each column name:
- “Company Name” in your spreadsheet maps to “Company” in the CRM
- “Mobile” maps to “Phone”
- “Email Address” maps to “Email”
Most CRMs auto-detect obvious matches. For the rest, you pick manually. If a column doesn’t map to anything, you can skip it or create a new custom field on the spot.
Step 4: Preview before you commit
Every decent CRM shows you a preview of the first 5-10 records before importing. Read them carefully. Check that:
- Names aren’t in the wrong columns
- Phone numbers look right
- Email addresses are in the email field, not the notes field
- Special characters (Chinese characters, accents) display correctly
If something looks wrong, go back and fix the mapping. Don’t import and hope for the best.
Step 5: Import
Click the button. For 500 contacts, this usually takes under a minute. For 5,000, maybe a few minutes. The CRM will tell you how many records were created and how many were skipped (usually due to missing required fields or duplicate emails).
After import: the verification checklist
Don’t celebrate yet. Spend 10 minutes verifying:
Spot-check 10 records. Open 10 contacts at random. Verify that their name, email, phone, and company are correct. Check that custom fields (industry, region, notes) came through.
Verify the count. Your spreadsheet had 487 rows. The CRM imported 485. Where are the other two? Check the import log — most CRMs tell you which rows were skipped and why. Usually it’s a missing email address or a duplicate.
Search for a known contact. Think of someone specific — “David Chan at Pacific Trading.” Search for them. Can you find them? Is their data complete?
Check for duplicates the CRM created. Some CRMs create duplicates if the same person appears with slightly different data. Search for common names in your list and verify there’s only one record each.
Pro tips from people who’ve done this before
Import companies first, then contacts. If your contacts have company names, import the company list first. Then when you import contacts, the CRM can automatically link each contact to their company. This gives you the relationship structure that spreadsheets never had.
Start with one spreadsheet. If you have five spreadsheets across three departments, don’t import them all at once. Start with the main one. Get comfortable. Then import the rest one at a time.
Set up your sales stages before importing deals. If you’re also importing opportunities or deals, make sure your pipeline stages (Qualification, Proposal, Negotiation, Closed) are set up in the CRM first. Otherwise your deal data has no structure to land in.
Don’t import everything. That spreadsheet from 2019 with trade show contacts you never followed up with? Maybe let that one go. Import the contacts that matter to your business today. You can always import historical data later.
How HARi handles this
HARi CRM has a built-in import wizard that walks you through each step. You upload a CSV, map your columns with drag-and-drop, preview the results, and import. It detects duplicates automatically and flags them for your review instead of creating duplicates silently.
The whole process takes about 15 minutes for a typical spreadsheet. And if something goes wrong, you can undo the entire import with one click.
The hardest part is starting
Moving from a spreadsheet to a CRM feels like a big decision. It’s not. It’s a 30-minute task that immediately gives you better visibility into your contacts, your deals, and your team’s activity.
Your spreadsheet got you this far. It’s done its job well. Now it’s time for a tool that can keep up with where your business is going.
Try HARi CRM free for 14 days — import your first spreadsheet in minutes, no credit card required.