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

# Session attribute dropdowns

> Use an existing Structured Fields enum as a searchable dropdown so agents can correct contact reasons and other session attributes in the Inbox.

Use an enum from [Structured Fields](/ticketing/structured-fields) when agents need to correct a session attribute by choosing from a predefined list. A workflow can write a contact reason to `__classification`, and an agent can select another value in **Session attributes** in the Inbox.

The enum owns the choices. There is no separate choice list or label/value mapping for the session attribute. You can link the same enum to different attributes. Contact attributes are not supported.

## Link an enum to a session attribute

You need permission to view settings and Structured Fields to open the page, and permission to edit Structured Fields to manage links. Agents need session editing permission to select a value.

1. Open **Settings → Structured Fields**. Create an **Enum** and its choices, or expand an existing enum.
2. Choose **Link a session attribute** below its choices.
3. Search for the exact attribute key, such as `__classification` or `contact_reason`. Each key appears once. You can also enter a new key.
4. Enable **Show when empty** if agents should see the dropdown before the attribute has a value. This is off by default. **Allow agent editing** is on by default.
5. Choose **Link attribute**.

To reuse the same enum for another attribute, choose **Link another session attribute**. An attribute can be linked to only one enum.

Manage the choices in the enum itself. Changes to its choices are reflected in linked dropdowns. Nested enums offer their leaf choices. Each enum supports up to **1,000 choices**.

The attribute picker offers one entry per key. New keys use Session data; keys found only in Agent-added data use that source for sessions where the key is missing. If the key already exists on a session, the dropdown updates it in place.

A selection writes the existing choice's API value to the bound attribute. Check that your enum's values match what the classifier or workflow expects. Linking an enum does not rewrite session values or change the enum's own per-session values and conditional rules.

## Correct a session value

1. Open a session and find the linked attribute under **Session attributes**.
2. Click its value or the chevrons and search for a choice. Search covers all choices, including large lists.
3. Click a result, or use the arrow keys and Enter. The change saves immediately.

If multiple choices have the same displayed path, their API values appear in parentheses so you can distinguish them. Unique choice names stay unchanged.

Opening the dropdown or typing in search does not change the session. Escape closes it without selecting. Other session attributes keep their normal appearance. Existing pins, hidden attributes, and **Show more** still apply.

If an enum is linked while you have an unsaved edit, your draft stays visible above the dropdown. Select a choice to save a value, or choose **Discard draft**. Selecting a value preserves pending edits to other attributes.

The dropdown updates the existing attribute in place. For a key linked to an active enum, if an older session contains it in both Session data and Agent-added data, **Session data takes precedence** and only one row is shown. Saving a dropdown selection removes that key's duplicate from Agent-added data in the same save, while preserving other keys. Ordinary session writes do not clean up duplicates. A later workflow or integration can create a duplicate again; the sidebar still shows one row, and the next dropdown save removes the duplicate. This duplicate handling applies only to attributes linked through this feature; unlinked attributes keep their existing behavior.

Only the linked attribute changes. Its existing workflow and integration behavior still applies. **Later updates win**: a workflow, classifier, or integration can replace an agent's selection, including with a value outside the enum.

## Existing values and troubleshooting

* **Not in available choices:** An older or externally supplied value stays visible until a new value is saved. Removing a choice does not erase it from sessions.
* **The dropdown is missing:** Check the linked key, hidden attribute settings, and **Show more**. Enable **Show when empty** if the attribute has not been set. Removed enums are not offered.
* **The dropdown is disabled:** Check **Allow agent editing** and your session editing permissions. It also disables briefly while saving.
* **A save fails:** Check the current value and retry. A downstream update can fail after the value is written, so the sidebar refreshes to show the current stored value.
* **Attribute keys must be unique:** Rename or remove duplicate unsaved rows before using the sidebar's **Save** button. Removing an unsaved row does not delete an existing attribute.
* **Remove a link:** Expand its enum in **Structured Fields** and choose **Unlink** beside the attribute, then confirm with **Unlink attribute**. Cancel keeps the link. Session values remain, and the attribute returns to its normal display and editing behavior.
