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

# CSV import FAQs

> Troubleshoot common Vero 2.0 CSV import issues, including duplicate rows, missing users in segments, and encoding errors.

Read on for answers to common questions and issues when importing CSV files. For full file requirements, see [Imports overview](/vero-2/importing-exporting/imports-overview).

## Why can't I start my import?

Vero validates your file and column mappings before an import can begin. Common reasons an import is blocked:

* **No columns mapped** — you must map at least one column before importing.
* **Same property mapped to multiple columns** — each Vero property can only be mapped once.
* **Missing required identifier** — profile imports require an `email` or `id` column (or both `device_token` and `device_type`).
* **Missing event name** — event imports require an `event_name` column.
* **Incomplete device mapping** — if you map `device_token`, you must also map `device_type`, and vice versa.

## Why does my segment show a lower count than my import?

This usually comes down to one of two causes.

**1. Duplicate rows**

Vero processes every row in a CSV, including duplicates, and shows the number of rows processed on the import. If two rows resolve to the same user, they update a single profile rather than creating two.

The easiest way to check for duplicates is in your spreadsheet application before importing — for example, Excel's **Remove Duplicates** tool.

**2. Users without an email address**

By default, the `id` is the key field that identifies a user. If users are imported with an `id` but no `email`, their profiles are still created or updated — but they won't appear in a segment, because a user needs a messageable address (such as `email` or a push token) to be segmented.

## Why were some rows rejected?

Individual rows can fail even when the import as a whole succeeds. Common causes:

* **Empty or missing identifier** — the `email` or `id` value is blank for that row.
* **Invalid email format** — the `email` value isn't a valid email address.
* **Invalid date format** — date values must be in ISO 8601 format (e.g. `2024-01-15T02:00:00+10:00`).
* **Malformed row** — the row has more or fewer fields than there are headers, usually caused by unescaped commas or newlines in a value.

The summary page after an import shows which rows failed so you can correct and re-import them.

## Why do I get an error after selecting a file to import?

This is usually a file format or encoding issue:

* **Wrong encoding** — the file isn't saved as UTF-8. Files saved with a different character set, such as Latin-1 or Windows-1252, will fail. Re-save the file as UTF-8 and try again.
* **Wrong delimiter** — the file uses tabs or semicolons instead of commas. Make sure your file is a standard comma-separated CSV.
* **BOM (Byte Order Mark)** — some editors add an invisible BOM character at the start of the file, which can corrupt the first column name. Re-save without BOM.
* **File too large** — files must be 2 GB or smaller.
* **Empty file** — the file has no data rows (only headers or completely empty).

## Which file formats can I import?

Only `.csv` files. If you're working in Microsoft Excel or Apple Numbers, choose **File > Save As… > CSV** to export. `.xls`, `.xlsx`, and other formats are not accepted.

## How large can my file be?

Files must be **2 GB or smaller**. Uploads have a 30-minute time limit, so very large files on a slow connection may time out.

## Need Help?

If you have any questions, reach out to us at [support@getvero.com](mailto:support@getvero.com).
