> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.getzendo.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Show or hide form fields with form logic

| **Plans:** Agency.

Form logic can make a long form short: you ask one question and show only the questions that match the answer. For a request type, form logic is on the **Form logic** tab of the form builder in **Settings › Requests › Request types › [Select a Request Type] › Request form**. Intake Forms use the same builder, so form logic works the same way there. Order Forms have a builder of their own, without form logic.

## Write a logic rule

1. Open the **Form logic** tab of the form builder.
2. In the **IF** part of the **Logic statement**, choose a field, a comparison and a value — for example the field "What is this about", `is`, the choice "Website".
3. To make the rule depend on more than one answer, select **Add condition**.
4. In the **THEN** part, choose **Show** or **Hide**, and pick the fields in **Choose field(s)**. You can pick more than one field, so one rule can show a whole section.
5. Select **Add new rule** for the next answer, or duplicate the statement and change it.
6. Answer the question in the preview and check which fields appear or disappear. The preview updates while you edit.

![A logic rule on the Form logic tab (1): the IF part (2) and the THEN part (4). Here the Which request? field appears only when the client ticks This related to a previous request.](https://getzendo.io/wp-content/uploads/2026/11/kb-q3-form-logic-v2.webp =639x465)

## Show and Hide are the only two actions

With **Show**, the chosen fields appear when the condition is true. With **Hide**, they disappear. So you can build a form in two ways:

- **Start hidden, then show.** Treat the fields for each answer as hidden, and write one rule per answer that shows its group. This works well when different answers lead to different sets of questions.
- **Start visible, then hide.** Leave all fields visible and hide the ones that do not apply. This works well when the form is mostly the same for every client, with one or two exceptions.

## A hidden required field does not stop submission

The client does not see a field that a rule hides, and **required** applies only when the field is on the screen. So you can mark the fields for each answer as required. They do not block clients who chose a different answer.

## Find the rules that affect a field

When a form has many rules, choose a field in the selector **Filter statements by form element…** at the top of the **Form logic** tab. You then see only the rules that mention that field.

## Related

- [Build a Request Form](https://help.getzendo.io/en/article/build-a-request-form-gxunie/)
- [Add an Order Form to a service](https://help.getzendo.io/en/article/add-an-order-form-to-a-service-1ag3b1d/)
- [Send an Intake Form to a client](https://help.getzendo.io/en/article/send-an-intake-form-to-a-client-1pgejux/)
- [Take requests from people without an account](https://help.getzendo.io/en/article/take-requests-from-people-without-an-account-pcoofh/)