All articles

Custom CRM

Export Your Data From Your Current CRM: 3 Layers

Your CRM data sits in three layers and only one has an export button. Here is what actually comes out, what gets stranded, and the order to pull it.

Om Patel 17 min read
Photo: Caique Morais / Unsplash

The short answer

Your data lives in three layers. Rows (customers, jobs, invoices) export to CSV in minutes. Files (photos, signed PDFs, attachments) usually have no bulk export and take days. Screens (selections, approval threads, non-CSV reports) never export at all and must be printed to PDF. Pull all three before you give notice.

The short answer

Stop thinking of this as one export. It is three separate pulls, they take wildly different amounts of time, and the one everybody plans for is the one that never causes problems.

Log in tomorrow morning while your account is healthy and paid, and pull your list views to CSV. That takes an afternoon and works on every platform worth naming. Then budget days, not hours, for your files. Then accept that a third category of your business history is not a file at all, and will only leave the platform as a PDF you print yourself.

The owners who get burned are not the ones who forgot to export. They are the ones who exported the rows, saw a folder full of spreadsheets, believed they were finished, and cancelled.

Your data is in three layers and only one has a button

Every piece of information in your current system falls into one of three layers, and the layer determines how hard it is to get out.

LayerWhat is in itHow it comes outRealistic time
RowsClients, properties, jobs, estimates, invoices, payments, price book, tagsCSV export from a list view2 to 4 hours
FilesJob photos, signed contracts, attached PDFs, plans, permits, receiptsUsually no bulk export, one click at a time or scripted1 to 5 days
ScreensSelections, change order approval threads, client message history, non-CSV reportsPrint to PDF, manually, screen by screenDepends entirely on scope

This matters because the published advice collapses all three into one step. The contractor migration guide currently ranking at the top of Google for this search lists "Step 1: Export everything from your current CRM (1-2 hours)" and asserts every major contractor CRM offers CSV export, with the caveat that "some platforms require a support request for photos and attachments."

That caveat is doing an enormous amount of work. Photos and attachments are not a footnote to your job history. For a remodeler or a restoration shop they frequently are the job history, and they are the layer with no button.

Watch out

A CSV export is not a backup of your business. It is a backup of your rows. If your defence in a warranty dispute two years from now is a signed change order and a dated photo of a wall cavity, neither of those is in the spreadsheet you just downloaded.

Layer one: the rows

This is the easy part, and it is genuinely easy. Do it first because it is fast and it gives you a manifest of everything else you own.

The pattern is the same across platforms: open a list view, filter it to everything rather than the default recent window, and export. In Jobber, clients come out from the Clients page through More Actions, then Export Clients, as CSV or vCard. Housecall Pro exports jobs, estimates and the price book to CSV. ServiceTitan's customer list exports to CSV from the customer list view.

Pull all of these, not just contacts:

  • Clients and properties, including inactive and archived ones, which most platforms exclude from default views.
  • Jobs and work orders, with as much date range as the export will give you.
  • Estimates and quotes, including declined ones, which carry your pricing history.
  • Invoices and payments. If your accounting lives in QuickBooks or Xero, this layer is partly duplicated there, which is one of the few places you already have a second copy.
  • The price book. Rebuilding one by hand is a multi-week project and it is pure rows, so there is no excuse for losing it.
  • Custom field values, which usually ride along as extra columns in the job or client export.

One warning on the last item. Custom fields are where the trade-specific detail lives: equipment installed, gate codes, membership tier, panel type, serial numbers. Housecall Pro documents that custom field columns are included in CSV exports automatically, using each field's name as the column header. Not every platform is that clear, so verify the columns are actually there rather than assume.

Layer two: the files

Here is where the weeks go, and here is where the advice online stops being useful.

An r/Contractor thread captures it exactly. An owner asked whether anyone had made it off CoConstruct after Buildertrend, which acquired it in 2021, put it into maintenance mode. His framing was precise: "the switch itself isn't what keeps me up at night. it's the migration." What he described was a layer two problem. "the part nobody warns you about is getting your own data out. no bulk export, files trapped in the platform, downloading stuff one at a time until you give up."

The most useful reply in that thread was also the most specific. Open one job's documents page with browser developer tools on the Network tab. The file list arrives as a plain data request behind the scenes, and that request is the map: every file, its ID, and the job it belongs to. Downloading them in sequence is then a loop that runs while you sleep, on your own logged-in session, with no password sharing and no third party touching the account.

Three things decide whether that effort was worth anything, and they are the steps people skip:

Build a manifest as you go. One row per file: job name, date, original filename, where it landed on your drive. As the same commenter put it, "A folder with 9000 files nobody can search is not an archive, it is a landfill." The manifest costs nothing to write while the download runs and it is the entire difference between an archive and a pile.

Count before you trust it. The platform tells you how many documents each job has. Compare that against your manifest job by job. A pull that quietly misses a few hundred files is worse than no pull at all, because you find out in two years when a client disputes a change order.

Do it while the account is healthy. Rate limits tighten and pages start disappearing once an account is winding down, and the same job that was an afternoon becomes impossible.

If nobody in your shop will open developer tools, there are two honest alternatives. Ask support in writing for a full data export while your subscription is active, because some vendors produce a dump they do not advertise. Failing that, pay an assistant for twenty hours to click through a checklist you write. Your own hour, as estimator and salesperson, is worth considerably more.

Tip

Do the file pull before you tell anyone you are leaving. Not because anyone will act in bad faith, but because access narrows mechanically once a cancellation is in flight, and because you lose the ability to ask a support team for favours the moment you stop being a renewing customer.

Layer three: the screens

This is the layer nobody plans for, and it is the one that shows up in disputes.

Some of your most important records are not rows and not files. They are interfaces. A selection sheet where a homeowner picked a tile. A change order approval thread where the client typed "yes go ahead" and the timestamp is the whole point. A comment history establishing when you flagged a problem. None are attachments, so no file pull catches them. None are list views, so no CSV export catches them either.

They leave the platform only if you print each one to PDF, named by job and date. That is tedious, and it is the material that decides arguments.

Vendors document this gap once you go looking. Jobber's help centre states directly that "Not all reports can be exported. The Taxation, Waypoints, and Job Follow-ups reports are all in formats that cannot be exported since they are not .csv files." Its documentation says the same of the team productivity report. That is not a criticism of Jobber, which is being unusually straightforward. It shows that even a well-documented platform has a layer three, and you will only find its exact shape by reading the help centre before you need it.

Read your vendor's data promise literally

ServiceTitan is the only major platform in this category with a public, named data commitment, which is to its credit. It is also a useful lesson in reading precisely.

The Open Data Pledge says: "we pledge to recognize and respect the data rights of our customers. Most importantly, we pledge to enable the seamless export of customer data to a CSV format, so that if or when a customer chooses to go elsewhere, they are free to do so with as little obstacle and with as much convenience as possible."

Read that against the three-layer model. It is a strong, specific, quotable commitment about layer one. Cite it by name when you request your export, because it gives you something concrete to point at. But notice what the sentence covers: customer data, in a CSV format. Job photos are not customer data in a CSV. Signed PDFs are not customer data in a CSV. Call recordings are not customer data in a CSV.

By the numbers

The pledge covers one of your three layers. That is one layer more than most vendors commit to in writing, which tells you how little the industry norm actually guarantees.

There is a second oddity worth knowing. Some of the clearest offboarding documentation for a platform is published by its competitors. Housecall Pro maintains a public page titled "Do this before you cancel ServiceTitan," which walks through the customer list export and the cancellation mechanics. It is a marketing asset, obviously. It is also accurate and more direct about the timeline than most first-party help centres.

The clock is shorter than you think

Cancellation timelines turn a manageable project into an emergency.

Per Housecall Pro's guide, ServiceTitan gives limited access to a cancelled account for 60 days after cancellation to export customer data, and that guide recommends exporting before you cancel rather than relying on that window. It also notes that a month-to-month subscription requires 30 days notice, and that on termination "your access to ServiceTitan and any information stored by ServiceTitan will also terminate."

Two rules follow. Never treat a post-cancellation window as your plan. It is a fallback for something you forgot. Those windows are frequently read-only, and a read-only account is exactly the wrong place to discover that your file pull needs an active session.

Assume the notice period and the export period overlap badly. Thirty days notice plus 60 days of read-only access sounds generous until you realise the export you actually care about, the files, wants a fully functional account and a week of unattended downloading.

If you are mid-migration and staring at a platform with no bulk export, we can tell you in one call whether your files are reachable and roughly what pulling them costs. We do these audits for contractors whether or not they end up building with us, because a shop that cannot leave its software has a business problem before it has a software problem.

Book a free CRM demo

Do not migrate history, archive it

The most valuable advice in that r/Contractor thread was a scope decision, not a technique: you do not migrate history, you archive it. Every owner who tries to move years of selections and change order threads into a new platform loses weeks and still ends up with half of it wrong.

Draw a date line and sort everything into three buckets:

BucketWhere it goesEffort
Closed jobsRead-only archive in dated folders on your own driveThe export, once
Active jobsRebuilt by hand in the new systemAn evening or two
Future jobsStart clean in the new system from day oneNone

The scope reduction that makes the archive finite is deciding what you actually need. Four documents per job cover warranty and disputes, the only real reason to keep any of it: the contract, the approved selections sheet, the change orders and the final invoice. You rarely need the live comment thread again.

A shop running four to eight jobs at a time has maybe two evenings of hand-rebuilding in the active bucket. That is a completely different project from "move nine years of history," which is why this framing matters more than any tool.

Run both platforms in parallel while you do it. Thirty to sixty days is the range practitioners in that thread named, and the logic is that you should never be in a position where the only copy of a change order lives in a system you already cancelled. One builder there described running Buildertrend alongside CoConstruct for six months before switching fully. Yes, you pay for both. That overlap is the actual price of switching, and it is cheaper than a week of chaos across every live job.

What breaks on the import side

An export that succeeded does not mean an import that succeeded, and the import side fails quietly.

Your new platform has limits your old one did not. Housecall Pro publishes its constraints clearly, which makes it a good worked example: custom fields are capped at 20 per organization, text fields hold up to 255 characters, number fields up to 10 digits, and dropdown or checklist fields up to 20 options. Custom fields are not yet supported on customer profiles or estimates, only on jobs. Field type cannot be changed after a field is saved.

Map that against a real shop. If you kept a freeform equipment history in a job note running several paragraphs, a 255 character limit truncates it. Nothing errors. The record simply arrives shorter, and you find out when a tech is standing at a panel wondering what was installed. If you had 34 custom fields and the new platform caps at 20, fourteen have nowhere to go, and you decide which fourteen before the import rather than after.

So the verification step is not optional:

  • Import a test batch of 50 to 100 records first, and inspect it field by field before running the full import.
  • Run a count check. If 2,847 client records went out and 2,831 arrived, sixteen failed. Find them.
  • Verify every open estimate and in-progress job exists. A pending estimate that vanishes in migration is real revenue.
  • Check your longest records specifically. Truncation only shows up at the tail, so sort by note length and inspect the top of that list.

Test the exit on the way in

Before you sign with the next platform, ask the vendor for a full sample export of a demo account, and confirm two things with your own eyes. First, that job and customer data comes out as CSV. Second, that files come out in bulk rather than one at a time. If the response is vague, or it becomes a support ticket, or the answer is to contact your account manager, you are buying the same trap with a nicer interface.

Then, once you are live, export your own backup quarterly into a dated folder. It takes an afternoon four times a year and it means you never again depend on a vendor's goodwill, a support queue, or a 60 day window during a month when you are also trying to run jobs.

Note

One honest caveat about researching this online. Threads where owners ask how to escape their software fill up fast with people selling the alternative. In the CoConstruct thread cited throughout this article, several of the most detailed replies came from people who build migration services or competing platforms, and at least one closed with a link in the bio. The technical advice held up, which is why it is here. But read every migration recommendation asking who benefits, including this one.

Your export checklist

Work in this order. The order is the point.

  1. Before you tell anyone. Read your contract for the notice period and any post-cancellation window. Write down both dates.
  2. Day one. Export every list view to CSV: clients, properties, jobs, estimates, invoices, payments, price book. Keep two copies, one local and one in cloud storage.
  3. Day one. Ask support in writing for a full data export while you are still an active customer. Name the vendor's data pledge if it has one.
  4. Days two to five. Pull the files. Script it or pay someone to click. Build the manifest as you go.
  5. Day five. Count check the files against the platform's own per-job document counts.
  6. Days five to seven. Print layer three to PDF: selections, change order approvals, and any report not offered in CSV.
  7. Then, and only then. Give notice.
  8. After notice. Run both systems in parallel for 30 to 60 days.
  9. Before the old account dies. One final export as a permanent archive.

The bottom line

The question "how do I export my data from my current CRM" has a misleading answer, which is why so many owners get caught. The literal answer, click export on each list view, is correct and takes an afternoon. It is also about a third of the job.

The real work is the two layers underneath: files with no bulk export, and screens that are not files at all. Do those while your account is fully active, cut the scope to the four documents per job that actually matter, and archive the past rather than dragging it into a new system.

And when you pick the next platform, spend ten minutes testing whether you could leave it. If you are also weighing which platform to move to, our breakdowns of ServiceTitan alternatives for small shops and Jobber alternatives for small contractors start from the same principle: the exit terms are a feature, and they belong on the comparison sheet next to the price. That is also the standard we hold ourselves to when we build a CRM around how a shop actually works. Software you cannot leave is not software you own.

Frequently asked questions

How do I export my data from my current CRM?
Export in three passes, not one. First pull every list view to CSV: clients, jobs, estimates, invoices, payments and the price book. Second, pull the files, which usually have no bulk export and need a scripted browser session or a paid assistant working through a checklist. Third, print to PDF anything that is a screen rather than a file, such as selections, change order approval threads and reports the vendor does not offer in CSV. Do all three while the subscription is still active and paid.
How long do I have to export my data after I cancel?
Less time than you think, and the window varies by vendor. Housecall Pro's own guide to leaving ServiceTitan states that ServiceTitan gives you limited access to a canceled account for 60 days after cancellation to export customer data. It also notes that for a month-to-month subscription ServiceTitan requires 30 days notice, and that upon termination your access to ServiceTitan and any information stored by ServiceTitan will also terminate. Treat any post-cancellation window as a fallback, never as the plan.
What data can I not export from my CRM?
Anything that is a screen rather than a row or a file. Jobber's own help documentation says plainly that not all reports can be exported, and that the Taxation, Waypoints and Job Follow-ups reports are in formats that cannot be exported because they are not CSV files. Jobber separately documents that the team productivity report cannot be exported as a CSV. The same is true across platforms for selection sheets, change order approval threads and client message history.
Does the ServiceTitan Open Data Pledge mean I get everything back?
No, and the wording is worth reading literally. ServiceTitan pledges to recognize and respect the data rights of its customers and, most importantly, to enable the seamless export of customer data to a CSV format. That is a real and useful commitment, but it is a promise about customer data in CSV. It is not a promise about job photos, signed documents, attachments or call recordings, none of which are rows in a spreadsheet.
Should I migrate my job history into the new system?
Usually no. Migrating years of history is where owners lose weeks and still end up with half of it wrong. Draw a date line instead: closed jobs become a read-only archive on your own drive, active jobs get rebuilt by hand, and new jobs start clean in the new platform. For the archive, four documents per job cover almost every warranty and dispute you will ever face: the contract, the approved selections sheet, the change orders and the final invoice.
How do I avoid getting trapped by my next CRM?
Test the exit before you sign, not after. Ask the vendor for a full sample export of a demo account and confirm two things yourself: that job and customer data comes out as CSV, and that files come out in bulk rather than one click at a time. If the answer is vague or routed to a support ticket, you are buying the same trap with a nicer interface. Once you are live, run your own export quarterly so you never depend on a vendor's goodwill.
Can I lose data on the import side even if the export worked?
Yes, and it usually fails quietly. Your new platform has field limits your old one did not. Housecall Pro, for example, caps custom fields at 20 per organization, limits text fields to 255 characters and dropdown or checklist fields to 20 options, and does not yet support custom fields on customer profiles or estimates. A 900 character job note imported into a 255 character field does not throw an error, it just arrives shorter. Always run a count check after import.
Bespoke pipelines, automations, 360° customer records and real-time reporting, a CRM built around how your team actually works, connected to your entire stack.
Book a free CRM demo

Free tools

Find out what your site is costing you.

Enter your address and we check the real page. Scores are free and the itemised report lands in your inbox. No account, and we change nothing on your site.