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

# Import multiple clients into AnyScript with a CSV

> Upload a CSV file to add multiple clients to AnyScript at once. Learn the required column format, how to preview rows before importing, and how to fix errors.

If you're migrating from another system or have a spreadsheet of clients to bring into AnyScript, the CSV import feature lets you add them all in a single upload. Before importing, AnyScript previews your file so you can see which rows are valid and which have errors — no surprises after the fact.

## Required CSV format

Your CSV file must include at least these two columns:

| Column     | Required | Accepted header names                   |
| ---------- | -------- | --------------------------------------- |
| First name | Yes      | `first_name`, `first name`, `firstname` |
| Email      | Yes      | `email`, `email address`                |
| Last name  | No       | `last_name`, `last name`, `lastname`    |

Column headers are case-insensitive. Additional columns in your file are ignored.

<Note>
  Only first name, last name, and email are imported. Phone numbers, country, and other profile details can be added after import by editing each client individually.
</Note>

## Downloading the template

If you'd like a starting point, click **Import CSV** to open the dialog, then click **Template** to download a pre-formatted CSV with example rows. Open it in Excel, Google Sheets, or any spreadsheet tool, replace the example data with your clients, and save as CSV.

## Importing your file

<Steps>
  <Step title="Open the import dialog">
    On the Clients page, click the **Import CSV** button in the top-right corner.
  </Step>

  <Step title="Upload your file">
    Click the upload area (or drag your CSV file onto it). AnyScript reads the file and checks each row immediately.
  </Step>

  <Step title="Review the preview">
    A table shows every row from your file with one of two statuses:

    * **Ready** — the row has a valid first name and email and will be imported
    * An error message — the row has a problem and will be skipped

    A summary above the table shows how many rows are ready and how many have errors.
  </Step>

  <Step title="Start the import">
    Click **Import \[n] clients**. A progress bar tracks the import row by row. When complete, all successfully imported clients appear in your active client list.
  </Step>
</Steps>

## Row validation and errors

AnyScript checks each row before and during import. Common errors you may see:

| Error                   | What it means                                        |
| ----------------------- | ---------------------------------------------------- |
| Missing first name      | The `first_name` column is empty for this row        |
| Missing email           | The `email` column is empty for this row             |
| Invalid email           | The email address is not in a valid format           |
| Duplicate email in file | The same email appears more than once in your CSV    |
| Already exists          | A client with this email is already in your practice |

Rows with errors are skipped — valid rows are still imported. After the import finishes, any rows that failed are highlighted in the preview table with the specific error. You can fix those rows in your spreadsheet and re-upload just the failed ones.

<Warning>
  If the CSV is missing a `first_name` or `email` column entirely, the upload will be rejected before any rows are processed. Download the template to make sure your column names are correct.
</Warning>

## Tips for preparing your CSV

<Tip>
  * **Email is required for every row.** Clients without an email address cannot be imported and must be added individually.
  * **Remove duplicate emails** from your spreadsheet before uploading. AnyScript flags duplicates within the file as errors.
  * **Existing clients are skipped.** If a client with that email is already in your practice, their row will show "Already exists" and will not create a duplicate.
  * **Keep it simple.** Only include the three supported columns. Extra columns are ignored and won't cause errors.
</Tip>

## After the import

Imported clients appear immediately in your active client list, ordered by most recently updated. From there you can open each client's detail page to add a phone number, assign a protocol, or update any other profile information.
