Skip to content
NKNaveen Kapur Blog
CRM & Automation

CRM Data Migration from Excel: Clean First, Import Once

Most CRM projects inherit years of Excel sheets. Here is a step-by-step way to clean that data, decide what to bring, import it in the right order and avoid a second, messier import.

NK

Naveen Kapur

· Updated · 8 min read

A hand on a mouse beside a laptop showing a long data spreadsheet on a home office desk
Photo: Gorilla ROI Data Connector on Unsplash

Quick answer

A good CRM data migration from Excel happens in a fixed order. First list every sheet and decide which data is worth bringing. Then clean it: one phone format with the country code (+91 for India), emails in lower case, one value per picklist for source, stage and course or product, real user names for owners, and one date format. Keep the original lead source and created date. Import companies or accounts first, then contacts or leads, then activities. Run a test import of about 50 rows, check them by hand, then do the full import. Tag every record with an import batch, keep a backup of the files, and freeze the old sheet the same day.

Key takeaways

  • Inventory every sheet first and decide what is worth bringing. Old junk data does not become useful inside a CRM.
  • Clean before you import: phone with country code, email in lower case, fixed picklists, mapped owners and one date format.
  • Keep the original lead source and created date in their own fields, or your reports start from zero.
  • Import in order: companies or accounts, then contacts or leads, then activities. Test with about 50 rows first.
  • Have a rollback plan (backup file, batch tag) and freeze the old sheet on import day so nobody keeps two systems.

Almost every CRM project starts with the same thing: years of leads in Excel. One sheet per counsellor, one per season, a few downloaded from portals, and one called “FINAL new (2)”. The CRM is ready, and the temptation is to upload everything on day one and fix it later.

Later never comes. Dirty data inside a CRM is harder to fix than dirty data in a sheet, because it now has owners, automations and reports attached to it. This guide is a practical CRM data migration plan for Indian businesses and colleges moving from Excel to a CRM. The rule is simple: clean first, import once. (“crm data migration” gets about 50 searches a month in India, per OpenSEO, October 2026.)

Step 1: Inventory every sheet

Before you clean anything, make a simple list of every source of data. For each sheet, write down:

  • Who owns it and where it lives (a laptop, Google Drive, an email attachment).
  • What it holds: enquiries, customers, companies, follow-up notes, payments.
  • How many rows, and the date range it covers.
  • Which columns it has, and what each column really means.

This takes a day and saves weeks. You will usually find the same lead in three sheets, columns with the same name and different meanings (“Status” in one sheet is the call result, in another it is the admission stage) and a few sheets nobody has opened in two years.

Step 2: Decide what to bring, and what to leave

You do not have to migrate everything. A CRM full of dead leads makes every list, report and automation slower to use. Agree on rules with the business owner or admissions head before cleaning starts. For example:

  • Bring: open leads, customers or students, companies you still deal with, and leads from recent seasons that may still convert.
  • Bring as history only: closed or lost leads from recent years, so a returning lead is recognised.
  • Archive, do not import: very old enquiries with no phone or email, test rows and obvious junk.

Keep the archived sheets in a read-only folder. You are not deleting history, you are choosing not to clutter the new system with it. If you are still choosing a platform, see Zoho CRM vs Salesforce first, because the target fields shape this step.

Step 3: Clean the data (dedupe rules that hold)

CRM data cleaning is mostly about making the same thing look the same everywhere. Work on a copy, never on the original sheet, and fix these columns first.

Phone numbers

Store mobile numbers in one international format: plus sign, country code, then the number, with no spaces or dashes. For India that means +91 followed by the 10-digit mobile number. This follows the style of ITU-T E.164, the international numbering plan, and HubSpot’s import guide asks for the same +[country code][number] format. Remove leading zeros, spaces, brackets and “+91-” variations before you match duplicates.

Emails

Convert every email to lower case and trim spaces. Rahul.Sharma@Gmail.com and rahul.sharma@gmail.com should be one person. Flag obvious fakes such as test@test.com for review instead of importing them.

Duplicates

Write the rule down: match on cleaned mobile number first, then on lower-case email. When two rows match, keep one record, keep the earliest created date and its original source, and move the other rows’ notes into that record as history. Decide who wins the owner field (usually the person who last worked the lead) and write that rule down too.

Checklist titled Clean first, import once, with seven numbered steps for CRM data migration from Excel. 1: Inventory every sheet, its owner, rows and columns. 2: Decide what to bring and what to archive. 3: Clean and dedupe, phone as +91 then the number, email in lower case, match on phone then email. 4: Standardise picklists for source, stage and course or product, and map owners to real CRM users. 5: Keep the original lead source and created date, and use one date format. 6: Import in order, companies first, then contacts or leads, then activities, starting with a 50-row test. 7: Keep a backup and batch tag for rollback, and freeze the old sheet. A green final card reads: one clean CRM, one import, reports work from day one. A note at the bottom says import limits per file differ by CRM and plan, so check your CRM's official import page.
Seven steps, in this order. Skipping step 3 is what forces a second import.

Step 4: Standardise picklists and map owners

Free text is the enemy of reporting. In Excel, one lead source can appear as “FB”, “Facebook”, “facebook ads” and “Meta”. In the CRM, these must become one picklist value, or your source report splits one channel into four.

Make a mapping table for each picklist field before you import: old value in one column, new CRM value in the next. Do this for at least these fields:

FieldMessy Excel valuesClean CRM value
Lead sourceFB, facebook ads, MetaPaid social
Lead sourceshiksha, Shiksha.comEducation portal (sub-source: Shiksha)
Stageint, Interested, hotInterested
Course or productMBA, M.B.A, mba 2 yrMBA (2 years)
OwnerPriya, priya s, PSPriya Sharma (CRM user)
Hypothetical example of a picklist mapping table. Build one for every picklist field before you import.

Owner mapping needs special care. Every owner name in the sheet must match a real, active user in the CRM. Staff who have left should be mapped to a current person or a team queue, decided in advance. Zoho CRM’s import, for example, lets you assign a default owner to all imported records or apply assignment rules during import, but a clean owner column is still the safer route. Check role and visibility rules too, so each counsellor sees the leads they should.

Step 5: Keep lead source, created date and one date format

When you import leads into a CRM, the system stamps each record with today’s date as its created time. If you do nothing, every old lead looks new, and your “leads by month” report shows one giant spike on import day.

Create two custom fields before you import: Original created date and Original lead source. Fill them from the sheet and never edit them afterwards. Reports on lead age, season and channel then use these fields for migrated records. The same idea keeps portal data honest; see portal leads in your CRM.

Pick one date format for the whole file. Indian sheets mix 05/10/2026 (5 October) and 10/05/2026 (written the US way), which an importer cannot tell apart. HubSpot’s import guide accepts day-month-year, month-day-year or year-month-day, and Zoho CRM’s import asks you to set the date format used in the file. Either way, the file must use one format consistently. A four-digit year and a written month (05-Oct-2026) remove the doubt.

Step 6: Import in the right order, and test with 50 rows

Records in a CRM link to each other, so the parent must exist before the child. Import in this order:

  1. 1Companies or accounts (for B2B; skip for most student enquiries).
  2. 2Contacts or leads, linked to their company where there is one.
  3. 3Deals or applications, linked to the contact.
  4. 4Activities and notes (calls, follow-ups), linked to the lead or contact.

Then run a test import of about 50 rows, picked to include hard cases: a duplicate, a Hindi name, a missing email, an old date, a staff member who has left. Salesforce’s own Trailhead guidance recommends importing a small test file first. Open each test record by hand and check phone, owner, source, dates and links. Delete the test batch, fix the mapping and only then run the full file.

Know your CRM’s import limits before you split files. These were the figures on each vendor’s official page when this article was written:

CRMWhat the official page saysDuplicate matching
Zoho CRMCSV up to 10,000 rows (Standard) to 50,000 rows (Ultimate) per import; XLS, XLSX and VCF up to 5,000 records per batch. CSV file size 5 MB (Free) to 25 MB (Enterprise and Ultimate).Match on Record ID, email or record name; add new, update existing, or both; option to skip empty values
SalesforceData Import Wizard: up to 50,000 records at a time. Data Loader: up to 150 million records, and objects the wizard does not support.Set matching criteria in the wizard when adding or updating
HubSpotPaid plans: 512 MB per file and 1,048,576 rows per file; free tools: 20 MB per file. Fewer than 1,000 columns, one sheet per file.Record ID for all objects; email for contacts; company domain for companies
Import limits as listed on Zoho CRM Help, Salesforce Trailhead and HubSpot Knowledge Base, October 2026. Vendors change these, so check again before your import.

Also check whether imports trigger workflows. Zoho CRM, for example, shows an option to trigger configured automations only for smaller files, and notes that date-based workflows can still run. You do not want 5,000 old leads to receive a welcome WhatsApp on import day. Switch off or test such automations first.

A desk with a calculator, glasses, printed charts and a blue file
Check the 50 test records by hand on screen before the full import; it is the cheapest point to catch a mapping mistake. Photo: Cht Gsml on Unsplash

Step 7: Rollback plan and freezing the old sheet

Plan for the import going wrong before it happens:

  • Keep the exact files you imported, plus the cleaned master copy, in a dated folder.
  • Tag every record with an import batch value (for example “Import Oct 2026 Batch 1”). If a batch is wrong, you can find and remove exactly those records.
  • Take a CRM export or backup before any update-type import that changes existing records.
  • Write down who can approve a rollback and how long the team waits before deciding.

On the day the full import is checked, freeze the old sheet. Make it read-only, rename it with “ARCHIVED, do not use”, and tell the team that from now on every new lead goes into the CRM only. If the sheet stays open, someone will keep using it, and in a month you have two systems again.

When to get help

A small team with a few thousand rows can do this in-house with the steps above. Bring in help when you have many sheets with conflicting columns, linked data such as companies, deals and payments, or a live admission season you cannot pause. A CRM consultant can own the mapping and testing, and Naveen Kapur’s CRM development service can include migration as part of setting up a CRM. For colleges, the same plan fits the fields in CRM for colleges.

Need help with this? See crm development services by Naveen Kapur.

Frequently asked questions

What is CRM data migration?

It is moving your existing records, such as leads, contacts, companies and notes, from spreadsheets or an old system into a new CRM, with the fields cleaned and mapped so reports work from day one.

Should I clean data before or after importing into a CRM?

Before. Cleaning in a sheet is faster and safer. Once dirty data is in the CRM, it has owners, automations and reports attached, and every fix takes longer.

How should phone numbers be formatted for a CRM import?

Use one international format: a plus sign, the country code and the number, with no spaces, such as +91 followed by the 10-digit mobile. Then match duplicates on that cleaned number.

In what order should I import data into a CRM?

Import companies or accounts first, then contacts or leads, then deals or applications, then activities and notes, so every child record can link to a parent that already exists.

How do I keep the original created date when importing leads?

Add a custom field such as Original created date, fill it from your sheet during import and use it in reports for migrated records. The CRM’s own created time will show the import date.

Sources

  1. Zoho CRM Help: Importing Data to Zoho CRM
  2. Salesforce Trailhead: Import Data (Data Import Wizard and Data Loader)
  3. HubSpot Knowledge Base: Set up your import file
  4. ITU-T Recommendation E.164: The international public telecommunication numbering plan
#CRM Data Migration#Excel to CRM#CRM Data Cleaning#Lead Management#CRM Implementation

Found this useful?

Share it with someone who would like it.

Ask AI about this article

Choose what you want, then open it in your favourite assistant. The article link goes with it.

Summarise this article in 5 simple bullet points: "CRM Data Migration from Excel: Clean First, Import Once" https://www.naveenkapur.com/blog/crm-data-migration

NK

Written by

Naveen Kapur

Digital marketing, CRM and SaaS, business development, web and app design, and AI automation. Also a graphic and video designer.

Follow on LinkedIn
A laptop on a sofa showing a dashboard with charts and a world mapFrom 2026
CRM & Automation

GA4 + CRM: Closing the Loop from Ad Click to Admission or Sale

Your ads see a form fill. Your CRM sees the admission or the sale weeks later. Here is the full technical loop that joins the two: hidden fields, CRM stages, uploads to Google Ads and GA4, the time limits and consent.

· 8 min read

A large open-plan office with rows of desks and people working at computersFrom 2026
CRM & Automation

Lead Routing Rules: Round Robin, Territory or Skill Based

Who gets the next lead decides how fast it is called and whether it is called at all. Here is how round robin, territory, course, language and load based routing work, when each fits, and the rules that keep routing fair.

· 8 min read