Your leads live in a file called Leads_Master_FINAL_v3.xlsx. It has 4,200 rows, six colour codes that only one person can explain, and three columns near the right-hand edge that nobody has filled in since last Diwali. Two salespeople keep their own copies. When someone asks what happened with an enquiry from March, you open the file, use Ctrl+F, and hope.
Everybody knows this needs to change. What stops most teams is not the decision. It is the fear that the moment you migrate leads from spreadsheet to a CRM, the history goes missing and the team quietly goes back to the file.
That fear is reasonable. It is also avoidable. Here is a migration playbook that treats the spreadsheet as evidence rather than rubbish, and gets your team on the new system without a fortnight of confusion.
Audit the file before you touch it
Do not start by mapping columns. Start by reading the file honestly.
Open it and answer five questions in writing:
- How many rows are actually live? A lead from 2021 that was never called is not a lead. It is an archive entry.
- Which columns does someone actually update? Sort by each column and look for the ones where ninety percent of cells are blank or say “NA”.
- Where does the real history sit? Usually not in the sheet. It sits in one long comment cell, in WhatsApp, or in somebody’s head.
- How many duplicate companies can you spot in five minutes? If it is more than a handful, your dedupe rules need to be strict.
- Who else has a copy? Every shadow copy is a source you will have to merge or formally kill.
This audit takes an afternoon. Skipping it is why migrations run for six weeks.
Map columns to fields, not fields to columns
The instinct is to recreate your spreadsheet inside the CRM, column for column. Resist it. Your spreadsheet grew by accretion. Somebody added “Remarks 2” because “Remarks” was full. That is not a data model, that is sediment.
Work the other way. List the fields the CRM expects, then decide which spreadsheet column feeds each one. A workable mapping for most Indian SMBs looks like this:
- Company name and contact person as two separate fields, even if your sheet mashes them into one cell.
- Phone and email, cleaned. Strip spaces, fix the ones stored as “+91 98xxx / 99xxx” into a single primary number with the second in an alternate field.
- Lead source. This is the one worth getting right. BizvoraOne works with fifteen lead sources, and mapping your loose text values onto a fixed list is the difference between knowing where business comes from and guessing. “Ref”, “Reference”, “refrl” and “Mr Sharma” all become Referral.
- Stage. Your sheet probably has five or six informal statuses. The CRM has nine pipeline stages. Map conservatively and put anything ambiguous into the earliest plausible stage, not the latest. Optimistic mapping produces a pipeline that looks healthy and converts nothing.
- Owner. Every row needs a named person. Rows with no owner are the ones that became the enquiry nobody called back.
- Created date and last contact date. If you only have one, keep it and label it clearly.
- Expected value, if your sheet has it and the numbers were not invented to fill a cell.
Write the mapping down in a separate sheet with three columns: spreadsheet column, target field, transformation rule. Hand that to whoever runs the import. Do not do it verbally.
The dumping ground column
Every leads file has one column where the actual story lives. It is called Remarks, or Notes, or Status Update, and it contains things like “called 14/3, asked for revised rate, follow up after Holi, budget approx 4L, decision by Mr K”.
Do not split it into fields. You will lose meaning and gain nothing. Import it whole as the first note on the lead record, with the import date attached. Then let new activity accumulate properly from day one. The old blob stays readable, and nobody has to reconstruct it.
Dedupe rules you decide before the import, not after
Duplicates are the fastest way to lose trust in a new CRM. Two salespeople call the same buyer in the same week and the whole team concludes the software is broken.
Agree these rules in advance and apply them to the file, in the file, before importing anything:
- Same phone number means same lead. Match on the last ten digits so country code formatting does not defeat you.
- Same email domain plus same company name means same company. Two contacts at the same firm are two contacts, one company.
- When two rows merge, the later activity date wins for stage and last contact, the earlier date wins for created date, and both remark blobs are kept, stacked oldest first.
- Owner conflicts go to a human. Do not let a formula decide who owns an account. Print the conflict list and have the sales head assign each one by name.
- Anything with no phone and no email is not a lead. It goes to the archive file.
Run the dedupe, then have one person eyeball the top hundred rows sorted by company name. Formulas catch exact matches. Eyes catch “Sharma Industries” and “Sharma Inds Pvt Ltd”.
Decide what to leave behind, deliberately
This is the part teams get wrong. They try to carry everything across because deleting feels like losing. Then the new system launches with 4,200 records, most of them dead, and the pipeline is useless from day one.
Carry over:
- Every lead with activity in the last six months, regardless of stage.
- Every open deal with a named owner and a next step, whatever its age.
- Every existing customer, because they are your cheapest source of new work.
- The full remark history for all of the above.
Leave behind, in a read-only archive file that stays on the shared drive:
- Leads with no contact attempt ever recorded. Be honest about this number. It is usually larger than anyone expects.
- Anything last touched more than eighteen months ago and marked lost.
- Columns nobody updated: the abandoned scoring column, the second remarks column, the tick box someone added for a campaign in 2022.
- Personal tracking columns that individual salespeople maintained for themselves. Ask them first. Some of those are genuinely useful and should become fields. Most are not.
The archive file is the safety net. It means nobody can say the history was destroyed. In practice it gets opened twice in the first month and then never again.
Running both systems for two weeks without confusing the team
A hard cutover on a Monday morning fails because someone has a customer visit that day and reaches for what they know. A parallel run of two weeks works, but only with one rule made explicit.
The CRM is the system of record from day one. The spreadsheet is read-only reference. Nothing new gets typed into the file.
Without that rule, a parallel run is just two spreadsheets. Here is a cadence that holds:
- Day 0, Friday afternoon. Freeze the spreadsheet. Rename it with the freeze date. Remove edit access for everyone except one admin. Import the cleaned data over the weekend.
- Day 1, Monday. One hour with the sales team. Do not tour the whole product. Show three things: how to find a lead, how to log a call, how to move a stage. That is it.
- Days 1 to 5. Every new enquiry goes only into the CRM. Old leads get updated in the CRM. If someone needs the frozen file for reference, they open it and read it.
- Day 5, Friday. Fifteen minutes. Ask what is missing. Usually two or three fields. Add them. Fix them properly rather than letting people work around them.
- Days 6 to 10. Same discipline, plus the sales head reviews the pipeline in the CRM only. This matters more than any training session. When the boss stops asking for the sheet, the sheet dies.
- Day 10. Move the frozen file to an archive folder. Announce that it has moved. Do not delete it.
Two weeks is the right length. Four weeks lets people build a habit of checking both. One week does not survive a holiday or a sick day.
One caution. If you are mid-quarter with a large deal closing, delay the freeze by a fortnight. Migrating during your busiest week is a decision you will regret on Wednesday.
Definition of done
The migration is complete when all of these are true:
- Every live lead has one owner, one stage and one next action date.
- No two records share a phone number.
- Every lead source maps to one of the fifteen defined values, with no free text.
- The sales review runs off the CRM pipeline and nobody brings a printout.
- New enquiries land in the CRM without anyone retyping them from an email.
That last one is where the effort pays back. Once leads arrive in the system directly, first response stops depending on who checked the inbox. On BizvoraOne the AI voice agent can call a new lead shortly after it arrives, which only works if the lead is in the system rather than in a file on someone’s desktop.
What to do first
Open your leads file today and do the five-question audit. Nothing else. Count the live rows, count the dead ones, and find out how many shadow copies exist.
That single hour tells you whether this is a two-day job or a two-week one. Then write the column mapping, agree the dedupe rules, and pick a Friday.
Once the data is in, the next question is where deals stall. That is worth reading about separately, because three of the nine pipeline stages account for most of the losses, and a clean migration is what lets you see them at all.



