Esta entrada aún no se ha traducido. A continuación se muestra la versión en inglés.

← Volver al blog

CSV Import: Can You Move Your Customers from Jobber or Excel into ToolBerry?

Yes, for your customer list. Here's exactly what comes across, what doesn't yet, and how to do it without making a mess.

Yes, for your customer list. Here's exactly what comes across, what doesn't yet, and how to do it without making a mess.


Yes. ToolBerry, a free, offline-first field service management app for small service-trade businesses, can import customers, sites and contacts from any CSV file, including a Jobber or Housecall Pro export or a spreadsheet saved from Excel. You match columns, review every row, then save. Names, emails, phones and custom fields come across. Addresses don't import yet, so plan to add those by hand.


Why is moving your customer list the scary part?

Switching apps isn't hard because the new app is hard. It's hard because of what you might lose on the way.

That fear is backed by numbers. Capterra's 2026 Software Buying Trends report, a survey of more than 3,300 software buyers, found that two-thirds hit disruption during setup, regret the purchase, or both. And 89% of buyers who regretted a purchase had a rough implementation first.

For a small service business, "implementation" mostly means one thing: getting 200 or 2,000 customers out of the old system and into the new one without retyping them. So we built import around one rule. Nothing gets saved until you've seen what's about to be saved.


What can you actually import into ToolBerry today?

Three lists have an Import from CSV button in the toolbar: Customers, Sites and Contacts. Here's what each one takes.

ListFields you can importNot yet
CustomersName, email, phone, your custom fieldsAddress, linked contact
SitesName, customer (by name), notes, your custom fieldsAddress, access code
ContactsFirst name, last name, email, phone, customer (by name), your custom fields

Jobs, invoices, quotes and job history don't import. That's true of almost every switch between field service apps, in either direction. Your customer list moves. Your history mostly stays behind, so export a copy from your old app and keep it somewhere safe.

A few more limits worth knowing:

  • Up to 1,000 rows and 5 MB per file. Bigger lists need splitting into more than one file.
  • CSV only. If your list lives in an Excel .xlsx file, use File > Save As > CSV first.
  • Custom fields work, with one exception. Text, number, amount, date, time, email, phone, checkbox, dropdown and tag fields all import. Date-and-time fields don't yet.

How do you get your customers out of Jobber or Housecall Pro?

Jobber: go to Clients, then More Actions, then Export Clients, and pick CSV. Jobber emails you the file. According to Jobber's help center, only admins can run a full client export, and the file includes tags, property addresses, contact info and custom fields. Jobber caps each file at 1,500 rows and sends more than one file for bigger lists.

That 1,500-row file is bigger than ToolBerry's 1,000-row limit. If your Jobber export is close to full, split it in half in a spreadsheet before importing.

Housecall Pro: admins can export the customer list from the Customers page. Housecall Pro emails you a CSV.

Excel or Google Sheets: make sure the first row holds your column headers (Name, Email, Phone and so on), then save or download as CSV.

One thing to expect from any export: messy notes. One migration diary from a business leaving Jobber found client notes came out crammed into a single text field, and photos and attachments didn't export at all. Budget time for that.


How does a ToolBerry import work, step by step?

The import is a four-step walk-through: Upload, Map, Review, Done.

1. Upload (and back up first)

Pick your CSV file. Next to that button you'll usually see Download a backup first. Tap it. It takes seconds and it's your undo button if anything goes sideways later.

2. Map your columns

ToolBerry lists every column in your file with a sample value from it, and suggests where each one should go. It matches headers ignoring capitals and punctuation, and it knows common names other tools use, like "Display name," "Company name," "Client name," "Email address," "Phone number" and "Mobile."

Check every suggestion anyway. We can't promise a Jobber export's headers all match automatically, so plan to set a few by hand. Each field shows a hint for what it expects, like "A phone number with country code." Columns you leave unmapped are simply ignored.

3. Review every row

This is the step that makes import safe. ToolBerry checks each row against the same rules as the normal New Customer form and gives it one of four labels:

  • Ready: good to go.
  • Check: it will import, but look at it. For example, "9/11/2026" gets flagged as "read as" a specific date, so you can catch a day and month swap.
  • Duplicate: a customer with that name already exists, or the same name showed up earlier in your file.
  • Blocked: something's wrong, like an email address that isn't one.

Under each row you see what ToolBerry actually read ("Phone: …"), not just whether it passed. A phone number in the wrong column can look valid and still be wrong. This way you see it.

Duplicates are skipped by default. If you really do have two customers with the same name, tick Import duplicates too. Matching is on the exact name, ignoring capitals and extra spaces, so "Bob's Plumbing" and "Bobs Plumbing" count as two different customers.

4. Done, with a way back

Rows that didn't make it aren't lost. Download skipped rows gives you a CSV of just those rows, with an extra "Import issues" column saying what was wrong with each one. Fix them in a spreadsheet and import that file.

If the import fails partway, ToolBerry removes everything it had already saved from that import. You never end up with half a customer list. And after a successful import you get an Undo, in case you realize you picked the wrong file.


Does it handle messy Excel files?

Mostly, yes. Spreadsheets from the real world are rarely clean, so we handled the common problems:

  • Old Windows Excel files with odd characters in names read correctly.
  • Semicolon-separated files, which Excel writes in many European countries, are detected automatically.
  • Phone numbers stored like '+1 555…, with the apostrophe spreadsheets add, come in without the apostrophe.
  • Rows with missing cells at the end are fine. The blanks read as blank.
  • A broken quote mark stops the import and tells you the row number. Without that check, every cell after the broken quote would shift one column over, and you'd import the wrong data without knowing.

What's the right order for importing customers and sites?

Customers first, then sites, then contacts.

Sites and contacts link to a customer by the customer's exact name, so the customer has to exist in ToolBerry before the site that points to it. If a site's customer column says "Riverside HOA" and there's no customer by that name, the row is Blocked and tells you so.

There's a shortcut if you're adding sites for one customer: open that customer, then import from their Sites card. Every row links to that customer automatically, and duplicate checks only look at that customer's sites.

If you haven't used Sites before, Tracking customer sites and equipment so you're not guessing on the next visit explains what they're for.


What are the honest tradeoffs?

Addresses don't import yet. This is the big one if you're coming from Jobber, where every client has a property address. Today, you'd add addresses in ToolBerry by hand after importing. As a stopgap you can create a plain text custom field and import the street address into it, so the information stays with the customer. It won't be a real ToolBerry address with a map pin, though.

Your job history stays behind. Only customers, sites and contacts import. Past jobs, invoices and quotes don't.

1,000 rows per file. We capped it so the import stays quick on a phone. A large list means a few rounds of the same steps.

Duplicates are matched by name only. Two different customers called "John Smith" will be flagged. The override exists, but it's on you to decide.

Jobber headers may need hand-matching. We haven't confirmed every column name Jobber writes, so don't expect a one-tap import. Expect a couple of minutes on the Map step.


How to start

  1. Export your customer list from Jobber, Housecall Pro or your spreadsheet as CSV.
  2. Open the CSV in a spreadsheet. Check the first row is headers and split it if it's over 1,000 rows.
  3. Add any custom fields you'll need in ToolBerry before importing, like a Tags field for your Jobber tags. Built to Bend: Why ToolBerry Lets You Customize Everything shows how.
  4. Open Customers in ToolBerry, tap Import from CSV, and download a backup first.
  5. Map, review, import. Download the skipped rows, fix them, and import that file.
  6. Repeat for sites and contacts, in that order.
  7. Connect a storage account if you haven't. On the free plan, imported customers live on your device only until you do. Your Data, Your Dropbox: How ToolBerry's Bring-Your-Own-Storage Works covers it.

Have a question?

Email us at contact@toolberry.net. If you're stuck on a particular export file, tell us which app it came from. It helps us decide which column names to teach the importer next.


For the Technically Curious

Import has to undo export. The first version of the importer misread our own exports. "1,234" came back as 1.234. "555-1234" turned into a negative number. Dates in the format ToolBerry itself writes came back flagged for checking. The fix was a rule with a test behind it: every field type is written out the way export writes it, then read back by import, and the two have to match. Number parsing now works out the thousands and decimal separators from your locale instead of guessing.

It all runs on your device. Reading the file, checking every row and saving all happen in the on-device SQLite database, with no server involved. That's why import works offline. It's also why there's a row cap: rows are checked in groups of 50 and saved in small batches, with the app handing control back to the screen between batches so it doesn't freeze on a phone.

All or nothing, without one giant transaction. One transaction holding the database for 1,000 saves would lock the app. Small batches don't, but a failure on batch 30 would leave 29 batches saved. So if any batch fails, every record the import already created is deleted again. When sync is on, those deletes sync too, so your other devices end up with the same result.

The duplicate check runs twice. Once on the Review step, and again inside each save batch. If you add a customer on another device between reviewing and saving, the import skips that row instead of creating a copy, and tells you on the Done screen.


Further reading

Compartir
XLinkedIn