Skip to content
← All articles

Notes for owners · CRM, automation and RevOps

CRM data migration from Excel: a step-by-step plan

How to move customer and deal history from spreadsheets into a CRM without losing it: freeze, copy, clean, map, test import, check, switch, with a go-live checklist.

The GullySales team · Updated 17 Oct 2026 · 5 min read

A realistic Indian practitioner performing the specific task in the first content section: {"heading": "The migration sequence", "intro": "", "items": [{"title": "Extract and review", "body": "All source files are pulled out and read before anything is loaded
On this page
  1. Which five cells break an import?
  2. What order do you work in?
  3. How do you write the mapping?
  4. What did a test import catch in a two-wheeler spares wholesaler?
  5. How do you check the import?
  6. What goes on the go-live list?
  7. When should you not migrate yet?
  8. Gather the sheets first

To move from Excel to a CRM without losing history, freeze a copy of every sheet and build one clean master list. Map each column to a CRM field. Import fifty rows as a test and check them by eye. Then import the rest, and switch the team on a named day, not before. A good deal of the damage in a migration comes from a few kinds of bad cell, and five of them are below. Find those in the sheet before the CRM finds them for you.

Which five cells break an import?

Sort your master sheet and look for these. Each row below is a common kind of cell and what it can do when imported blind.

Cell                    What the CRM does              What to do first
"after Ganesh Chaturthi" in a date column   Guesses a date, so a dead deal looks due tomorrow   Split: real date column, plain-note column
"Sri Lakshmi Trdrs" / "Lakshmi Traders"     Two customers instead of one        Sort by mobile; keep one survivor
"98 450 12345" / "+91-9845012345"            Search fails; duplicates slip in    Ten digits, no spaces, one rule
"1.5 L" in an amount column                 Reads as text; totals are wrong     Plain number: 150000
"Hot", "hot", "warm-ish"                    Three stages that mean one         Pick your CRM stages; give every row one

Fixing these in a copy takes less time than finding them one by one in the CRM afterwards. Keep a short log of what you changed. The cleaning rules are explained further in cleaning and organising CRM data.

What order do you work in?

  1. Decide what the CRM is for, in one line. "To see every live deal, who owns it and its next step." That sentence decides what you import.
  2. Collect every sheet. Not just the shared one. Include the salesperson's personal file, the accounts file, WhatsApp exports and the visiting-card box, all in a folder named with today's date.
  3. Freeze and copy. Make read-only copies and never clean the original. If something goes wrong, the copy is your way back.
  4. Build one master sheet. One row per person or company, one column per attribute, with header names you choose.
  5. Clean, using the five cells above. Move rows with no phone and no email to an archive, since nobody can follow them up.
  6. Map columns to fields, in a table before you open the import screen.
  7. Test with fifty rows, including your worst.
  8. Check ten records against the sheet by eye.
  9. Import the rest, then switch on a named day, and put the old sheets in an archive folder, read-only.

How do you write the mapping?

A plain table, with a column that forces a decision about gaps:

Sheet column   CRM field        Format rule     If blank
Party name     Company          Title case      Archive the row
Mobile         Phone            Ten digits      Archive if no email
Last quote     Custom date      Real date       Leave blank
Status         Stage            One of five     Set to "Old lead"
Notes          Notes            Keep full text  Leave

A column you cannot map goes into notes, not into the bin. If a sheet column really matters and has no home, the CRM needs a custom field, and which fields a small team needs helps you decide before adding one.

What did a test import catch in a two-wheeler spares wholesaler?

Imagine a two-wheeler spares wholesaler in Davanagere with six years of dealer enquiries across three sheets: the owner's, a partner's and an accounts file. The numbers here are invented to show the steps. About two thousand rows come to hand together.

The fifty-row test turned up two problems. The "Date" column held both dates and phrases such as "after Ganesh Chaturthi". The CRM turned the phrases into the wrong dates, so a quote from a deal that had been dead for years showed as due tomorrow, and two sellers would have spent a day chasing a ₹2 lakh quote that nobody wanted. They saw it only because someone opened ten records and compared them with the sheet. The column was split in two: a real date, and a note.

Forty dealers also appeared twice, since the two owners had saved the same customer under different spellings. They sorted by mobile number and merged the pairs. The survivor, they agreed, was always the row with the latest quote. They archived about half the rows, the ones with no number and no deal since the first year, in a separate file where nothing was destroyed. After that the full import went through, and the next Monday the owner's first search, "quotes sent, no reply", returned names the owner recognised. A handful of amounts written as "1.5 L" still showed as text, which the owner found and fixed by hand in the CRM, a reminder that a ten-record check does not catch everything.

How do you check the import?

Do not trust the count. Compare the number of records with the number of rows you meant to import. Open ten records chosen at random, including your oldest, and compare them field by field. Then search "all deals in the quote stage" and ask the salesperson whether the list looks right. A person who knows the deals spots a wrong stage in seconds.

If more than one in ten of your sample is wrong, stop. Fix the sheet or the mapping, delete the test batch so you do not create duplicates, and run the test again in a fresh batch.

What goes on the go-live list?

  • The old sheets are read-only and in an archive folder.
  • Every salesperson can log in and has opened their own deals.
  • Deal stages, source list and lost reasons are final.
  • One person owns the CRM settings.
  • The team knows the rule: from this day, if it is not in the CRM, it did not happen.
  • A list of missing items is kept for the first fortnight, and someone fixes them.

When should you not migrate yet?

If nobody agrees what a "deal" is, or two teams use the sheet under different rules, fix the process first. Moving a mess into a CRM only makes it searchable. If your records include health, finance or other regulated personal data, check with your own adviser what you may store and move before you import it.

Gather the sheets first

Put every sheet in one dated folder. That alone shows how many versions of the truth you have. If you want help with the mapping, the test and the switch-over, CRM data migration is the work, part of how you sell. When the folder is ready, tell us what you need.

Questions

Questions owners ask.

Should I import all my old Excel data?
Import what a salesperson will use: live deals, customers who bought in the last few years and contacts with a working number. Keep the rest in an archive file. Importing everything fills the CRM with names nobody will call.
What is the most common reason an import goes wrong?
Mismatched columns and dirty values: dates typed as text, phone numbers with spaces, the same company spelled four ways. A test import of fifty rows shows these in an hour. Fix them in the sheet before the full import.
How do I avoid duplicate records?
Pick one matching key, such as the mobile number or the GST number, and sort the sheet by it. Merge the rows that share a key by hand, then check a sample. Switch on the CRM's duplicate warning after the import.
Can the team keep using Excel during the move?
Only until the day you freeze it. Choose a day, copy the final file, and tell everyone that from the next morning new entries go into the CRM only. Two live systems for more than a short while make it very likely the numbers disagree.

From the blog

More notes for owners.

Your next practical step

Tell us what you are trying to grow, and we will read it before we call.

Eight short steps, mostly taps. Skip anything you would rather answer on the call.