# 8. How to Import Clients

<span style="color: rgb(161, 163, 165);">The Import feature simplifies the process of adding or updating large volumes of client data. By uploading a properly formatted CSV file, users can seamlessly onboard new clients or update existing records. The system supports default values for missing fields and ensures data consistency by validating unique identifiers like email addresses. This functionality is ideal for businesses looking to streamline client onboarding, manage bulk updates efficiently, and maintain up-to-date client records without manual entry.</span>

##### <span style="color: rgb(161, 163, 165);">Use Cases</span>

1. <span style="color: rgb(161, 163, 165);">**Onboarding New Clients**</span>  
    <span style="color: rgb(161, 163, 165);">Import a formatted CSV file to upload multiple client records at once, with default values automatically filling in missing data for streamlined onboarding.</span>
2. <span style="color: rgb(161, 163, 165);">**Bulk Updating Client Data**</span>  
    <span style="color: rgb(161, 163, 165);">Import updated client details (e.g., email address changes) by re-uploading an edited CSV file. The system automatically updates existing records based on unique identifiers.</span>
3. <span style="color: rgb(161, 163, 165);">**Partner Data Onboarding**</span>  
    <span style="color: rgb(161, 163, 165);">Import CSV files submitted by partners or affiliates, with missing fields auto-filled by default values, ensuring fast and consistent onboarding.</span>

##### <span style="font-size: 13pt; font-family: Arial, sans-serif; color: rgb(161, 163, 165); background-color: transparent; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Detailed Steps</span>

After a successful client import, you’ll see a table with the following columns populated for each record\*:

<table id="bkmrk-id-first-name-last-n" style="width: 100%; height: 391.148px;"><thead><tr style="height: 58.79px;"><th style="width: 7.1506%; height: 58.79px;">ID

</th><th style="width: 7.26977%; height: 58.79px;">First Name

</th><th style="width: 7.38895%; height: 58.79px;">Last Name

</th><th style="width: 7.74648%; height: 58.79px;">Gender

</th><th style="width: 9.53413%; height: 58.79px;">Email

</th><th style="width: 8.81907%; height: 58.79px;">Project

</th><th style="width: 8.46154%; height: 58.79px;">Desk

</th><th style="width: 10.2492%; height: 58.79px;">Phone Number

</th><th style="width: 9.77248%; height: 58.79px;">Processed

</th><th style="width: 7.98483%; height: 58.79px;">Created

</th><th style="width: 7.03245%; height: 58.79px;">Status

</th><th style="width: 8.69886%; height: 58.79px;">Type

</th></tr></thead><tbody><tr style="height: 102.5px;"><td style="width: 7.1506%; height: 102.5px;">68BAD8C0406F594EAC3FC6FD

</td><td style="width: 7.26977%; height: 102.5px;">Jacob

</td><td style="width: 7.38895%; height: 102.5px;">Foster

</td><td style="width: 7.74648%; height: 102.5px;">Male

</td><td style="width: 9.53413%; height: 102.5px;"><jacob.foster@example.com>

</td><td style="width: 8.81907%; height: 102.5px;">66524609caa3558DD8F8DA65

</td><td style="width: 8.46154%; height: 102.5px;">67A346AD8092C651C919337E

</td><td style="width: 10.2492%; height: 102.5px;">+1-310-688-0141

</td><td style="width: 9.77248%; height: 102.5px;">True

</td><td style="width: 7.98483%; height: 102.5px;">2025-09-05T12:34:08Z

</td><td style="width: 7.03245%; height: 102.5px;">Active

</td><td style="width: 8.69886%; height: 102.5px;">Personal

</td></tr><tr style="height: 127.358px;"><td style="width: 7.1506%; height: 127.358px;">68C2C3F47E938586807425D0

</td><td style="width: 7.26977%; height: 127.358px;">Amelia

</td><td style="width: 7.38895%; height: 127.358px;">Reed

</td><td style="width: 7.74648%; height: 127.358px;">Female

</td><td style="width: 9.53413%; height: 127.358px;"><amelia.reed@example.com>

</td><td style="width: 8.81907%; height: 127.358px;">66524609caa3558DD8F8DA65

</td><td style="width: 8.46154%; height: 127.358px;">67A346AD8092C651C919337E

</td><td style="width: 10.2492%; height: 127.358px;">+1-415-920-3355

</td><td style="width: 9.77248%; height: 127.358px;">True

</td><td style="width: 7.98483%; height: 127.358px;">2025-09-11T12:43:32Z

</td><td style="width: 7.03245%; height: 127.358px;">Active

</td><td style="width: 8.69886%; height: 127.358px;">Personal

</td></tr><tr style="height: 102.5px;"><td style="width: 7.1506%; height: 102.5px;">68BE9D8095201E97FDDB1DEF

</td><td style="width: 7.26977%; height: 102.5px;">Lucas

</td><td style="width: 7.38895%; height: 102.5px;">Wong

</td><td style="width: 7.74648%; height: 102.5px;">Male

</td><td style="width: 9.53413%; height: 102.5px;"><lucas.wong@example.com>

</td><td style="width: 8.81907%; height: 102.5px;">66524609caa3558DD8F8DA65

</td><td style="width: 8.46154%; height: 102.5px;">67A346AD8092C651C919337E

</td><td style="width: 10.2492%; height: 102.5px;">+44-20-7019-5580

</td><td style="width: 9.77248%; height: 102.5px;">True

</td><td style="width: 7.98483%; height: 102.5px;">2025-09-08T09:10:24Z

</td><td style="width: 7.03245%; height: 102.5px;">Active

</td><td style="width: 8.69886%; height: 102.5px;">Personal

</td></tr></tbody></table>

\* **Other available (not shown) columns in the dataset:**  
`processedDate`, `billing.city`, `billing.postcode`, `Billing address`, `Date Of Birth`, `Verification level`, `Comments`, `State`, `First transaction date`, `Meta`, `Company fee group`, `allowToCreateAsset`, `Last login date`, `lifestyle.smoking`, `lifestyle.drinking`, `lifestyle.hasChildren`, `lifestyle.wantsChildren`, `lifestyle.lookingFor`, `lifestyle.relationshipStatus`, `lifestyle.interests.0–3`, `height`, `educationLevel`, `religion`, `Last password change date`, `Created at`, `Updated at`, `UID`, `External ID`, `Additional phone`, `AffiliateID`, `billing.region`, `Passport`, `agreements.*`, `bio`, `Registration IP`, `tradingGroups.0`, `Registration origin`.

<p class="callout warning">**File Format:** CSV Only – Ensure the file is saved in CSV format before uploading. </p>

**Column Descriptions:**

The import file supports multiple value formats for selected fields, making it easier to prepare files without searching for internal IDs.

1. **ID (Required):** A unique identifier for each client (**system-generated** – do not modify).
2. **firstName (Required):** Client's first name.
3. **lastName (Optional):** Client's last name.
4. **email (Required):** Client's email address (must be unique).
5. **state (Optional):** Indicates whether the client is active.
6. **type (Optional):** The type of client account.
7. **created (Optional):** The date and time when the client account was created.
8. **billing.country (Optional):** The client’s country used for billing address details. Supported values: full country name, ISO2 code, or ISO3 code.
9. **project (Optional):** The project associated with the client. Supported values: project \_id, name, or key.
10. **desk (Optional):** The desk assigned to the client. Supported values: desk \_id, name, or label.
11. **manager (Optional):** An assigned manager to the client. Supported values: \_id, name, or email.
12. **status (Optional):** Current client status. Supported values: status label or supported field format.

<p class="callout info">**Note**: Only firstName and email are mandatory; all other fields will be assigned default values if not provided.</p>

**1. Click “Import”:** Navigate to **Clients** in the left-hand menu.   
In the top-right of the Clients list, click the **Import** button.

**2. Review the Import Requirements:** A modal titled **“Wants to import clients?”** will overlay the screen.  
**File format** must be **CSV only**—no Excel, Word, or plain-text files.  
**User limit**: up to **5 000 records** per file; larger files are rejected.  
**Security restrictions**: the CSV must contain **no macros, scripts, or executables**.  
**Formatting requirements**: columns must match the system’s schema (see the **file format documentation** link in the modal).  
Scroll within the modal to read every bullet point and confirm your file complies.

**3. Attach Your CSV File:** Click the **Attach file** button at the bottom of the modal.  
In your file picker, locate and select the prepared CSV.  
The modal will display your file name once attached—double-check it’s the correct file.  
Hit **Upload** to begin processing.

**4. Wait for the Import to Complete:** After confirming, the system will show a brief **“Processing…”** status.  
**Do not refresh** or close the browser; you can navigate elsewhere in the app while it runs.  
Larger files (thousands of rows) may take a minute or two—be patient.

**5. Check the Notification:** Once complete, open the **Notifications** bell icon in the header.  
Look for messages like **“Client(s) imported successfully — 828 clients were imported”**.  
If errors occurred, you’ll receive an **“Import failed”** alert with a link to download error details—fix your CSV and retry.  
The notification confirms that your clients have been imported successfully.

##### Troubleshooting &amp; Best Practices

1. **Row-level errors:** Download the error report (if offered) to see which lines failed.
2. **Incremental updates:** To update existing clients, include their `ID` or `email`. Fields you omit will remain unchanged.
3. **Split large imports:** If you exceed 5 000 rows, break into multiple files by alphabetical or date chunks.
4. **Validate locally:** Run a quick script or spreadsheet validation on your CSV to catch formatting issues before upload.

The Import tool empowers you to manage client records at scale—with minimal clicks and zero manual typing. Once your CSV is validated, you’ll have new or updated client profiles in seconds, freeing your team to focus on high-value work (onboarding calls, KYC checks, relationship building). If you need further details on field mappings or sample templates, see the **file format documentation** linked in the import modal.