Guide
How to import a customer list into a new CRM
The file is the easy part. The hard part is deciding how much of your old list is still a customer, and finding out early whether anybody at the other end is going to load it for you.
The short answer
Get one clean file out of the old system first, before you talk to anybody about importing anything. One row per customer, one column per thing, and nothing important buried inside a free text note. Every route from here is easier from a clean file and close to impossible from a messy one.
Then cut it down. Most customer lists are mostly people who are never going to call again, and each one you carry across is a name standing between you and the person you were actually looking for. A short list of people who have used you recently is a better thing to own than a long list of everybody who ever did.
Then ask the new place how an import actually happens there, in exactly those words. There are three answers in common use: there is an upload screen you drive yourself, a person on their side does it with you, or it does not happen at all and you type. All three exist in small trade software, and they give you completely different timelines.
Check the result from the customer side rather than from the table. Open a few of the records that came in, look at the name, the phone number and the vehicle as they will appear when that person calls, and send yourself a message to one of them. A list that looks right in a spreadsheet and wrong in a text message has not really arrived.
The order to do it in
- 1
Decide what a customer record has to contain before you touch a file
Write down, in a sentence, what you want to be able to do the moment somebody calls. Usually it is this: see who they are, see which vehicle they have, and see what you did to it last time. Everything you carry across should be serving one of those three, and anything that serves none of them is optional.
This sounds like a formality and it is the step that saves the most work. People who skip it end up moving whatever the old system happened to hold, including fields that were never filled in, and then spend an evening tidying data they did not want.
- 2
Get the file out while you still have access
Do this before you cancel anything, before the renewal date, and before you have decided which new tool you are going to use. The file is useful to you regardless of where you land, and the day you stop paying is the wrong day to discover how the old system hands your list back.
If the old system is a spreadsheet or a phone, this step is trivial and you can move on. If it is a piece of shop software, the sibling guide in this cluster on leaving shop software covers what to ask and when.
- 3
Open the file and read it before anybody imports it
Scroll the whole thing once, slowly, from top to bottom. You are not tidying yet, you are finding out what you actually have. Every list has surprises in it and they are cheaper to find now than after they are in your new system.
Look for the ones that always turn up: rows that are not customers at all, a column that is empty for almost everybody, a column where somebody typed several different things over the years, and the block of rows near the bottom that were clearly a test.
- 4
Fix the phone numbers first
The phone number is the field the whole list turns on, because it is how the record gets found and how the customer gets reached. If it is wrong the record might as well not be there, and if it is inconsistent the software will treat one person as several.
Put them all in one shape. Pick a format, apply it to the whole column, and get rid of the ones that are obviously not phone numbers: the ones with words in them, the ones that are somebody note about calling back, the ones that are half a number and a question mark.
Where a row has two numbers in one cell, decide which is the one that rings and move the other somewhere it will not be dialled by mistake.
- 5
Cut the list down to the people who are still customers
This is the real work and there is no automatic version of it. Sort by whatever tells you when you last saw them and draw a line. The people above it come with you. The people below it stay in the old file, which you are keeping anyway.
You will be tempted to bring everybody on the grounds that it costs nothing. It does cost something: it costs you every future search, because the name you want will be sitting between two people who moved away years ago.
- 6
Ask how the import happens, and who does it
Ask the new place directly, before you commit to them. Is there a screen where I upload this myself, or does somebody there do it with me, or do I type it in. Those are the three real answers and any one of them is workable if you know it in advance.
What you are avoiding is the version where you assume there is a button, plan your switch around it, and find out during your first busy week that there is not. That is the failure this page exists to prevent, and it is common enough that the question is worth asking of every tool you look at.
- 7
Do a small batch first, and check that batch properly
Whoever is doing the loading, ask for a handful of records to go in first. A small batch is the only cheap way to find out that the columns were read in the order you thought they were.
Then check them the way you will actually use them. Search for one by surname. Search for one by phone number. Open a record and see whether the vehicle is attached to the right person. Send a message to yourself using a record you control.
If something is wrong at this size it is a conversation. If the same thing is wrong across the whole list it is an evening.
- 8
Keep the original file untouched, somewhere else
Before you edit anything, save a copy of the file exactly as it came out and put it somewhere that is not the machine you are working on. Then do all your tidying to a working copy.
This is the cheapest insurance in the whole process. If the import goes in wrong, the question is always whether you can go back to what you started with, and the answer should never be no because you edited over it.
Why an import is a decision rather than a task
The word import makes it sound mechanical: a file goes in one end and your business comes out the other. That framing is what causes most of the trouble, because it hides the fact that somebody has to decide what a customer is, which of these rows still count as one, and what happens to the ones that do not fit.
A software import can move fields. It cannot decide that the person who called you once, four years ago, about a car they no longer own is not worth carrying. Nothing can decide that except you, and the quality of the list you end up with is almost entirely the quality of that decision.
This is also why an import that fails rarely fails technically. It fails because the list that arrived is a list nobody trusts, so people go on using the old system to look things up, and now there are two systems and neither is complete.
What the new system is really doing with the list
A customer list in a spreadsheet is a set of rows. A customer list in job software is usually a set of connected things: a person, the vehicles that belong to that person, and the jobs that happened to those vehicles. The import has to decide how your flat rows become that shape.
That is why the same file can go in beautifully or badly depending on nothing more than which column was treated as the vehicle. One customer with three vehicles is one person and three vehicles in the new shape, and it is three separate people in a bad import, each with a third of the history.
It is worth knowing this before you look at your file, because it changes what you look for. You are not just checking that the data is clean, you are checking that it says clearly which rows belong to the same human being.
Why nobody warns you about the notes field
Almost every old customer list has one column doing far too much work. It is called notes, or comments, or details, and over the years it has absorbed second phone numbers, gate codes, the name of the person who actually pays, warnings about the dog, and half a service history.
That column is usually the most valuable thing in the file and the least likely to survive an import in a useful state. Software has nowhere structured to put it, so it either lands in a note field where nothing can find it or it does not come at all.
Read that column before anything else moves. Most of the time you will find that three or four kinds of thing are hiding in it, and that pulling one of them out into a column of its own is worth more than everything else you do to the file.
What one row has to carry, and what it can safely lose
This is the list of fields worth arguing about, roughly in the order they earn their place. Everything below the line is optional, and knowing which is which stops you spending an evening tidying a column nobody will ever look at.
The name, split the way you will search for it. If your old list has a single name field holding whatever was typed on the day, decide now whether the new system wants it split, because splitting names after the fact is fiddly and splitting them wrong is worse than leaving them alone.
The number that rings. Not the number that used to ring, not the landline at an address they left, not the workshop number of a business they no longer work for. One number per row that you would actually dial today.
A second way to reach them, where you have one. Some customers only answer texts, some only answer email, and the ones you cannot reach are the ones who quietly become somebody else customers.
The vehicle, with enough to identify it. Make, model, and the plate. The plate is the field that turns a vague memory into a certainty when somebody calls and says you did some work on my car last year.
Whose vehicle it is, if the list does not make that obvious. Households share cars, businesses have several, and one person with three vehicles has to arrive as one person with three vehicles.
What you did last, in whatever short form you have. Not a full history, which will not survive anyway. Even a single line saying rear pads and a rough date is enough to make the first conversation after the switch sound like you know them.
Where they are. A rough address or at least a town matters more for mobile work than for a shop, because it decides whether a job is worth taking and how you group a day.
Anything that flags a person you should treat differently. The customer who does not want messages, the one who never pays on time, the one you have decided not to work for again. These are rarely in a proper column and they are exactly the notes you do not want to lose.
Now the things you can let go without regret. Every field that was empty for most rows. Every field somebody added once and never used again. Duplicate columns holding the same thing in two shapes. Old marketing tags nobody remembers the meaning of. Internal reference numbers from a system you are leaving, which will mean nothing anywhere else.
And a general rule for the argument you will have with yourself: a field you cannot describe the use of in one sentence is a field that has not earned a place in the new list. You are keeping the old file anyway, so nothing is actually being thrown away.
The dead weight in every customer list, and how to find it
Every list that has been running for a while is carrying rows that are not customers. They are not a sign that anybody was careless, they are just what happens over the years, and finding them is the fastest way to make the import worth having.
The tests. Somebody set the system up and made a few records to see how it worked, and they are usually near the beginning, often with names like test or asdf, sometimes with your own phone number on them.
The people who called once and never came back. This is normally the biggest group by a distance. They are not worth deleting from the old file, and they are not worth carrying either.
The duplicates. The same person entered twice because they called from a different number, or because their name was spelled differently, or because one record was made by you and one by somebody helping you. Duplicates are worth finding before the import rather than after, because software that inherits two versions of a person tends to keep both and split the history between them.
The vehicles they no longer own. A record whose only identifying detail is a car that was sold years ago will confuse you every time it comes up, and it is often easier to keep the person and drop the vehicle than to work out what they drive now.
The businesses that are no longer businesses. Fleet and trade customers turn over, and a contact name at a company that has closed is not a customer, it is an unhappy phone call waiting to happen.
The people you have decided not to work for. If the reason is in your head and not in the file, either write it into the record before you move it or leave them behind on purpose. What you do not want is a clean new list that has quietly forgotten why you stopped answering that number.
How to find all of this without a system: sort the file by the date of the last job, then by surname, then by phone number, and read it once after each sort. Sorting by date shows you the tail. Sorting by surname shows you the spelling duplicates. Sorting by phone number shows you the same person under two names, which is the duplicate that hides best.
Do the cutting in the file, before anybody imports it. Removing a row from a spreadsheet is nothing. Removing a customer from a live system after it has been used is a different and more nervous job, and in some systems it is not really removal at all.
Ask how the import happens, and who is doing it
Software marketing is at its vaguest on exactly this point, because vagueness sells. A page will say bring your customers with you, which is a promise about the outcome and tells you nothing about who does the work. Ask a question that cannot be answered vaguely.
The question is: what exactly happens to this file, who touches it, and what do I have to do myself. Three answers are common and each one is fine if you know it in advance.
There is a screen where you upload it yourself. Then ask what happens when your columns are not named the way the screen expects, because that is where self service imports actually go wrong. Ask whether you get to see what it is going to do before it does it.
A person on their side does it with you. Then ask what they need from you, in what form, and what the conversation involves. This is a good answer for a small list and it changes your planning, because it puts another human being into your timeline.
Nothing goes in and you type. This is a completely valid answer for a small operation and it is the most honest thing a small software company can tell you. It means your switch is a habit change rather than a project, and there is a guide in this cluster on how that is done: draw a line on a date and enter each customer the next time they call.
Two more questions worth asking whichever answer you get. What happens to the parts of my file that do not fit anywhere, meaning the notes column and the history. And can I see what went in before I rely on it, because an import you cannot inspect is one you will not trust.
A last one that people ask too late: if this goes wrong, can it be undone. Some systems can reverse an import cleanly and some cannot, and the difference decides whether your small test batch is a precaution or the only chance you get.
Whatever the answers, write them down. In a month, when something looks wrong, you want to know what you were told rather than what you remember being told.
Where the short answer stops being the answer
Every rule on this page has a situation it does not survive. Here are the ones worth knowing about before you meet them.
Your list lives in your phone contacts and nowhere else
This is more common than software companies think, and it is a better position than it sounds, because phone contacts are usually current. The people in there are people you have actually spoken to.
The problem is that a contact card holds a person and not a vehicle, so the part you need most is missing. Expect to be adding vehicles by hand as customers come back, and treat the contacts list as a source of names and numbers rather than as a customer list.
Be careful about carrying your whole address book across. Your dentist, your parts supplier and your sister are in there too, and a customer list with them in it is a list you will stop trusting.
One customer has several vehicles and the list has room for one
A flat list forces one row per thing, so households and small businesses arrive either as one customer missing most of their cars, or as several copies of the same person.
Decide which failure you prefer before the import rather than after. Usually the answer is one row per vehicle, with the person name and phone repeated on each row, and a note to whoever loads it saying that rows sharing a phone number are the same customer.
If the new system genuinely cannot hold more than one vehicle per customer, that is worth knowing before you choose it rather than after you have moved.
The list is full of duplicates and you cannot tell which is current
Sort by phone number rather than by name. Two records for the same human being usually share a number even when the name is spelled two ways, and this one sort finds more duplicates than anything else you can do by eye.
When two records disagree, keep the one with the most recent job on it and copy anything useful out of the other before you drop it. The older record often holds the address and the newer one holds the working number.
The list is not entirely yours
If the customers came from an employer, a shop you worked at, a partner, or a business you owned with somebody else, then who is allowed to take that list is a real question and it is not one a web page can settle for you.
Sort it out before you move anything rather than after. Ask, get the answer in writing, and if there is any money or any bad feeling involved, spend the small amount it costs to have somebody qualified in your state look at whatever you signed.
The practical version of this is simple enough: a customer who calls you because they want you is yours. A file you took out of somebody else system is a different question.
You are not importing a list, you are importing a history
Some people want the invoices and the repair records to come across too, not just the names. Ask that as a separate question, because it usually has a different answer, and the honest answer in most small trade software is that history does not travel.
The method that works is to keep the old system readable for looking things up, and to start the new one from today. There is a guide in this cluster on making that switch without a migration.
When it has already gone wrong
Most people find a page like this after the fact rather than before it. This part is for them.
The names came in and the phone numbers did not
Stop using the new list for outbound anything until this is fixed, because a list where the numbers are shifted by a column is a list that will text the wrong person about the wrong car.
Go back to the original file, which you kept, and check what the phone column actually contained. The usual causes are a leading character that got stripped, several numbers in one cell, or a column that was read in the wrong position.
Fix it in the file and reload rather than editing records one at a time in the new system. Hand fixing a column is how an evening disappears and how half of it ends up still wrong.
Everybody is in twice
Find out first whether the import ran twice or whether the file itself had duplicates, because the fix is different. Two identical runs are usually easy to identify by the order the records were created.
Then ask whoever loaded it whether the import can be reversed. If it can, the clean answer is to undo it, fix the file, and load it again. If it cannot, work through the duplicates by phone number and keep the record that has anything attached to it.
The list went in and now you cannot find anybody
This is almost always a search problem rather than an import problem, and it is usually the names. If everything arrived as one name field in a format the new system does not search the way you expect, you will keep failing to find people who are definitely there.
Try searching by phone number and by plate before you conclude that a record is missing. If those work and the name does not, you have found the actual fault and it is fixable in the file.
You brought everybody and now the list is unusable
The cure is the cut you skipped, done afterwards. Work out which records have never been used since the import and deal with them as a group rather than one at a time.
Before you remove anything from a live system, check what removal actually does there, and make sure the original file is still safe. Some systems hide a customer rather than deleting them, which is what you want, and some do not.
The notes went missing and they were the valuable part
Go back to the original file. This is the single most common reason people are glad they kept it, because the notes column is the thing most likely to be dropped and least likely to be noticed on the day.
Rather than trying to reload it wholesale, pull out the two or three kinds of thing that were hiding in it and add those to the records that matter as those customers come back. Gate codes and access instructions are usually worth doing straight away.
Questions
How do I import a customer list into a new CRM?
Get a clean file out of the old system, one row per customer with the phone number in a consistent shape, cut it down to the people who are still customers, then ask the new place how their import actually happens: an upload screen you drive, a person who does it with you, or typing. Load a small batch first and check it by searching for people the way you normally would.
What fields should I bring across?
The name in the shape you will search for, one phone number that actually rings, a second way to reach them, the vehicle with its plate, which vehicles belong to which person, roughly what you did last, and where they are. Anything you cannot describe a use for in one sentence can stay in the old file.
Should I import my whole customer list or just some of it?
Just some of it. Most old lists are mostly people who will not call again, and every one you carry makes it slower to find the ones you want. Sort by when you last saw somebody, draw a line, and bring the people above it. You are keeping the original file anyway, so nothing is lost.
Will my job history come across as well as the names?
Ask that as a separate question, because it usually has a different answer. Names and numbers move far more often than finished jobs do, and in a lot of small trade software the history does not travel at all. Plan on keeping the old system readable for looking things up rather than on moving it.
What usually goes wrong with a customer import?
Phone numbers landing in the wrong shape or the wrong column, one customer with several vehicles arriving as several customers, duplicates that were already in the file being faithfully copied, and the notes column being dropped because there was nowhere structured to put it. All four are much cheaper to catch in a small test batch than after the whole list is in.
Do I need software that has a CSV import?
Not necessarily, and it is worth separating the feature from the outcome. What you need is for your customers to end up in the new system. An upload screen is one way, somebody loading it for you is another, and typing them in as they call is a third that works fine for a small list. Ask which one you are getting before you choose the tool, not after.