# How to configure system field types?

**System** field types store ConnectiveOne entity IDs (user, subject, tag, etc.) and show readable labels in the table. They live under **System** in **Field type**.

## When you need this

- Assign an operator or skill group to a table row.
- Filter by **Subject** or **Chat status** from OP settings.
- Link a row to ticket **Priority** from Tickets settings.

## Key terms

| UI type | Stored value | Directory source |
|---------|--------------|------------------|
| **User** | User ID | Users from Settings |
| **Skill group** | Skill group ID | OP settings |
| **Subject** | Subject ID | OP settings (not OperatorLine topics) |
| **Chat status** | Status ID | OP settings |
| **Tag** | Tag ID | OP settings |
| **Priority** | Priority ID | Tickets settings |

- **Entity not found** — record deleted or no access.
- **No access to directory** — table shows IDs only.

## Before you start

- [x] **Custom Data model editor** is open.
- [x] Required directories exist in OP / Tickets settings.

## Step-by-step

1. On **Fields**, click **Add field** or open an existing field.
2. Under **Type**, pick **System** → the type you need (**User**, **Subject**, …).
3. Set **Label** and **Technical key**.
4. Optionally: **Required**, **Unique values**, **Hide in filters**.
5. On **Field display**, enable **Table** / **Card**.
6. **Save** the editor.
7. In the records table, pick a value from the entity dropdown.

## What happens next

The cell stores an ID; operators see the user, subject, or tag name. Filters work on ID or label depending on type.

## How to verify

- Value list is not empty (when the directory has entries).
- After save, the label displays correctly.
- Users without access see IDs or an access message.

## Related guides

- [Semantic field types reference](../reference/semantic-field-types-reference.md)
- [Configure field type](./configure-field-type.md)
- [Filter records](./filter-records.md)
