> ## Documentation Index
> Fetch the complete documentation index at: https://docs.probaseapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Importing customers in bulk

> Use AI to import your existing customer list from any file format

## What is the customer import wizard?

If you're switching to Probase from another app — or have an existing customer list in a spreadsheet, PDF, or other document — you can import all of it at once using the customer import wizard. Probase uses AI to read your files and extract customer names, contact details, property addresses, services, and upcoming appointments automatically.

<Note>
  The import wizard can read almost any format: spreadsheets (CSV), text files, PDFs, word-processor exports, and even photos of handwritten lists or printed documents (JPG, PNG, GIF, WEBP).
</Note>

## How to import customers

<Steps>
  <Step title="Open the imports page">
    There are several ways to reach the import wizard:

    * **From the Customers page** — tap the **Import customers** button in the page header, next to **Add customer**.
    * **From your HomeBase dashboard** — use the **Import customers** card near the top of the dashboard. This card is aimed at getting you set up, so it disappears once you have four or more customers — after that, use the Customers page button or Account Settings instead.
    * **From Account Settings** — open the **Bulk data** card in your settings and tap **Import customers**.

          <img src="https://mintcdn.com/lawnstarter/YGbq95qL7GJMFR5p/images/probase/customer-import/01-dashboard-condensed-import-card.png?fit=max&auto=format&n=YGbq95qL7GJMFR5p&q=85&s=306f4a4e2894ebbf8fd57d029e60b23e" alt="Import customers card on the HomeBase dashboard" width="500" height="845" data-path="images/probase/customer-import/01-dashboard-condensed-import-card.png" />

    Any of these opens the **Imports** page, which shows all of your past and in-progress imports. Tap **New Import** to start a fresh one. While an import is running, you can also reach it from the **"Add your first customer — We're processing your file"** step on your HomeBase dashboard.

    <Note>
      The **Import customers** button, dashboard card, and **Bulk data** card are rolling out gradually. If you don't see them yet, you can still open the imports page directly at **/customers/imports**.
    </Note>
  </Step>

  <Step title="Upload your files">
    Drag and drop your files onto the upload area, or click to browse and select them. You can add several files to one import — select or drop them one at a time and they'll stack up in the list before you process them (for example, a CSV with customer names plus a PDF with their addresses).

    Supported formats:

    * **Spreadsheets**: CSV
    * **Documents**: TXT, PDF, XML
    * **Images**: JPG, PNG, GIF, WEBP (useful for photos of printed lists)

    Each file can be up to 20 MB.

    To remove a file before processing, tap the **×** next to it.

    <Note>
      A note on the upload screen sets expectations for big lists: large files are read by AI in batches of about 100 rows, taking roughly **3 minutes per batch**, so a large list can take several minutes. You can leave the page and come back — Probase keeps working in the background.
    </Note>
  </Step>

  <Step title="Start processing">
    Click **Process Files** to send your files to Probase's AI. The wizard submits the job for processing and immediately shows a live progress screen — no need to do anything else.

    Processing moves through four stages automatically:

    1. **Extracting** — Reading the contents of your uploaded files
    2. **Analyzing** — AI identifies customers, addresses, services, and appointments. For larger lists, this stage shows a running percentage (e.g. *"Analyzing content with AI (75%)"*) so you can see it working through your data rather than sitting on a single spinner
    3. **Creating** — Organizing the extracted data into records
    4. **Detecting duplicates** — Comparing against your existing customers to avoid creating duplicates

    The progress screen updates every few seconds on its own. It also shows an **estimated time remaining** (for example, *"Estimated time remaining: about 6 minutes"*) so a large import doesn't read as stuck — this is based on roughly 3 minutes per batch of about 100 rows. You don't have to keep the page open: you can leave and come back, and Probase keeps processing in the background.

    <Note>
      **Large lists are handled automatically.** If you're importing a long customer list, Probase splits it into smaller pieces and reads several of them at the same time. This keeps big imports both fast and reliable — even lists with hundreds of customers come through without the import failing. Very large lists simply take a little longer to finish. If one piece of a large list can't be read, the rest still comes through — you'll get everything that could be processed, ready to review.
    </Note>

    <Note>
      If you close the page while processing is running, you can come back to it at any time. Open the **Imports** page and tap the import card to pick up where you left off. While processing is active, your HomeBase dashboard also shows a **"Add your first customer — We're processing your file"** reminder that links straight back to it.
    </Note>
  </Step>

  <Step title="Review the extracted records">
    Once processing is complete, the wizard shows you everything it found.

    **Heads-up warnings.** If the AI noticed anything worth a second look while reading your files — a missing email address, two customers that seem to share a phone number, an address it wasn't sure about — it lists these at the top of the review screen in a yellow **"Heads up — review these before importing"** box. The number in the heading tells you how many notes there are, and you can collapse the box by tapping its heading once you've read through them. Nothing here blocks the import; it's just a checklist of things to confirm or fix before you create the records.

    <img src="https://mintcdn.com/lawnstarter/mkiChpcqcbGwzLsZ/images/probase/white-glove/07-import-review-warnings.png?fit=max&auto=format&n=mkiChpcqcbGwzLsZ&q=85&s=015803572085a5dc2a6bfa4d5607304f" alt="Import review screen with heads-up warnings" width="500" height="845" data-path="images/probase/white-glove/07-import-review-warnings.png" />

    Records are organized in a tree:

    * **Customer** (top level)
      * **Property** (the customer's address)
        * **Service** (a service at that property)
          * **Appointment** (a scheduled visit for that service)

    Each record has a checkbox, and the review screen opens with **nothing selected** — you decide what to bring in. Records that appear to be **duplicates** of existing customers or properties are never included by **Select All**, so review those carefully and check them individually only if you do want to import them.

    **Actions you can take:**

    * **Check or uncheck individual records** to include or exclude them
    * **Select All** — selects all records except those flagged as potential duplicates. If any duplicates were skipped, a warning appears showing the count. To import a duplicate anyway, check it individually.
    * **Deselect All** — unchecks every record, including duplicates
    * **Edit a record's details** inline — click on any field to correct a name, address, or other detail before importing

    **Captured notes.** While reading your files, the AI often finds useful details that don't fit a standard field — gate codes, access instructions, a second phone number or email, or a secondary contact. Instead of dropping that information, it places it in a **Notes** field on the customer or property. You'll see it in an editable text box on the review screen, where you can adjust or clear it before importing. Anything left in the Notes field is saved as a note on that customer or property (attributed to you) once the import completes, so it's there when you open the record later.

    <Note>
      Approving or skipping a parent record affects its children. If you uncheck a customer, all their properties, services, and appointments are also skipped. If you check a customer back in, their children are re-checked too.
    </Note>

    **Long lists are split into pages.** If your import contains a lot of customers, the review screen shows 50 at a time with **Previous** and **Next** controls at the bottom. Use them to move through your list page by page.

    <img src="https://mintcdn.com/lawnstarter/jbHgLzMLfdr40R2J/images/probase/white-glove/08-import-review-pagination-page-1.png?fit=max&auto=format&n=jbHgLzMLfdr40R2J&q=85&s=1711e6898ada32118495bf0bb47d1eaf" alt="Import review screen, first page" width="500" height="845" data-path="images/probase/white-glove/08-import-review-pagination-page-1.png" />

    <img src="https://mintcdn.com/lawnstarter/jbHgLzMLfdr40R2J/images/probase/white-glove/08-import-review-pagination-page-2.png?fit=max&auto=format&n=jbHgLzMLfdr40R2J&q=85&s=24a773655afc006fe301763d2e83bc87" alt="Import review screen, second page" width="500" height="845" data-path="images/probase/white-glove/08-import-review-pagination-page-2.png" />

    The counter at the bottom — for example *"0 of 55 records selected"* — always reflects your **entire** import, not just the page you're viewing. **Select All** and **Deselect All** likewise apply to every record across all pages, so you don't have to visit each page to include or exclude everything, and your checkbox choices are remembered as you move between pages. Each record keeps its own checkbox state — checking a record on one page never carries that tick over to a different record when you flip to the next page.

    <img src="https://mintcdn.com/lawnstarter/jbHgLzMLfdr40R2J/images/probase/white-glove/09-import-review-no-stale-checkbox.png?fit=max&auto=format&n=jbHgLzMLfdr40R2J&q=85&s=5784186ce31d272df64d10c4c8110fb1" alt="Import review screen showing per-record checkbox state preserved across pages" width="500" height="845" data-path="images/probase/white-glove/09-import-review-no-stale-checkbox.png" />
  </Step>

  <Step title="Import">
    When you're happy with the selections, click **Import Selected**. Probase creates all the approved records in your account.

    While the records are being created, the wizard shows a **"Creating records..."** progress screen that updates on its own — no need to do anything. For a large import this creation happens in the background, so even very long lists finish reliably without you having to keep the page open. When it's done, the wizard moves to the summary automatically.

    <img src="https://mintcdn.com/lawnstarter/YGbq95qL7GJMFR5p/images/probase/import-worker-crash/01-importing-while-redelivery-pending.png?fit=max&auto=format&n=YGbq95qL7GJMFR5p&q=85&s=50ea434a7eb175f50fe1555617a4d817" alt="The Creating records progress screen" width="500" height="845" data-path="images/probase/import-worker-crash/01-importing-while-redelivery-pending.png" />

    <Note>
      **Interruptions heal themselves.** Records are created in small batches, and each batch is saved as it finishes. If the process is briefly interrupted while your records are being created — for example a temporary hiccup on our servers — Probase automatically picks up right where it left off and finishes the job. Records that were already created are never duplicated, and the progress screen continues on its own through to the summary. You don't need to do anything.
    </Note>

    <img src="https://mintcdn.com/lawnstarter/ggy6-BZf2c-UPPC5/images/probase/import-worker-crash/02-import-complete-after-redelivery.png?fit=max&auto=format&n=ggy6-BZf2c-UPPC5&q=85&s=11f6680c61360b8971b15362c91ea977" alt="Import Complete summary after the import resumed and finished" width="500" height="845" data-path="images/probase/import-worker-crash/02-import-complete-after-redelivery.png" />

    The final screen shows a summary:

    * **Created** — how many records were added
    * **Skipped** — how many you chose not to import
    * **Errors** — any records that couldn't be created (rare)

    Click **View Customers** to see your newly imported customer list.
  </Step>
</Steps>

## Viewing past imports

The **Imports** page keeps a record of every import you've run. Each card shows:

* The file name (and how many files were uploaded if more than one)
* When the import was started
* The current status and a summary (e.g. "12 records imported" or "5 records awaiting review")

**Status badges:**

* **Completed** — the import finished successfully
* **Reviewing** — processing is done and records are waiting for your review; tap the card to continue
* **Processing** — files are still being analyzed by AI
* **Failed** — something went wrong; the card shows the error message

Tap any card to open that import and continue from where you left off.

## Tips for best results

**Clean up your file first.** The AI works well with messy data, but the cleaner your file, the more accurate the results. If your spreadsheet has a header row, keep it — it helps the AI understand what each column means.

**Include column headers in spreadsheets.** A CSV with headers like `First Name`, `Last Name`, `Email`, `Phone`, `Address` will extract more accurately than one with unnamed columns.

**Upload multiple files together.** If your customer data is spread across several files, upload them all in one batch. The AI reads them together and can match information across files.

**Review duplicates carefully.** The wizard automatically flags records that look like existing customers or properties in your account. Double-check these before importing to avoid creating duplicate records.

**You can always edit after importing.** If something is extracted incorrectly, you can edit the customer, property, or service after the import completes. No need to get everything perfect in the review step.

## What gets imported

The import wizard can extract and create the following:

| Record type | Fields imported                             |
| ----------- | ------------------------------------------- |
| Customer    | First name, last name, email, phone, notes  |
| Property    | Address, city, state, ZIP code, notes       |
| Service     | Name, price, billing type, service interval |
| Appointment | Date and time                               |

<Note>
  Any extra details the AI captures for a customer or property — gate codes, access instructions, a secondary contact — are saved as a **note** on that record, which you can review and edit on the import review screen first.
</Note>

<Note>
  Not every file will contain all record types. If your spreadsheet only has customer names and addresses, only customers and properties will be created — that's fine.
</Note>

## If the import fails

Failures are rare. Probase reports one only in two cases: when it can't read any customer data at all — for example, an empty file or one it can't open — or when the record-creation step was interrupted so many times it couldn't finish (in that case your reviewed records are safe and a retry resumes where it left off). When either happens, the wizard shows an **Import Failed** message with details about what went wrong.

<img src="https://mintcdn.com/lawnstarter/ga36oJWhcNB8RACM/images/probase/import-retry/01-failed-import-with-retry-button.png?fit=max&auto=format&n=ga36oJWhcNB8RACM&q=85&s=1c6fb7e5da2fb0f0606104d5676d2c30" alt="A failed import showing the Retry Import and Back to Customers buttons" width="500" height="845" data-path="images/probase/import-retry/01-failed-import-with-retry-button.png" />

<Note>
  When something goes wrong that a retry can't fix on its own, the import stops promptly and shows you the **Import Failed** message right away — you won't be left watching a spinner wondering whether it's still working. The message tells you what happened (for example, that no customer data could be read from the file), so you know whether to fix the file or simply try again.
</Note>

<img src="https://mintcdn.com/lawnstarter/wtputJY9Nl_y-qVm/images/probase/imports/01-import-failed-fast.png?fit=max&auto=format&n=wtputJY9Nl_y-qVm&q=85&s=7234130e4075706046309608d7dbed8b" alt="An import that stopped promptly with a clear failure message" width="500" height="845" data-path="images/probase/imports/01-import-failed-fast.png" />

You have two options from here:

* **Retry Import** — try the same import again without re-uploading anything. Probase keeps the files you originally uploaded, so a single tap re-runs the import from your stored files. This is the quickest fix for a hiccup like a temporary interruption while your files were being read.
* **Back to Customers** — return to your customer list. From there you can start a fresh import from the **Imports** page (tap **New Import**) if you'd rather try a different file or format.

When you tap **Retry Import**, the wizard picks up in the right place automatically:

* If the import got as far as building your records before it stopped, your earlier review choices are kept — you'll see a message that your reviewed records were restored, and you can run the import again.
* If it stopped earlier than that, Probase re-analyzes your uploaded files from scratch and returns you to the live progress screen.

<img src="https://mintcdn.com/lawnstarter/YGbq95qL7GJMFR5p/images/probase/import-retry/02-import-reprocessing-after-retry.png?fit=max&auto=format&n=YGbq95qL7GJMFR5p&q=85&s=7dd97042c9b8b83e11e833ff322ecc71" alt="An import re-processing after tapping Retry Import" width="500" height="845" data-path="images/probase/import-retry/02-import-reprocessing-after-retry.png" />

If your file was only partly readable, the import doesn't fail at all — Probase brings through everything it could read and takes you to the review screen with those records, so you never lose the customers it did find.

If you continue to have trouble, [contact support](/support/contact-support) and we can help you get your data imported.
