Start free

Migration

Move your service historywithout an implementation project.

Export what you have, stage it for review, and approve what moves: a process you control, not an all-or-nothing cutover.

Four steps. Each one reviewable.

You decide what lands in Thermal. Nothing imports itself.

  1. 01Export what you have

    A spreadsheet, a report from your accounting system, or an export from the system you run today. No special format: if it opens as a spreadsheet or CSV, it can usually be mapped.

  2. 02Stage and map

    Rows are structured into customers, sites, equipment, service history and agreements, and each column is mapped to the right field. Nothing is written to your live records at this step.

  3. 03Review exceptions

    Every row carries a confidence score. Likely duplicates are flagged before you commit, and you can include or exclude individual customers or pieces of equipment.

  4. 04Approve and commit

    Nothing touches your live records until you approve it, row by row. Matching uses your own record IDs, so re-running a corrected file merges changes instead of creating duplicates.

The review, before anything lands.

Every parsed row goes to a draft staging area, never straight to customers, equipment or agreements.

Draft-only staging

Every parsed row is written to a staging table, never directly to customers, equipment or agreements.

Scores and warnings

Every row carries a confidence score. Ambiguous rows are raised as warnings, never silently guessed.

Duplicate and exception review

A likely duplicate customer is flagged before you commit, and every row, and every piece of equipment on it, can be included or excluded.

Safe to re-run

Running a corrected file, or the same file twice, merges into existing records instead of duplicating them.

Explicit approval

Nothing is written to your live records without an approve action, row by row.

Import · customers-and-equipment.csvStaged, not live

Review before anything lands

Draft rows · nothing written to live records yet

Score · rowDecision
96
Harbor Medical Campus
Include
Matched by your ID C-1042 · 3 sites
61
Northstar Cold Storage
Likely duplicate
Another row in this file looks like the same customer. Merge or exclude.
88
RTU-07 · packaged rooftop
Include
Typed as Rooftop unit · serial 2118G40372
—
Unit 14B · “Heat wheel”
Rejected
No matching equipment type. Rejected, not guessed.
74
Open job · Garfield MS
Needs review
Status “Pending parts” cannot be placed as open work.
Approve selected rowsExclude

What comes across.

RecordWhat happensStatus
CustomersUpload a spreadsheet or CSV of your customer list. It is structured, staged for review and committed only after you approve it.Live
Service sitesA customer’s service address imports and attaches to the customer as a site record.Live
Installed equipmentRows import typed against your active equipment types, deduplicated by external ID (or make, model and serial when there is none), and rejected, never guessed, if the type does not match.Live
Service historyPast visits attach to the matching piece of equipment, deduplicated so a re-import does not create duplicate history.Live
Service agreementsPlan details (status, plan name, dates, price, cadence) import onto the customer’s agreement.Live
Open workOpen jobs import linked to the imported customer and site. A status that cannot be placed as open work goes to review and is never guessed.Live
Open invoices and balancesOpen invoices and customer opening balances import as a starting balance. Payments taken in Thermal on an imported invoice are not sent to QuickBooks Online until you turn pushing on.Live
AttachmentsPhotos and documents attached to historical jobs do not carry over in this flow.Does not carry over
General ledger, payroll, construction accountingThis import does not migrate a general ledger, payroll, retainage-heavy construction accounting or a custom ERP build.Not imported

Closed jobs come over as service history on the equipment, not as a re-creation of every past invoice.

While it runs.

Switching here is not an all-or-nothing cutover.

Keep working
Rows wait in staging while the shop works as it does today. Nothing in Thermal is live until you approve it.
Fix and re-run
Found a problem in the export? Correct the file and run it again. It merges by your own record IDs instead of duplicating.
Any export
Different columns, different names, several files for customers, equipment and history: the mapping and review steps exist for exactly that.

Straight answers.

How long does a migration take?

It depends on how much data you bring and how clean the export is, so there is no single number. The shape is fixed: staged, reviewed and approved in steps you control.

Will this touch our live data before we are ready?

No. Every parsed row is written to a staging table, never directly to your live customer, equipment or agreement records. Nothing commits until you review it and approve it, row by row.

What if we run the import twice, or fix a file and upload it again?

Matching uses your own record IDs. Re-committing an imported customer updates it instead of creating a duplicate, and the same applies to equipment, service history and agreements.

Do you bring over open work orders and invoices?

Yes. Open jobs import linked to their customer and site, and open invoices import as a starting balance. Payments taken in Thermal on an imported invoice are not sent to QuickBooks Online until you turn pushing on.

Do you need a specific export format?

No. If you can get your data into a spreadsheet or CSV, it can usually be mapped. The mapping and review steps exist because every shop’s export looks a little different.

The other half of switching.

Leaving is written down too. You read the exit terms before you sign, and your records leave with you whenever you choose.

Exit terms
Published. Read them
Penalty
No penalty exit clause.
Your data
Customers, sites, equipment, history and agreements export free, any time. No export ransom.

Bring your export.We will walk the first pass with you.

Essential cookies remember your choices and are always on.