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

# Custom Data (CSV) Formatting Requirements

## Background

When you **add a custom app** ([Adding a Custom App](/kb/identities/custom-apps/adding-a-custom-app)) or **import custom data** ([Adding Custom Data to Your Apps](/kb/identities/custom-apps/adding-custom-data-to-your-apps)) to an existing app via a CSV upload or the Lumos API, there are certain requirements for formatting the data that you need to follow. This article breaks down those requirements in more detail.

## Content

The upload serves as a "snapshot" of your account data. This means any data missing from the CSV will be treated as if it no longer exists, while existing data will be updated to reflect the information in the CSV.

💡 Include your complete account list in every upload. Lumos treats each upload, through a CSV or the Lumos API, as the current state of the app's manually uploaded accounts. Any account that isn't in your upload is marked Deprovisioned, unless another source, such as your IdP or an integration, reports a different status for it. To restore an account, include it in a later upload. See [Adding Custom Data to Your Apps](/kb/identities/custom-apps/adding-custom-data-to-your-apps#updating-custom-data-for-existing-accounts).

## Character formatting

The characters in an uploaded CSV must be in **UTF-8**format. If they are not, the upload will fail.

## File size

The maximum allowed file size for an uploaded CSV is **10 MB**. If the file is larger than this, your upload will be rejected.

## Required fields

When you upload account data, you must include one or both of the following field combinations. When you import a CSV in Lumos, you match your CSV columns to these fields in the mapping step. See [Adding a Custom App](/kb/identities/custom-apps/adding-a-custom-app).

* *Email* **OR**
* *First Name* **AND** *Last Name*

If a row is missing one of these required elements, your upload will fail.

Email is **strongly recommended**, as it ensures that employees with identical first + last names are matched correctly.

## Account Status

The *Status* column in the data you provide has to match one of the following values.

* DISCOVERED
* STAGED
* ACCESS\_CREATED
* ACTIVE
* SUSPENDED
* DEPROVISIONED
* ARCHIVED
* MANUALLY\_REMOVED
* ACCESS\_REMOVED
* NON\_CORPORATE\_ACCOUNT
* WAITING\_MANUAL\_REMOVAL

If you provide an invalid value, your upload will fail.

If you provide **no** value or omit this column, it's assumed that the status of any accounts being uploaded is **ACTIVE**.

## Character Limits

* **Permission** values in CSV uploads are subject to character limits. The limit applies to each individual value after delimiter splitting, with an effective limit of **\~220 characters give or take, depending on the permission column name**. This is because Lumos builds a unique ID in the format `custom_app_permission_{permission_column_name}_{permission_value}`, which must fit within 255 characters total.
* **Attribute** column header names are also subject to a 255-character limit. This checks only the column name itself, not the values.

### Using delimiters

If a cell contains multiple values (e.g., `Admin;Editor;Viewer`), the limit applies to **each value after splitting** — not the whole cell. If the delimiter is missing or incorrect, the entire cell is treated as one value and is more likely to exceed the limit.

### Error message

If a value exceeds the character limit, you'll see:

*"The field '...' exceeds the 255-character limit. Please shorten the value, check that the correct delimiter was selected, and re-upload."*

## **Last Login and Last Activity**

Use `YYYY-MM-DD`, for example `2026-07-30`.

These fields also accept:

```text theme={null}
2026-07-30 14:23:00
2026-07-30T14:23:00
2026-07-30T14:23:00Z
2026-07-30T14:23:00.000Z
2026-07-30T14:23:00+02:00
2026-07-30T14:23
20260730
2026/07/30
30 July 2026
July 30, 2026
```

Windows file time values such as `134299224000000000` and Unix timestamps such as `1753879380` are not read.

## Date value if mapping to End Date or Start Date Default Attributes:

If you are going to map an uploaded attribute as a [**Default Attribute**](https://app.lumosidentity.com/settings/source_of_truth) **for Start Date or End Date,** upload dates **must be** in `YYYY-MM-DD` format, for example `2026-07-30`.

These formats will not work as expected when mapped as the End Date or Start Date Default Attributes\*\*:\*\*

* `20.07.26`, `30.07.2026`, `07/30/2026` — day-first and month-first formats.
* `20260730` — no separators.
* `134299224000000000` — Windows file time, which appears when a column is exported directly from Active Directory. Convert to a calendar date first.
* `0001-01-01` — years before 1000 are rejected. Leave the cell empty instead.
