TR Start free
HomeBlog › Guide

How to migrate to a new CRM: what to move, what to leave, and the order to do it in

O Ohana360 Team • September 20, 2026 • 12 min read
Illustration of a three-phase CRM migration timeline beside lists of the data that moves and the data that stays behind

The decision is made, the tool is chosen, the contract is signed. The real work starts here, and this is the part that hurts most teams: a CRM migration is not a software installation, it is a house move. Somebody has to decide which furniture travels, what stays in the basement, who moves on which day, and when the keys to the old place go back.

This guide is not a tool comparison. If you have not settled on the tool yet, the Salesforce alternative guide covers cost and scope, and what is a CRM covers the vocabulary. What follows is the three weeks after the decision.

To keep it concrete we will follow Kestrel Lab Supplies, a 27-person distributor of laboratory instruments selling to universities and private testing labs. Their old system held 6,204 account records, 9,880 contacts, 2,240 deals and around twenty-eight thousand activity rows. The move took 18 working days, and a little over half of those records made it across. (Demo data.)

The order of a migration: ten steps, three phases

Order matters more than speed. Read the whole list before you prepare a single file; most migration accidents come from doing step six before step four.

  1. Take a complete export out of the old system. Before touching anything else. That archive is the one fixed point you can return to all the way through.
  2. List the objects that will move. Accounts, contacts, deals, cases, products. Write a one-sentence reason for each; an object you cannot justify in a sentence does not travel.
  3. Cut the dead records. Accounts with no deal, no activity and no open work stay in the old system.
  4. Clean duplicates on the old side. Identical names and rows with no contact details take minutes to strip out in a spreadsheet.
  5. Write the field mapping sheet. Old column, new field, format rule. Three columns on one page will settle every argument that follows.
  6. Run a rehearsal import. Fifty rows. Open every record that comes out of it.
  7. Load accounts first, then contacts and deals. Links are made by name, so the order cannot be reversed.
  8. Move the pilot team. Three people, five days, on real work.
  9. Move everyone else on one day. A staggered rollout means working in two systems at once, and a team working in two systems is really working in neither.
  10. Run the first-week checklist. A migration that ends without measurement is back in the old spreadsheet by month three.
Migration order: from decision to week one Kestrel Lab Supplies, 27 people, 18 working days (demo data) Three phases, ten steps 1 Preparation Week 1, 5 days Take a full export, both ways List the objects that move Cut duplicates in the old tool Write the field mapping sheet Decisions 2 Loading Week 2, 4 days Accounts first, contacts after A 50-row rehearsal import Read the numbers on Review Fix skipped rows, run again Import 3 Rollout Week 3, 9 days Pilot team: three people Everyone else on one day Old system stays read only The week-one checklist Go live How long does the old system stay? 60-day overlap Old system read only, not deleted Ohana360 the single source One rule: no record is created in two systems at once. On cut-over day the old tool is closed for writing and left readable for sixty days.

What moves and what stays behind

The worst decision in any migration is "let us bring it all across, just in case". Kestrel refused that sentence and moved 3,634 of their 6,204 account records. What stayed: 1,010 rows that were exact-name duplicates and 1,560 accounts nobody had touched in three years with no deal ever attached. On the contact side, 1,402 of 9,880 rows belonged to accounts that were not travelling and 918 had neither an email nor a phone number, so 7,560 contacts went across. Of 2,240 deals, only the open ones and those closed in the last eighteen months travelled, 1,115 in total. The twenty-eight thousand activity rows did not move at all.

What moves, what stays behind Of Kestrel's 6,204 account records, 3,634 went into the new system (demo data) The data call MOVES Accounts and contacts Live accounts and current contact details Open opportunities Stage, amount, close date and owner The last 18 months of wins Enough history to compute a win rate Open cases and tasks Unfinished work follows the team over Products and price list The catalogue a quote is built from DOES NOT MOVE Call and email history Twenty-eight thousand rows stay behind Records untouched for years Dead accounts with no deal and no activity Files and attachments Import uploads no files; move them by hand Original created dates Created Date becomes the day you imported Old closed deals Anything older than 18 months stays out FORMAT TRAPS: THE LEFT-HAND VALUE ARRIVES EMPTY OR AS ZERO Date 15/03/2026 2026-03-15 Phone 532 123 45 67 0532 123 45 67 Amount 412,000.00 EUR 412000 Stage proposal Proposal Dates, amounts and picklist values are written exactly as typed. Fix the format in Excel, not after the import.

The rule is short: every record that enters the new system has to do a job there. If an account has live work, it travels; if it does not, it belongs in the archive. The same holds for activity history. Teams that try to carry three years of call notes across lose weeks and end up with a pile nobody opens, while keeping the old tool readable, or holding one full export archive, buys exactly the same safety for free.

Careful: An import stamps the created date of every record with the day you loaded it. If "how long has this customer been with us" is a question you actually ask, map the old date into a custom field you add in the Object Manager first. There is no way to recover it afterwards.

Closing duplicates before the move, not after

A duplicate costs twice as much to clean once it is inside the new system, because by then it has contacts, deals and cases hanging off it. So the blunt half of the work happens on the old side: identical names, rows with no contact details, records somebody opened to test something in 2023.

What remains is the pairs where a name was spelled differently, and Ohana360 offers two doors for those. The first is Object Manager > object > Duplicate Check: if all of the fields you pick match (ignoring empty ones), the record counts as a duplicate. On a record form it warns or blocks, and in an import it marks the row Duplicate on the Review step and skips it by default. Date fields cannot be used as matching fields. The second door is after the load: select two or three records in the Accounts, Contacts or Leads list and press Merge. You pick the master record, then pick a winner for each field where the values differ; blanks on the master are filled from the others, the losers go to the Recycle Bin, and when you merge accounts their contacts, opportunities, cases, orders and invoices are reattached to the master.

Field mapping: from an old column name to a new field

Mapping is the dullest step and the one that decides everything. Open a sheet with three columns: old column, new field, format rule. For every column you cannot map there are three legitimate answers: create a custom field, leave the data behind, or fold it into another field.

The Ohana360 import recognises headers in three shapes and makes its own guess whichever one arrives: the internal field name (name, amount, email), the API name you are used to (StageName, CloseDate, AnnualRevenue, LeadSource), or the field label as it appears in the interface. You correct the guess row by row on the Column Mapping step, where each row shows the header, a sample value taken from the first data row, and a field picker. Columns you leave unmapped are simply ignored and do not block anything.

Map something badly and the screen will not let you through. While you are updating without an Id column mapped, or inserting without the required fields mapped, or as long as two columns point at the same field, the continue button stays inert.

Order rule: The company link on a contact or a deal is made by the account's name, and the name has to match exactly. That is why accounts load first. Load them the other way round and the contacts will arrive perfectly well with nothing attached to them, and an import that looks clean is the most expensive kind of mistake.

Dates, phones and amounts: three format traps

The import strips currency symbols and separators out of amount fields, and writes every other field exactly as the file has it. That produces three familiar traps.

TrapWhat happensFix
DatesA date written as 15/03/2026 cannot be read and the field lands emptyFormat the column as Text in Excel and write dates as 2026-03-15
PhonesThe leading zero is dropped on the spreadsheet side, so the number arrives shortSet the phone column to Text before you export the file
AmountsA value like 412,000.00 with a symbol in front collapses to zeroStrip symbols and thousand separators, use a dot for decimals
Picklists"proposal" and "Proposal" are not the same value, so nothing sticksCopy the exact spelling from the picklist in the Object Manager
OwnerA record with no owner falls outside your sharing rulesMap the owner column, or assign owners in bulk from the list afterwards

Who moves when: the pilot team and the one-day rule

A migration calendar asks two questions whose answers look contradictory.

The pilot team: three people, five days, on real work. At Kestrel the pilot was a field rep, a service coordinator and a manager. That spread matters, because a pilot drawn from one role only ever finds the problems on one screen. At the end of the five days the pilot's list ran to fourteen items: nine field naming corrections, three list view changes and two genuine data errors.

Everyone else: one day. Everybody outside the pilot moves on the same morning. A staggered rollout sounds cautious, but in practice it means the company runs in two systems, and by the third week nobody knows which one is right. On cut-over morning the old tool is closed for writing and every new record is created in the new system only.

Two practical precautions for that day. Do not schedule it against a big customer meeting or a month-end close, and open exactly one channel where questions are collected for the first three days. In migrations where questions scatter, the same question gets answered six times.

How long should the old system stay open?

The two commonest mistakes are opposites of each other. One is shutting the old system down on cut-over day; the other is leaving it running for six months.

The balanced route: on cut-over day the old system is closed for writing and left readable for sixty days. That window is more than enough to go looking for a quote that did not travel or an old thread, and it leaves nobody a door back into the old way of working. Before the sixty days are up, take a complete export out of the old system and keep the archive in-house, because the export button goes when the subscription does.

For the backup on the new side, Ohana360 has Setup > Data Export: one ZIP holding a separate CSV per object, your custom objects, the user list, a file list and the org configuration. It can be run up to ten times a day, and file contents are not in the archive, files.csv is a list only. Take one immediately before every large load.

The Ohana360 import screen, step by step

The screen sits under Setup > Data Import and runs in three steps. No record is created before you have seen the numbers on the third one.

StepWhat you do
1. SourcePick the object (Account, Contact, Lead, Opportunity, Case, or one of your custom objects) and the action: create new records, or update the ones matched by an Id column. Then drop a file, pick one, or paste cells copied out of Excel. To start from ready-made headers, download that object's Excel or CSV template from the panel on the right.
2. Column MappingEach column shows its header, one sample value from the first data row, and a field picker. The system fills in its guess and you correct it. If a mapping is missing or two columns collide, a notice appears and the step will not let you past it.
3. Review & ImportFour numbers appear: total rows, Valid, Duplicate and Invalid. Each tile is also a filter, so pressing one shows those rows in the table below. Bad rows carry their reason: Required field missing, Id not found, a validation message, or Duplicate. The number on the button tells you how many rows will actually be written.

The screen after the load reports how many records were created and how many rows were skipped, and Download skipped rows hands you every skipped row with its reason as an Excel file. In practice that is the most productive loop of the whole migration: load, download the skipped rows, fix them in the file, load again. To bring duplicates in deliberately, tick Import duplicates too.

Your validation rules apply to imports as well; a row that trips one is counted as Invalid and is not written. You may want to relax a rule for the duration of the move, but write the rule you relaxed into the first-week checklist so it goes back on.

What it does not do

The first week after go-live: a checklist

A migration is not judged on the day it goes live but on day ten. The list below is the admin's first week.

DayCheckTime
1Compare record counts against the old system, object by object: accounts, contacts, deals, cases. Any gap gets explained the same day20 minutes
2Open twenty records at random and see with your own eyes that fields landed where you meant them to, dates and amounts especially30 minutes
3Filter the list for records with no owner and assign owners in bulk; an ownerless record falls outside your sharing rules25 minutes
4Turn Duplicate Check on and close the remaining pairs with Merge, two or three at a time, without rushing it40 minutes
5Run a report over your stage and picklist fields: is anything empty or carrying a value you did not expect30 minutes
6Switch back on the flows you disabled and the validation rules you relaxed for the load; read the list out of your migration notes20 minutes
7Take the first clean backup from Setup > Data Export and ask the team one question: what did you fail to find this week15 minutes

At the end of week two, look at a single number: how many records the team created in the new system. At Kestrel it was 61 in the first week and 148 in the second. If it is not climbing, the problem is not in the data but in the habit, and habits only change once the old system is genuinely closed.

Once the data is clean, the next move is to cut it into groups worth acting on; the customer segmentation guide shows how a working segment comes out of a clean list. If you are migrating out of a spreadsheet, the Excel customer tracking guide gets the column layout ready for the import.

Frequently asked questions

Do we have to bring every year of history across?
No, and for most teams leaving it behind produces a better result. Three things earn their place in a new system: the accounts you sell to now, the work that is still open, and enough closed business for a win rate to mean something, usually the last eighteen months. Moving an account nobody has touched in three years pollutes search results, confuses duplicate checking and produces a list no one trusts. As for old activity history, do not even try: keeping the old tool readable, or keeping one full export archive, does the same job without eating anyone's week.
Should duplicates be cleaned before or after the move?
Most of them before, the stragglers after. Rows with identical names, and rows with no email and no phone, can be stripped out in the old tool or in a spreadsheet with a couple of formulas; doing the same work record by record in the new system takes weeks. For the pairs that survive because someone spelled the name differently, Ohana360 helps in two places. Turn on Duplicate Check for that object in the Object Manager and the import flags those rows as Duplicate on the Review step, skipping them by default. After the load, close the remaining pairs from the Accounts, Contacts and Leads lists: select two or three records and press Merge.
Which files and which records does the Ohana360 import accept?
The screen lives under Data Import in Setup. You can drop a file on it, pick one, or copy cells straight out of Excel and paste them in; .xlsx, .xls, .csv, .tsv and .txt are read, and for a workbook the first sheet is taken. The separator is detected for you: tab, semicolon or comma. Among the standard records, Account, Contact, Lead, Opportunity and Case come with a ready field catalogue, and alongside them sit the custom objects you defined in the Object Manager plus any custom fields you added to standard objects. Two actions are on offer: create new records, or update existing ones matched by an Id column.
Does an import trigger automations and flood the team with notifications?
When you create new standard records, no. The import writes them in one batch, so record-created flows and assignment rules do not run on that path. That spares you a thousand notifications, but it leaves you a chore: records that arrive without an owner need one assigning by hand. Flows do run row by row in two cases. An import that updates existing records counts as one update per row, and an import into a custom object counts as one record creation per row. If a large file is heading for a custom object, switch that object's flows off before the load and back on afterwards.
Can a bad import be undone?
Only up to a point, which is why prevention is the cheaper move. Deleted records land in the Recycle Bin, but the bin keeps the last hundred records: mass-delete five hundred badly imported rows and you will not get them all back. The right order is a rehearsal first. Load fifty rows, open the records that come out, see with your own eyes that the fields landed where you meant them to, and only then upload the whole file. Take one ZIP from Data Export in Setup immediately before the load, so there is a point you can return to.
When is it safe to cancel the old subscription?
After a full month of working in the new system and one month-end close inside it. On cut-over day, close the old tool for writing but do not delete it; leaving it readable for sixty days gives you a wide enough window to hunt down a quote nobody remembers or an old thread. Before those sixty days are up, take a complete export out of the old system and keep the archive in-house, because the export button leaves with the subscription. Once the archive is in hand and the month-end is closed in the new system, cancelling is safe.

Rehearse before you move

Start with a fifty-row file, map the columns, read the numbers on the review screen. Fifteen minutes will tell you how the real migration is going to go.

Read next