# Import data from another tool with AI

> Upload a CSV or Excel export, let AI map the columns, review every row, then import clients, products, invoices, proposals or expenses.

- Product: Workspace369
- Documentation version: 2026.3
- Section: Administration
- Last updated: 2026-10-24
- Canonical source: https://docs.workspace369.com/v/2026.3/admin/import-data-with-ai/

---

To bring records in from another tool, open **Settings → Data → Import & export → Import data**, choose what to import, and upload a CSV or Excel export. AI reads the file and maps the columns, you review every row, and nothing is saved until you select the commit button.

Plans: AI Import is included on every plan, from Cadet to Enterprise. It imports only what your plan includes. Expenses need Specialist or higher, and Cadet can hold up to 20 products and services.

## What you can import

The first screen asks **What would you like to import?** It lists the kinds you have permission to import.

- **Clients**: contacts, companies and lead details.
- **Products**: your service catalog and pricing.
- **Invoices**: billing history with line items.
- **Proposals**: proposals you sent.
- **Expenses**: spending and receipts to categorize.

Import in this order: Clients, Products, Invoices and Proposals, then Expenses. Later records can then link back to the ones you imported first.

The upload step names HoneyBook, Dubsado, Bonsai, Jobber and GoHighLevel as examples. The tool also recognizes ServiceTitan, 17hats and Moxie exports. Any other spreadsheet works too, and it is treated as a generic file.

## Before you start

- You need the **Import clients** permission, which covers the whole import screen. For every kind except clients, you also need the matching create permission: add to the product catalog, create invoices, create proposals or create expenses. Kinds you can't create aren't shown. See [Team access and permissions](/v/2026.3/admin/team-access-and-permissions/).
- Export the list from your old tool as CSV or Excel (.xlsx). Include a header row with one column per field.
- Check your AI usage. The import uses Tokens, and the workspace needs enough balance for the estimate shown before you start. See [Tokens and AI billing](/v/2026.3/automation/tokens-and-ai-billing/).
- Keep each file under about 5 MB of text. For a larger export, split it into smaller files, for example 10,000 rows each, and import them one after another.

## Import a file

1. Open **Settings → Data → Import & export → Import data**. You can also select **Import data** on the **Products**, **Invoices**, **Proposals** or **Expenses** list, which opens the wizard with that kind already chosen. The button on the **Clients** list opens the wizard at the first screen, so choose **Clients** there.
2. Choose the kind of data. Skip this step if you came from the Products, Invoices, Proposals or Expenses list.
3. Select **Choose file** (or the **Select a CSV or Excel file** area) and pick your export. CSV and Excel (.xlsx) files are supported. Semicolon and tab separated files work too.
4. On **Confirm what we detected**, check **Source app** and **Data type**. Change either one if the guess is wrong. The **Column mapping preview** shows which column goes to which field.
5. Check **Estimated cost**. It is based on your file size and is shown in Tokens. AI reads your file as soon as you continue, so Tokens are charged for that work even if you don't import the results.
6. Select **Start import**. The steps run as **Uploading**, **Transforming** and **Ready to review**. You can close the page while it runs. You are notified when it is ready.
7. Review the rows (see the next section).
8. Select the commit button, which reads **Commit N records** with the number of rows you included.
9. When the import finishes, the result page shows **Import complete**. Select **View** and the kind you imported (for example **View Clients**) to see the records, or **Import another** to start again.

If you leave before committing, the import stays in **Import history**. You can reopen it and finish the review.

## Review every row

Each row shows what will be saved. The top of the list says how many records were parsed and how many are selected.

- Use the **Status** filter to show **All**, **New**, **Existing**, **Errors** or **Warnings**.
- Turn on **Included only** to see just the rows that will be imported.
- Use **Search records** to find a value in any field.
- Switch a row off to leave it out. Select **Edit** on a row to fix a field, then **Save**.
- Rows that failed a check show a red error or an amber warning with the first problem. Fix the field with **Edit**, or switch the row off. A row that still fails the server check when you commit is counted as an error and isn't saved.
- A label under each client row says whether it **Links to existing client** or **Will create new client**. Invoices, proposals and expenses show the same kind of link to the client they belong to.
- If AI couldn't read some rows, a note above the list says how many were skipped. They never reach the review list.

Select **Discard import** to throw the whole import away. Nothing is saved.

## What the import does to your records

- Rows that match an existing client (by email, then phone, then name) update that client with the new details. Empty values never blank out what the client already has.
- Rows that match a client you archived create a new client instead. The result page tells you how many.
- Invoices and proposals link to the client they name, or create the client if there is none. Line items link to a matching product when one exists.
- Imported invoices arrive as Paid, Pending, Partial or Overdue, based on the status in the old tool. A draft becomes Pending. A paid invoice is recorded as paid on the day you import it, and an invoice with no currency in the file is set to USD. Imported proposals arrive as drafts.
- Expenses create the expense category when it doesn't exist yet.

## Plan limits

- **Expenses** need Specialist or higher. If your plan doesn't include them, selecting **Expenses** opens the upgrade prompt before the file is analyzed.
- **Products** on Cadet are limited to 20 active products and services in total. If the file has more rows than you have room for, only the first rows that fit are analyzed and charged. The rest are reported as not imported, with an **Upgrade plan** button.
- Other kinds have no extra cap beyond your AI Token balance.

## Import history

Open **Settings → Data → Import & export → Import history** to see every import. Each row shows the file, the kind, the status and the Tokens charged. Statuses include **Queued**, **Processing**, **Needs review**, **Saving**, **Imported**, **Imported with errors**, **Failed**, **Cancelled** and **Expired**.

Use **New import** to start another, or open an import that **Needs review** to continue. An import you never commit is removed after 14 days and shows as **Expired**.

## If some rows fail

If a few rows can't be saved, the result page says **Imported with some errors** and lists **Rows that need another look** with the row number. Select **Retry failed rows** to run them again. Fix the rest in the source file and import it again.

## Accounting import is a separate tool

If you want to bring in a chart of accounts or opening balances, that is a different import. Open the Accounting hub and choose **CSV Import**. It offers **Chart of Accounts** and **Opening Balances**, takes a plain CSV, and doesn't use AI Tokens. **Historical Data Migration** is a separate tool in the same place. Accounting needs Specialist or higher.

## Troubleshooting

- **We couldn't read your file**: check your connection and try again.
- **This file can't be imported**: the file is empty, has only a header row, has a single column, or its rows don't line up with the header. Export it again as a standard comma-separated CSV with one column per field.
- **This looks like an Excel workbook or PDF renamed to .csv**: open it in your spreadsheet app, use File, Save as, CSV, and upload the new file.
- **This doesn't look like importable data**: AI couldn't match the rows to any of the five kinds. Check you exported the right list, or select **Import anyway** if you're sure.
- **This file looks like invoices, not clients**: select the **Import as** button for the detected kind (for example, Import as Invoices) to switch, or keep your choice.
- **You already imported this file**: the same file was imported in the last 24 hours. Importing it again creates a second copy of every record. Only continue if you want that.
- **That file is too big to import at once**: split the export into smaller files.
- Not enough Tokens: a top-up sheet opens. Add Tokens, then start again.
- **Expenses need the Specialist plan**: upgrade, or import the other kinds. Nothing is charged beyond the AI analysis.
- **Plan limit reached**: your plan has no room for more products. Upgrade, or remove products you no longer use.
- **Connection problem**: the import is still running. Select **Reconnect** to keep watching.
- **The import couldn't start**: your file wasn't imported and nothing was charged beyond the AI analysis. Try again.
- You can't cancel an import while it is saving. Wait for it to finish. Cancelling an earlier import doesn't refund the Tokens already used to read the file.
- A kind is missing from the list: ask an admin for the matching create permission.

Continue to [Clients and CRM](/v/2026.3/core-workflows/clients-and-crm/) for working with imported clients, [Product catalog](/v/2026.3/catalog/product-catalog/) for imported products, and [Create, send, and track an invoice](/v/2026.3/finance/create-send-track-invoice/) for imported invoices.
