---
title: "Select"
description: "Let a respondent choose one visible option, with optional Other and shuffled order."
group: "Build forms"
order: 6
type: "reference"
parent: "fields"
keywords:
  - "select"
  - "multiple choice"
  - "options"
  - "allowOther"
  - "shuffleOptions"
updated: "2026-07-14"
---

The select field shows a set of options and stores one option ID.

## Options

| Option | Type | Default | Behavior |
| --- | --- | --- | --- |
| `options` | `SelectOption[]` | required | Declares stable IDs and visible labels |
| `allowOther` | `boolean` | `false` | Adds a free-text Other answer |
| `shuffleOptions` | `boolean` | `false` | Randomizes declared options for each respondent |
| `icon` on an option | `thumbs_up` or `thumbs_down` | none | Gives a compact binary choice a visual hint |

The stored answer is the selected option ID. When Other is enabled, Fillo stores the respondent's typed text instead, up to 500 characters — so downstream code has to handle both declared IDs and free text.

## Add a select field

In the dashboard, select **Add block**, choose **Select**, and add each option. Keep option IDs stable in code, even when the visible labels change.

```ts
const priorityField = {
  id: "priority",
  kind: "select",
  label: "How urgent is this?",
  required: true,
  options: [
    { id: "today", label: "Today" },
    { id: "week", label: "This week" },
    { id: "later", label: "No deadline" },
  ],
  allowOther: true,
} as const;
```

## Related

- [Dropdown](/docs/fields/dropdown): Put a long single-choice list in a compact control.
- [Multi-select](/docs/fields/multi-select): Let the respondent choose several options.
- [Logic](/docs/logic): Reveal a follow-up from one selected option.
