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.

ListWhat comes across
ClientsName, address, contact name, email, phone, role, notes, default rate
CatalogItem name, description, rate, cost, markup, unit, taxable
SubsSubcontractor 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 Name and Company all land on Name; Zip, Postal Code and Zip / Postal Code all 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 Cost could 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 Address and Address 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:

FieldWhy it's asked
Item typeService, material or other. Without this every item lands as a service — including rows plainly named "Materials"
TaxableWhether imported items are taxable by default
Client languageEnglish 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 JoistWhere to find itBecomes
ClientsClients → Import/Export → ExportYour client list
ItemsItems → Import/Export → ExportYour 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:

  • Address and Address 2 are joined into one street address.
  • State / Province becomes State, and full state names are converted to two-letter codes.
  • Zip / Postal Code becomes ZIP Code.
  • On an item, Joist's Notes becomes 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 ID and Joist Item ID columns 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

DataExportable?
ClientsYes — CSV
ItemsYes — CSV
Estimates & invoicesHeader-level CSV only — no line items, one file per month
Payment detail, photos, attachmentsNo 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.

FileWhat it is
clients.csv, catalog.csv, subs.csvComplete — these import straight back into Jobkore, or into another app
estimates.csv, invoices.csv, payments.csvRecords 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.

Your next estimate is on us.

Try for free