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

# Advanced questions

> File upload and Matrix — configuration options for complex input types.

Advanced questions handle structured or multi-dimensional input that doesn't fit neatly into text or choice formats.

***

## File upload

Respondents attach one or more files. Best for document collection, image submissions, or any workflow that requires file intake.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/feedal/images/building-forms-questions-file-upload.png" alt="File upload question in the canvas" />

| Field                | Type         | Default        | Notes                                                  |
| -------------------- | ------------ | -------------- | ------------------------------------------------------ |
| `allowed_types`      | Multi-select | `image`, `pdf` | Accepted file categories (see below)                   |
| `max_size_mb`        | Number       | `10`           | Maximum file size in MB (1–100)                        |
| `multiple`           | Boolean      | `false`        | Allows uploading more than one file                    |
| `max_files`          | Number       | —              | Maximum number of files when `multiple` is on (2–20)   |
| `allowed_extensions` | Tag list     | —              | Specific file extensions to allow (e.g. `jpg`, `docx`) |
| `filename_pattern`   | Regex        | —              | Filename must match this regex                         |

**Accepted type categories:**

| Value         | Includes                                     |
| ------------- | -------------------------------------------- |
| `image`       | JPG, PNG, GIF, WebP, and other image formats |
| `pdf`         | PDF documents                                |
| `doc`         | Word documents and similar                   |
| `spreadsheet` | Excel, CSV, and similar                      |
| `video`       | MP4, MOV, and other video formats            |
| `audio`       | MP3, WAV, and other audio formats            |
| `any`         | No type restriction                          |

<Note>
  If you add entries to `allowed_extensions`, they are validated against the
  selected `allowed_types` unless `any` is selected or no types are selected.
  Extension tags are automatically normalised to lowercase without a leading dot.
</Note>

***

## Matrix

Respondents answer several sub-questions (rows) using the same set of options (columns) in a grid layout. Best for comparing multiple items on the same criteria, or collecting structured attribute ratings.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/feedal/images/building-forms-questions-matrix.png" alt="Matrix question in the canvas" />

| Field                 | Type         | Default                            | Notes                                                                |
| --------------------- | ------------ | ---------------------------------- | -------------------------------------------------------------------- |
| `rows`                | List of text | `Row 1`, `Row 2`, `Row 3`          | The sub-questions (left column)                                      |
| `columns`             | List of text | `Column 1`, `Column 2`, `Column 3` | The answer options (top row)                                         |
| `matrix_mode`         | Enum         | `single`                           | `single` — one column per row; `multiple` — multiple columns per row |
| `mobile_optimization` | Boolean      | —                                  | Adjusts the grid layout for smaller screens                          |

**Rows and columns** are edited as plain text lists in the right panel. Add, remove, or reorder them freely.

**Matrix modes:**

| Mode       | Behaviour                                                |
| ---------- | -------------------------------------------------------- |
| `single`   | Each row has exactly one selected column (radio buttons) |
| `multiple` | Each row can have multiple selected columns (checkboxes) |

<Note>
  The answer to a Matrix question is stored as an object mapping each row to its
  selected column value(s) — e.g.
  `{"row_1": "column_2", "row_2": "column_1"}` in single mode.
</Note>

***

## Next steps

<CardGroup cols={2}>
  <Card title="Common fields" icon="square-list" href="/building-forms/content/common-fields">
    Title, description, image, and the required toggle.
  </Card>

  <Card title="Workflow canvas" icon="diagram-project" href="/building-forms/workflow/canvas">
    Connect your questions into a flow.
  </Card>
</CardGroup>
