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

# Dynamic multiple choice options

> Build multiple-choice questions in Fliqr AI whose options come from a custom field, Google Sheets, or an API response.

Dynamic multiple choice lets you ask a question whose options are generated at runtime. Use it for quizzes, product pickers, store lists, or any menu that should not be hard-coded on the canvas.

## How it works

1. Options are stored in a **single custom field** (comma-separated string or JSON array).
2. A **User Input / Get User Data** block with reply type **Multiple Choice** reads that field and renders the options.
3. The contact’s selection is saved (typically to another field) so you can Condition on it.

## Option data formats

### Comma-separated values

```text theme={null}
Blue, White, Black, Yellow, Red
```

Useful when options come from Google Sheets or a simple text field.

### JSON array (from an API)

```json theme={null}
{
  "data": ["Blue", "White", "Black", "Yellow", "Red"]
}
```

Use [External Request](/docs/core-concepts/flows/external-requests) with response mapping to save `data` into the options custom field before the multiple-choice step.

## Build the path

<Steps>
  <Step title="Create custom fields">
    Create one field for **options** and one for the **selected answer** (optional but recommended).
  </Step>

  <Step title="Load options">
    Set the options field with **Set Custom Field**, Sheets, or External Request mapping.
  </Step>

  <Step title="Ask with Multiple Choice">
    Add User Input / Get User Data, set reply type to **Multiple Choice**, and point it at the options field.
  </Step>

  <Step title="Branch on the answer">
    Add a [Condition](/docs/core-concepts/flows/conditions) on the selected value, or personalize with `{{selected_field}}`.
  </Step>
</Steps>

## Tips

* Keep option labels short — long strings truncate on mobile clients.
* Reload options whenever the source data changes (fetch immediately before the question).
* Provide an else-path when the options field is empty.
* For static menus that never change, hard-coded Quick Replies are simpler.

## Next

<CardGroup cols={2}>
  <Card title="External requests" icon="plug" href="/docs/core-concepts/flows/external-requests">
    Load option arrays from your API.
  </Card>

  <Card title="Recipes" icon="book" href="/docs/core-concepts/flows/recipes">
    See qualification and menu patterns.
  </Card>
</CardGroup>
