Import & Export
Bring your clients and price list in from a CSV file, check how every column maps before anything is created, and download all of your data whenever you want.
Last updated Aug 10, 2026
Everything on this page lives under Settings → Import & Export. If you're coming from another app, this is the page that gets your client list and your price list into Jobkore without retyping them. It's also where you download everything you have, any time you want it.
#What You Can Import
Three lists import from CSV, and all three export back out again.
| List | What comes across |
|---|---|
| Clients | Name, address, contact name, email, phone, role, notes, default rate |
| Catalog | Item name, description, rate, cost, markup, unit, taxable |
| Subs | Subcontractor name, contact, trade, email, phone, license number, insurance expiry, payment terms |
Rows in a client file that share the same client name are treated as multiple contacts on one client, not as duplicate clients — so a file with three people at the same builder imports as one client with three contacts.
Estimates and invoices don't transfer
CSV exports from other contractor apps carry the header of a document — the client, the date, the total — but not the line items inside it. An imported estimate would be an empty shell, so Jobkore doesn't import them at all. Work you're still owed on has to be re-entered by hand. Export your documents as PDFs from your old app before you cancel it, and keep them for your records.
#Dropping a File In
Drag a .csv file onto the drop zone, or tap Choose File. Jobkore reads the header row, works out whether it's a client list, a catalog or a sub list, and opens the right importer with your file already loaded.
If the file can't be placed with confidence — a spreadsheet with a single Name column could be any of the three — you're asked which one it is rather than being sent to the wrong screen. Files are limited to 5 MB, which is far larger than any real client list or price list.
You can also start from the list itself. Clients and Catalog both have an Import action on the page and on their empty state, and they open the same importer.
#Mapping & Preview
Nothing is created until you've seen what will be created. The preview screen lists every column in your file with a dropdown next to it and sample rows underneath, so you can see real values sitting under the field they're about to become.
- Recognized columns are filled in for you. Common variations are handled —
Customer,Client NameandCompanyall land on Name;Zip,Postal CodeandZip / Postal Codeall land on ZIP. - A column Jobkore can't place is left alone. It shows as "Don't import" rather than being guessed at. Point it wherever it belongs, or leave it out.
- A genuinely ambiguous column always asks. A column headed
Costcould be your cost or the price you charge, and getting that backwards would quietly reprice your whole catalog — so it's never assumed. - Two columns can feed one field. If your file splits the street across
AddressandAddress 2, point both at Address and they're joined in column order.
Defaults for fields your file doesn't have
Some fields exist in Jobkore that no other app exports. Rather than let every row silently take the same default, the preview asks you once and applies your answer to the whole import:
| Field | Why it's asked |
|---|---|
| Item type | Service, material or other. Without this every item lands as a service — including rows plainly named "Materials" |
| Taxable | Whether imported items are taxable by default |
| Client language | English or Spanish for client-facing documents. Matters if your book is Spanish-speaking — see Language Support |
What gets cleaned up, and what doesn't
State names are normalized to two-letter codes, so a file carrying both Oregon and OR comes in consistent. Casing is left exactly as you wrote it — auto-capitalizing would tidy BEND and mangle McMinnville on the next import, so your text is never rewritten.
#Duplicates, Undo & Large Files
Duplicates are skipped, never overwritten
Imports only ever add. If a name in your file already exists in your account, that row is skipped — your existing record is never edited or replaced. Duplicates are flagged on the preview and start unticked, so the count on the Import button is what will actually be created. The result screen names anything that was skipped and why.
This makes re-importing safe. If you exported a fresh copy of your client list after adding a few more, importing it again brings in only the new ones.
Undo, while the result screen is open
Imported the wrong file? Tap Undo Import on the result screen and everything that import created is removed. Once you close the dialog the offer is gone, so use it there and then. Anything you've already used on an estimate or invoice in the meantime is left alone.
Large files
Row count isn't something you need to think about. Large files are sent in batches behind a single progress bar. If a batch fails, the import stops there and tells you how many rows landed, with a Retry — and retrying is safe, because everything already imported is skipped by name.
#Coming From Joist
Joist exports the two lists worth bringing over, and Jobkore is built to read those files as they come — no cleanup in a spreadsheet first. Both are exported from pro.joistapp.com on a computer, not from the phone app.
| In Joist | Where to find it | Becomes |
|---|---|---|
| Clients | Clients → Import/Export → Export | Your client list |
| Items | Items → Import/Export → Export | Your catalog |
Export both, then drop them onto Settings → Import & Export one at a time. Jobkore recognizes each file on sight and opens the right importer — you don't have to tell it which is which.
What maps automatically
Joist's column headers are recognized as they're written, including the ones that don't match ours word for word:
AddressandAddress 2are joined into one street address.State / Provincebecomes State, and full state names are converted to two-letter codes.Zip / Postal Codebecomes ZIP Code.- On an item, Joist's
Notesbecomes the item Description — the same word means something different on a client, which is why it's mapped per list rather than globally. - The
**(Do not change this) Joist Client IDandJoist Item IDcolumns are recognized and dropped. They're Joist's internal references and mean nothing here. Leave them in the file — they're what lets Jobkore identify the file instantly.
Two things are left behind. Joist's Phone (other) column doesn't come across, because a contact in Jobkore holds one phone number. And Joist supplies nothing for item type, so the preview screen asks you to choose one for the whole file.
What Joist can't export
| Data | Exportable? |
|---|---|
| Clients | Yes — CSV |
| Items | Yes — CSV |
| Estimates & invoices | Header-level CSV only — no line items, one file per month |
| Payment detail, photos, attachments | No export available |
Do this before you cancel your Joist subscription
Joist's terms allow them to deactivate the account and delete the data in it once your subscription ends, with no stated retention window. Export both CSVs, save PDFs of anything from the last year or two, and open the files to confirm they're readable — while the account is still active. Photos and attachments have no export path at all and go with the account.
What to re-enter by hand
The line to draw is open work versus closed work. Re-enter the jobs you're still owed on — unpaid invoices, and estimates a client hasn't answered yet — because those need to live in Jobkore to be chased, paid, signed or turned into a change order. For most contractors that's a handful of documents, not a data migration.
Closed work is a tax record, and it's already a PDF. Keep the folder; Jobkore doesn't need to be the system of record for a job that finished and got paid two years ago.
#Export Everything
Settings → Import & Export → Export Everything downloads a single zip containing every CSV Jobkore can produce, with a README inside explaining what each file is.
| File | What it is |
|---|---|
clients.csv, catalog.csv, subs.csv | Complete — these import straight back into Jobkore, or into another app |
estimates.csv, invoices.csv, payments.csv | Records only, no line items — the same limitation every contractor app has here |
Individual lists have their own Export button too, if you only want one of them. For a full copy of an estimate or invoice including its line items, download the PDF — that's the complete document.
Exporting everything
Export Everything is one click and needs no support ticket, no notice period and no active subscription conversation. Accented names and Spanish characters survive in both directions, and exports are written so they open correctly in Excel.
For everything else on this screen's parent, see Settings.