*** title: Configuring Conditional Subfields in RTF position: 2 excerpt: >- Use Update Rules to show, hide, or require fields dynamically based on a user's earlier selections. deprecated: false hidden: false metadata: robots: index ------------- **What this covers:** How to configure Update Rules on a Rich Ticket Filing (RTF) form so that fields show, hide, or become required/optional dynamically — based on values the user has already entered. *** ## How It Works Update Rules evaluate a **condition** against the current field values in the form. When that condition is met (or not met), Moveworks applies a set of **field updates** — toggling visibility or required state — in real time as the user fills out the form. Each rule has three parts: | Part | Description | | ---------------------- | -------------------------------------------------------------------------------------------------------------- | | **Condition** | A boolean expression evaluated against the current field values (use the `field_` prefix for field references) | | **Updates when True** | What to do to other fields when the condition passes | | **Updates when False** | What to do to other fields when the condition fails | **Supported update types:** Only `REQUIRED` / `NOT REQUIRED` and `VISIBLE` / `NOT VISIBLE` are currently supported for dynamic field updates. **Rule execution order matters.** Rules are executed in the order they are defined. If two rules target the same field, the last rule wins. Design your rules accordingly. *** ## When to Use Update Rules Use Update Rules when the answers a user gives earlier in a form should change what fields they see or are required to fill out next. Common scenarios include: * **Conditional fields:** Only show a "Manager Approval Required" field when the request cost exceeds a threshold * **Mutually exclusive options:** Show different dropdown options depending on a prior selection (e.g., different software tiers based on department) * **Progressive disclosure:** Keep the form simple by hiding fields that are irrelevant given the user's earlier choices ### The Key RTF Pattern RTF Update Rules work by toggling the visibility and required state of **named fields**. This means that to present a user with *different options for the same question*, you need to model it as **two separate fields** — one per option set — and show only the relevant one at a time. For example: if users in different departments should see different priority options, you'd create `priority_it` and `priority_hr` as separate fields (both labeled "Priority"), and use an Update Rule to show only the one that matches the user's department. The user sees a single "Priority" question; the form handles the branching behind the scenes. *** ## Worked Example: Shirt Order Form This example walks through a form where a user orders a shirt by selecting a **Size** (Small, Medium, or Large) and a **Color**. The business constraint: **Medium Blue and Large Blue shirts are not available**, so the color options must change based on the size selected. ### The Scenario The form presents two visible labels — **Shirt Size** and **Shirt Color** — but the color field is actually implemented as **two separate fields** with different option sets: | Field Name | Label | When to Show | | ------------------------------------ | ----------- | -------------------------------- | | `size` | Shirt Size | Always | | `color_options_small_size` | Shirt Color | Only when size = Small | | `color_options_medium_or_large_size` | Shirt Color | Only when size = Medium or Large | This lets you offer Red/Green/Blue for Small, but only Red/Green for Medium and Large. **The form as the user sees it — initial state:** ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/f57d1fa8ec438886fc5af4d2d30bef4064f7ec418292c86654ef7812d56d2df8/docs/assets/images/forms/rtf_4e393132_Screenshot_2023-11-07_at_2.57.24_PM.png) **Depending on which size is selected, the correct color field appears:** ![When Small is selected, the Small color options field appears](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/0329dd27d842eca771d54f4578a071672da83aed123cfbba8e437e7b2d906f11/docs/assets/images/forms/rtf_de6e2ac2_Screenshot_2023-11-07_at_3.01.51_PM.png) ![When Medium or Large is selected, the Medium/Large color options field appears](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/9128df44b145875e90ea444b1633c07e8d4ce230dae7763c164a614d3c970b19/docs/assets/images/forms/rtf_280a09cb_Screenshot_2023-11-07_at_3.02.18_PM.png) *** ## Step 1: Identify Your Field Names Before opening Moveworks Setup, confirm the exact field names for every field involved — both the field driving the condition and the fields being updated. **`size` field:** ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/da442462207e65b43dceb203a3c6f5f7b769afa24d61b5e9733912af5e0b588d/docs/assets/images/forms/rtf_18f65478_Screenshot_2023-11-07_at_3.08.51_PM.png) **`color_options_small_size` field:** ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/70597e31a9878a3490b4bd46b2f5af81524f96051eeb23ef9168479f102aeb1e/docs/assets/images/forms/rtf_3cce9fdf_Screenshot_2023-11-07_at_3.12.57_PM.png) **`color_options_medium_or_large_size` field:** ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/5903ec2eca8e70f964a95e69bf2627a1e31b25e0545a1f0e144bf64267f83354/docs/assets/images/forms/rtf_5a1422f3_Screenshot_2023-11-07_at_3.14.15_PM.png) The field **label** (what the user sees) and the field **name** (used in rules) are different. Always use the field name — not the label — in your condition expressions and update targets. *** ## Step 2: Define the Logic Before touching the UI, write out the intended behavior. For this example: ``` if size == 'Small': color_options_small_size → VISIBLE, REQUIRED color_options_medium_or_large_size → NOT VISIBLE, NOT REQUIRED elif size == 'Medium' or size == 'Large': color_options_medium_or_large_size → VISIBLE, REQUIRED color_options_small_size → NOT VISIBLE, NOT REQUIRED ``` In Moveworks, this becomes **two Update Rules** — one for each condition branch. *** ## Step 3: Locate the Update Rules Section 1. Navigate to **Moveworks Setup** 2. Search for **Rich Ticket Filing** 3. Select **Edit** on the form you want to configure 4. Scroll down to the **Update Rules** section ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/fa5b7aa1a9f5b3619693c9f4a793e894f77a2ab911012ff3f1d23b4d60de36ea/docs/assets/images/forms/rtf_update_rules_section.png) *** ## Step 4: Configure Rule 1 — "If Small" ### 4.1 Add the condition Enter the condition expression. **Always prefix field names with `field_`** when referencing them in expressions. * **Condition:** `field_size == 'Small'` * **Policy Field IDs:** add any fields referenced in the condition (e.g., `size`) ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/513936d815f74ffb348ccbc131215dc73f1c4814ea2a849ef90101a348daa921/docs/assets/images/forms/rtf_cf722335_Screenshot_2023-11-07_at_3.35.13_PM.png) Always use the `field_` prefix in condition expressions. To reference the `size` field, write `field_size` — not `size`. ### 4.2 Add updates when the condition is True Each field update entry in the UI has two parts: * **Policy Field Id** — the field to update, using the `field_` prefix (e.g., `field_color_options_small_size`) * **Field Action Type** — a radio button selecting which property to change (`Property Required` or `Property Visible`), followed by a checkbox that sets the value: **checked = true, unchecked = false** When size is Small, add four entries — two per field: | Policy Field Id | Field Action Type | Checkbox | | ------------------------------------------ | ----------------- | ------------------------ | | `field_color_options_small_size` | Property Required | Checked (Required) | | `field_color_options_small_size` | Property Visible | Checked (Visible) | | `field_color_options_medium_or_large_size` | Property Required | Unchecked (Not Required) | | `field_color_options_medium_or_large_size` | Property Visible | Unchecked (Not Visible) | **Setting a field to Required (checkbox checked):** ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/3a3e6ecad2a761214f8a2e5112c518b3dfc8ea0e8d3a4b49dc43eb73e823bc5e/docs/assets/images/forms/rtf_field_action_required_true.png) **Setting a field to Not Visible (checkbox unchecked):** ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/9160567ab433505b898c18a58e9834500bc7579a2df02affee52e4f7d436d6cb/docs/assets/images/forms/rtf_field_action_visible_false.png) ### 4.3 Add updates when the condition is False When size is not Small, reverse the visibility and required state: | Policy Field Id | Field Action Type | Checkbox | | ------------------------------------------ | ----------------- | ------------------------ | | `field_color_options_medium_or_large_size` | Property Required | Checked (Required) | | `field_color_options_medium_or_large_size` | Property Visible | Checked (Visible) | | `field_color_options_small_size` | Property Required | Unchecked (Not Required) | | `field_color_options_small_size` | Property Visible | Unchecked (Not Visible) | ### 4.4 (Optional) Add a description Adding a description helps future editors understand what the rule is doing at a glance. ![](https://files.buildwithfern.com/moveworks.docs.buildwithfern.com/735de49783992024294b9d1057bf296eccce140aa912376582d8d63b7505e743/docs/assets/images/forms/rtf_9d3c7fd2_Screenshot_2023-11-07_at_3.42.41_PM.png) *** ## Step 5: Add Rule 2 — "If Medium or Large" Follow the same steps to create a second rule for the `Medium` and `Large` case: * **Condition:** `field_size == 'Medium' or field_size == 'Large'` * **Updates when True:** set `color_options_medium_or_large_size` to `VISIBLE` + `REQUIRED`, set `color_options_small_size` to `NOT VISIBLE` + `NOT REQUIRED` * **Updates when False:** reverse of the above In this example, Rule 1's "when False" branch already handles the Medium/Large case. Whether you add a second explicit rule or rely on the False branch is a design choice — either works. Adding the explicit rule makes the intent clearer and is recommended for maintainability. *** ## Key Rules to Remember | Rule | Detail | | ---------------------- | ------------------------------------------------------------------------------------------------- | | Use `field_` prefix | All field references in condition expressions must be prefixed with `field_` (e.g., `field_size`) | | Supported update types | Only `REQUIRED` / `NOT REQUIRED` and `VISIBLE` / `NOT VISIBLE` are supported | | Execution order | Rules run top-to-bottom; the last rule to target a field wins | | Field names vs. labels | Use the field's system name, not its display label, in rules |