Skip to main content

Switching software

Switch Detailing Software Without Losing Data

Switching software9 min readApril 13, 2026By Gabriel, who runs a working PPF and detailing shop in Canada
A crate of customer and invoice records lifting cleanly out of an old dashboard and settling into Service VIN with the records intact.
Illustration

The short version

  • You don't have to lose a thing: customers, vehicles, notes, tags, lead source and full invoice history all move across.
  • Export a CSV from your old tool, pick it as the source, and Service VIN matches the columns for you — Urable, OrbisX and Tint Wiz have built-in presets.
  • A dry-run report shows every row that's ready, flagged or skipped before you commit, so nothing drops silently.
  • Re-running a file is safe: duplicates are matched and skipped, so you can't double-bill or double-add anyone.
  • No downtime and no cut-over window — imports run inside your live dashboard, so the shop keeps working.

The data is the real reason you're stuck

Here's the dirty secret nobody in this industry says out loud: most owners stay on detailing software they've outgrown for one reason, and it isn't loyalty. It's that their entire book of business is trapped inside it, and the thought of re-typing three thousand customers by hand is enough to make you close the laptop and live with the pain another year.

I get it, because I've been that owner. You know the tool is slow. You know the quotes look dated and the follow-up never happens and half the buttons do nothing you need. But the customers are in there. Their vehicles are in there. Years of invoices, who paid, who still owes you — all of it lives in a system you've quietly resented for a year. So you stay. Not because it's good. Because leaving feels like setting a filing cabinet on fire.

That fear is the lock. And it's worth naming, because it's the same trap that keeps a lot of us stuck in general: we're all installers before we're business owners. You got into this to lay film and cut tint, not to babysit a database — so anything that smells like an IT project gets pushed to “someday.” The good news is that a migration is not an IT project when the importer is actually built for shops like ours. The lock has a key. Your data can follow you, intact, and you can do it between morning appointments. Let me walk you through exactly how.

What actually needs to move (and what to leave behind)

Before you touch a single button, get clear on what a switch really has to carry. It's a shorter list than the dread makes it feel. Two things matter: your people and your money history.

The people side is the customer book — and everything hanging off it:

  • The customer: name, email, phone.
  • Their vehicles: year, make, model, VIN, plate — kept linked to the right owner, so a returning Model 3 is still their Model 3.
  • The context you've built up over years: notes, tags, and where the lead came from. “Prefers text,” “fleet account,” “came from a referral.” That stuff is gold and it moves with them.

The money side is your invoice and payment history: every invoice, its status, and what's actually been collected. That's the record that tells you who still owes you and keeps your revenue reporting from starting over at zero the day you switch.

Now the part nobody tells you: a migration is the one honest moment to clean house. Every old system I've ever seen is carrying dead weight — duplicate contacts, a tire-kicker lead from 2021 who never booked, three empty columns some previous tool insisted on. You do nothave to haul all of it into the new place. Treat the export like moving houses: this is when you throw out the junk drawer, not repack it. Bring the customers who are real and the history that matters, and let the rest stay in the box you're leaving behind.

What comes across in a proper migrationIllustrative example
  • Customers35%
  • Job history30%
  • Photos & docs20%
  • Invoices15%
What comes across in a proper migration
SegmentValueShare
Customers3535%
Job history3030%
Photos & docs2020%
Invoices1515%
Your migration, hour by hour
  1. 1

    Export

    Pull a customers CSV and an invoices CSV out of your old tool.

  2. 2

    Back up

    Keep a copy of both exports somewhere safe before you touch anything.

  3. 3

    Match columns

    Pick your source; presets or the matcher line the columns up for you.

  4. 4

    Review the report

    Read the ready / flagged / skipped dry-run, by row number, then commit.

  5. 5

    Work normally

    Customers are in; keep quoting and booking while invoice history follows.

Illustrative sequence, not a guaranteed clock time — the review step is yours to take as long as you like.

The migration, step by step

  1. 1

    Export your data from your current software

    Open your current tool and find its export. Pull your customers to a CSV, then your invoices to a second CSV. That's it — two files. Honestly, the slowest part of most migrations isn't the import, it's hunting for the export button, because every platform hides it somewhere different. If your tool is Urable, OrbisX or Tint Wiz, Service VIN's wizard even tells you where that button lives, so you're not spelunking through settings.

  2. 2

    Back it up and skim it once

    Before you do anything else, save a copy of both exports somewhere safe — a folder, a drive, your email to yourself, whatever you'll find later. Your old system almost certainly has no undo button, so that backup isyour undo. While you've got the file open, skim it for obvious junk: the duplicate rows, the blank contacts, the columns full of nothing. You can't really over-prepare here, and two minutes of skimming now saves you a cleanup later.

  3. 3

    Pick your source and let the columns match

    Drop the file into Service VIN's import wizardand pick where it came from. Urable, OrbisX and Tint Wiz are first-class presets — they already know those platforms' column names and line them up for you. On something else? Use the plain-CSV path: the matcher recognizes dozens of common headers on its own, and anything it misses you map with a dropdown, using live examples pulled from your own file so you can actually see you got it right.

  4. 4

    Read the dry-run report, then commit

    This is the step that should melt the fear. The importer dry-runs the whole file first and shows you the outcome before a single row is written — what's ready, what's flagged (and still imports), and what would be skipped, down to the row number, with the reason. A stray VIN, an “n/a” where an email should be, a contact with nothing to reach them by. You commit with your eyes open, and the report is kept afterward as your migration receipt.

  5. 5

    Bring your invoice and payment history across

    Once your customers are in, run the invoice file the same way. Historical invoices land with their status intact and the money you already collected is written into the payment ledger as real payments — so the record shows who still owes you from the moment it finishes. Most shops do this the same week, not the same minute, and that's completely fine.

Bringing your invoice and payment history across

The invoice piece is where owners hold their breath, so let me spell out exactly what survives. Each historical invoice comes in with the same status it had in your old system — paid, partially paid, open, or void — so your receivables list is honest on day one instead of a wall of “open” you have to re-mark by hand. Subtotals, tax and totals map to their own fields, and if a row's math doesn't add up, the report flags it rather than quietly swallowing it.

The part that actually matters for your books: money you've already collected doesn't arrive as a note on the invoice, it arrives as a real payment record in the ledger. That's the difference between a number that looks paid and a balance that reconciles. A customer who paid a deposit and still owes the rest shows the right amount due. Someone who paid in full reads paid. Your revenue reporting stays continuous across the move, which means tax season isn't split across two systems — a small mercy you'll thank yourself for in April.

Invoice numbers get the careful treatment too. If your numbers are numeric and still free in your new shop, they're kept as-is. If a number's already taken or isn't numeric, Service VIN assigns the next clean one and tucks the original into the invoice's notes, so nothing's lost and nothing collides. And your future invoices keep counting above the imported history, so there's no awkward moment three months from now where a new invoice tries to reuse an old number. From there, every imported invoice is a normal record that feeds the rest of the shop — the same quoting and invoicing engine your new work runs through.

Handling duplicates without double-billing

“But what if I mess up the mapping and have to run it again?” is the question I'd be asking too, because a bad re-import is exactly the nightmare that keeps people frozen. So here's how the importer protects you from yourself.

Customers are matched by email or phone. Run the same file twice and the second pass recognizes people who are already in and skips them — it doesn't create a shadow copy of every contact. Invoices are matched by customer, total and date, so re-importing an export can't double-bill anyone or inflate your revenue with phantom copies. Every skip is reported, not silent, so you can see the safety net working.

The smart bit is what happens when a “duplicate” row isn't fully a duplicate. Say a returning customer's row carries a VIN your shop hasn't seen — a truck they bought since the last export. The contact is skipped as already-known, but that new vehicle is added to their existing record instead of being dropped. You get the update without the mess. And if you genuinely want everything in a particular file, you can turn duplicate-skipping off for that one import. The default keeps you safe; the override is there when you actually mean it. Either way, that customer book becomes a live CRM you can work, not a static list you're afraid to touch.

Re-running a file is a two-minute do-over, not a disaster

Because duplicate-skipping makes re-runs safe, you don't have to get the mapping perfect on the first try. Fix a column, drop the file in again, and the rows that already imported simply skip. That's the whole reason the dry-run report exists: to let you look before you leap, then leap again if you need to, without breaking anything.

No downtime: how to sequence the move

Let's kill the last excuse. There is no “switch weekend.” Nothing to install, no server to stand up, no cut-over window where the shop goes dark while data migrates. The import runs inside your live Service VIN dashboard while everything else keeps working — you can be quoting a full front, booking a ceramic job, and texting a customer at the same time the file lands.

So sequence it the lazy, sensible way. Import your customers first. That alone gets you working: you can quote, book and text real people on day one. Then bring your invoice history across later that week, whenever there's a slow hour. There's no rule that says the whole move has to happen in one sitting, and honestly it shouldn't. Get the people in, start using the tool for real, and let the financial history follow at its own pace. The shop never stops earning while you move in.

One practical note on file size, since I'd rather you hear it from me than be surprised: a file imports in one pass of up to 5,000 rows. If your book is bigger than that, you just split it across a couple of files and run them back to back. Not a big deal, and the duplicate handling means the seams between files don't create problems.

After the move: verify, then keep your old export

Once the dust settles, do three quick things and you're done for good.

Trust the report, then spot-check.The validation report already told you the counts and accounted for every row, so start there — it's your source of truth for what came in and what got flagged. Then pull up a handful of records you know well: your best repeat customer, a partially-paid invoice, a fleet account with a few vehicles. If those look right, the thousands behind them almost always are.

Keep the old exports.Archive those CSVs somewhere you can find them. Not because you'll need them — you probably won't — but because they cost nothing to keep and they're handy the one day an accountant asks a question or a customer disputes a two-year-old balance. A backup you never use beats a backup you wish you had.

Then just work.Everything that imported is a normal Service VIN record — you can edit it, quote off it, book against it, same as anything you create fresh. The migration was never the destination; it was the toll booth. If you're weighing the jump off a specific platform, we lay it out plainly on the Service VIN vs Urable comparison, fair and factual, no theatrics. The lock-in was always the lie. Your data follows you.

Frequently asked questions

Will I lose my invoice history when I switch?

No. Historical invoices import with their status (paid, partially paid, open or void), subtotals, tax, totals and balances intact, and money already collected is written into the payment ledger as real payment records. Every balance reconciles from day one. Most shops import customers first and bring invoice history across the same week.

Do I have to shut the shop down during the switch?

No. Imports run inside your live Service VIN dashboard while quotes, bookings and texts keep working, so there's nothing to install and no cut-over window. You import customers, keep working normally, then bring history across when it suits you.

What if my current software isn't Urable, OrbisX or Tint Wiz?

Use the plain-CSV path. If your tool exports a CSV with a header row, Service VIN can import it. The matcher recognizes dozens of common column names, and you map anything it misses with a dropdown, using live examples from your own file so you can see you got it right.

What happens if I import the same file twice?

Nothing bad. Customers are matched by email or phone and invoices by customer, total and date, so duplicates are skipped and reported rather than doubled. Fixing a mapping and re-importing the file is a safe two-minute do-over, not a disaster.

Do my invoice numbers survive the move?

Numeric invoice numbers are kept as-is when they're still free in your shop. If a number is taken or isn't numeric, Service VIN assigns the next clean number and keeps the original in the invoice's notes, and future invoices continue numbering above the imported history so there are no collisions later.

Gabriel headshot

Gabriel, who runs a working PPF and detailing shop in Canada

Runs a working PPF and detailing shop in Canada · builder of Service VIN

Gabriel runs a working PPF and detailing shop in Canada and built Service VIN. He got his start detailing and wrapping his own car, taught himself color PPF, and spent his day job in digital marketing and SEO before building the shop software he could never find. Six years in, he writes to help other owners get out of the bay and actually run their business.

Keep reading

The newsletter

Get the next one in your inbox

Pricing, quoting, hiring and margin — written from the bay and the books. We send new posts and nothing else.

New posts about twice a month. No sales blasts, unsubscribe in one click.

Run your shop on Service VIN

Quote for margin, book without double-booking, and put your follow-up on autopilot. Try every feature free for 14 days — no credit card required.