Data import
What it's for
Data import brings your existing customers, contacts, sites, equipment, service agreements, and service history in from a file. It reads your columns, proposes what each one maps to, shows you what it is about to create, and only then writes anything. Direct connectors for ServiceTitan, Housecall Pro, QuickBooks, and Workiz are not available yet.
Reach it from Data and connections → Data import, at /import.
Tabs
Before a file is chosen the screen offers two tabs: New import and Import history. Once a file is loaded, the import itself is a sequence rather than a set of tabs: upload, map, review, commit.
Panels and controls
Upload
Download template gives you the shape of a clean file if you are building one from scratch. Otherwise upload the export you already have — the importer is built to read files it did not design.
Mapping
Each of your columns is shown with a Source column, a Sample value, what it Maps to Thermal field, and a Status. Change overrides a mapping the importer got wrong. Seeing a real value from your own file next to the field it will land in is what makes a mapping mistake obvious before it is permanent.
Review
Before anything is written you see the records that will be created — Customer, Contact, Service address, Equipment, Agreement, and Service history — each with a Confidence, plus any Issue and the Action proposed for it. Ticking Import on a row includes it; leaving it unticked leaves it out. A row the importer is unsure about is surfaced rather than guessed at.
Commit
Only the rows you selected are written. Go to Customers takes you to the result.
Try again re-runs a step that failed rather than making you start over.
Import history
Lists every committed import pass, newest first: when it ran, the source file, who ran it, and how many customers it created that are still on file. Each row offers Delete this import, which soft-deletes the customers that pass created.
The delete is all-or-nothing and refuses rather than partially applying: if any customer from the run now has a service agreement, work order, or unpaid invoice, the run is refused and every blocking customer and reason is listed, with no writes. Customers the run merged into rather than created are never touched. A successful delete stamps the run as reverted and writes one audit entry (who, when, run, row count).
What it accepts
| Field | Format | Required | Rule |
|---|---|---|---|
| Import files | .csv, .tsv, .iif, .qbo, .ofx, or .xlsx | Yes | Up to 5 files per pass, totalling up to 25 MB |
| Source lines | A mapped customer list is read in full; files that need automated structuring are read in requests of up to 150 lines, at most 8 per pass | Yes | If lines are not read, split the export into smaller files and repeat the header row in each file |
| Column mapping | Pick a Thermal field per column | Yes, per mapped column | Unmapped columns are ignored rather than guessed |
| Row selection | Tick the rows to import | Yes | "No customer rows selected for import." |
Spreadsheets must be the modern .xlsx format — the older .xls binary format is not supported; save it as .xlsx or CSV and upload again.
If the review screen reports that source lines were not read, import the split files one pass at a time. The 25 MB total applies separately to the files selected for each pass.
Import has to be switched on for your shop; without it the screen says "Import not available — contact support to activate."
How to configure it
- Import availability is set for your shop rather than by you — the message above tells you when it is not on.
- Branches decide which branch imported records are assigned to.
- Price book tiers decide the pricing imported customers land on.
- Equipment types come from the trades your shop has enabled, so importing equipment for a trade you have not turned on will not map cleanly.
Who can see it
This screen sits behind the Customers area, and lives under Settings.
Owners, office managers and dispatchers can open it, though in practice importing is an owner-and-office job — it writes across the whole account. The gate is checked on the server, not just hidden in the sidebar, so a direct link does not get around it.
The full role matrix is on Roles & permissions.