# Required vs optional questions

Each question on a form has a **Required** toggle. A new question starts optional. Turn Required on for the answers a member must provide.

## Required questions

When Required is on:

* For **Text Input**, Discord keeps the Submit button disabled until the field has content.
* For all **Select** types, the field needs at least 1 selection. Even if you set the minimum values to 0, Required raises it to 1.

The member cannot submit the form without completing every required question.

## Optional questions

When Required is off:

* For **Text Input**, the member can leave it blank.
* For **Select** types, the member can submit without picking anything if the minimum values is 0.

Empty optional answers show in the opening embed as a "no answer" note.

## Defaults

A new question starts **optional**. Turn Required on for each answer a member must provide.

Asking for too much can hurt your form. If a form feels too long, members rush it or give weak answers. Make required only the questions you truly need, and leave the rest optional.

## What members see

| State    | Visual cue in the pop-up                                                                                                        |
| -------- | ------------------------------------------------------------------------------------------------------------------------------- |
| Required | Discord's standard required indicator. It varies by client. On desktop, the Submit button stays grey until the field is filled. |
| Optional | No indicator. The member can submit without it.                                                                                 |

## Per question, not per form

Required is set on each question. You can mix required and optional questions in the same form, which is usually what you want.

## A good template

For most ticket forms, this pattern works:

1. **Text Input, Short Answer, required.** The main identifier, such as a username, an order number, or what the ticket is about.
2. **Text Input, Paragraph, required.** The "what happened" body.
3. **Dropdown Select, required.** Category, severity, or priority.
4. **Text Input, Paragraph, optional.** "Anything else we should know?"
5. **Channel Select, optional.** "Where did this happen?", with the channel-type filter set to Text Channels.

That is five questions, three required and two optional. It takes the member about a minute to fill in and gives staff what they need.

## Related

{% content-ref url="/pages/7CkCeZCrgltqb0qqKg5z" %}
[Question types](/docs/forms/question-types.md)
{% endcontent-ref %}

{% content-ref url="/pages/CpaloV17424B7Z7dxCCs" %}
[The five-question limit](/docs/forms/five-question-limit.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ticketking.xyz/docs/forms/required-vs-optional.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
