# Identifier lists

> Upload your own user IDs to a segment and match people who are, or are not, in the list.

Source: https://docs.grovs.io/docs/analytics/segments/identifier-lists

An identifier list is a set of your own user IDs attached to one segment. Use it for people you know from your CRM or database: beta testers, a support cohort, customers on an old contract.

The IDs must be the user identifiers your app sets through the SDK. Grovs stores them exactly as sent, and matching is case- and whitespace-sensitive.

A list changes members only once a condition uses it:

- **Identifier** › **is in the uploaded list** (`in_list`) keeps only people in the list.
- **Identifier** › **is not in the uploaded list** (`not_in_list`) leaves them out. This is negative, so it needs a positive condition in the same `and` group.

## Upload a list

### 1. Save the segment first

A list belongs to a saved segment. Create the segment, then open it from **Audience → Segments**.

### 2. Open the Identifier list tab

Click **Identifier list**.

### 3. Add your identifiers

Drop a CSV file on the panel or browse for one. To type them, click **Paste instead** and enter one identifier per line.

### 4. Publish

Click **Publish list**. Grovs checks and stores the list, then shows how many identifiers it holds.

### 5. Use the list in a condition

Click **Edit**, add an **Identifier** condition, choose **is in the uploaded list** or **is not in the uploaded list**, and save.

## File format

- Grovs reads the **first column** of each CSV row.
- A header row is optional. A row whose first cell is `identifier`, in any case, is skipped.
- Empty cells are skipped and duplicates removed.
- Invalid CSV is refused.

```csv
identifier
member-4471
member-9021
member-10388
```

## Limits

| Limit                | Value          |
| -------------------- | -------------- |
| Identifiers per list | 1 to 200,000   |
| Identifier length    | 1 to 256 bytes |
| Lists per segment    | 1              |

## Replace a list

Uploading again replaces the **whole** list. There is no append.

While an upload runs, a second upload to the same segment is refused with "Another upload for this segment is still running. Try again in a minute." If an upload fails, the previous list stays.

## Search and download

The **Identifier list** tab has a search box that shows up to 100 matches. For the full list, click **Download CSV**. The file has one `identifier` column and can be re-uploaded unchanged.

## Edits and exports

- A [member export](https://docs.grovs.io/docs/analytics/segments/members-and-exports) uses the list as it was when the export started.
- Estimating a draft edit of a saved segment uses that segment's list.
- A never-saved draft cannot use `in_list` or `not_in_list`, because it has no list yet.
