# Fields Required Condition & Validator

{% hint style="info" %}
**Reminder:** A Condition hides the transition if criteria aren’t met, while a Validator allows the transition button to be clicked but blocks it after submission if requirements fail.
{% endhint %}

## What You Get

<figure><img src="https://4067441311-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fh6orV4J25NOSJvrMyLKk%2Fuploads%2FFGkFQLDp2lHuVuDA2qGC%2FFields_required_ui_example.png?alt=media&#x26;token=48848837-86f4-4be8-a3aa-dc19e11e27d6" alt="Screenshot of the Fields Required Validator UI in Jira, showing configuration options for enforcing mandatory fields such as Linked Issues, Sub-tasks, Children, Epic, Stories, and Voters during a workflow transition."><figcaption></figcaption></figure>

### Make Fields Mandatory During Transitions

Easily enforce required fields during a transition. You can choose from any fields available in Jira that are supported by Jira Expressions — including both system and custom fields.\
Our validator checks whether a field has been filled in either during or prior to the transition.

### Validation Messages with Dynamic Content

You can display a simple message or use a Jira Expression that evaluates to a string — enabling customized, dynamic validation messages tailored to the issue context.

### Support for Additional Fields

Beyond standard fields, the validator also supports additional fields compatible with Jira Expressions

<table><thead><tr><th>Field name</th><th data-type="checkbox">Workflow Building Blocks</th><th>Out-of-the-box </th></tr></thead><tbody><tr><td>Epic</td><td>true</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span></td></tr><tr><td>Voters</td><td>true</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span></td></tr><tr><td>Stories*</td><td>true</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span></td></tr><tr><td>Children*</td><td>true</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span></td></tr><tr><td>Closed Sprints</td><td>true</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span></td></tr><tr><td>Linked Issues*</td><td>true</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span></td></tr><tr><td>Sub-tasks</td><td>true</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span></td></tr><tr><td>Work Logs*</td><td>true</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span></td></tr><tr><td>Original Estimate*</td><td>true</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Ignored</td></tr><tr><td>Remaining Estimate* </td><td>true</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Ignored</td></tr><tr><td>Time Spent</td><td>true</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2611">☑️</span> Only during transition</td></tr><tr><td>Attachments*</td><td>true</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2611">☑️</span> Only during transition</td></tr><tr><td>Comment*</td><td>true</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2611">☑️</span> Only during transition</td></tr></tbody></table>

* Stories – Check if an Epic has any direct child work items, excluding sub-tasks.
* Children – Check if a work item has any direct children, including sub-tasks.
* Epic – Check if a work item belongs to an Epic.
* Linked Issues (Related Work Items) – Check if the issue has any links to other issues.
* Work Logs – Check if any work log has been added before the transition. *(Note: work logs are not created during the transition itself)*
* Original Estimate – Ensure an estimate is provided before or during the transition, and that it is not equal to 0.
* Remaining Estimate – Ensure a remaining estimate is provided before or during the transition, and that it is not equal to 0.
* Attachments – Check if any attachment has been added either before or during the transition.
* Comment - Check if any comment has been added either before or during the transition.

### Handling of Already Added Attachments

The **Fields Required Validator** from the **Workflow Building Blocks** app checks whether an attachment has been added **before** the transition or **during** the transition (via a Transition Screen).

In contrast, the **classic built-in Field Required Validator** only enforces that an attachment is added **during** the transition, ignoring any attachments already present.

{% hint style="info" %}
In the **New Workflow Editor**, you can enforce required fields using the **“Validate a field”** rule with the **“Isn’t Empty”** option. Both out-of-the-box validators behave the same way in this regard.
{% endhint %}

Which validator should you use?

* ✅ Use the Fields Required Validator **from our app** if the attachment can be added **at any point earlier in the workflow** (not necessarily during the current transition).
* ✅ Use the **classic validator** if the attachment must be added **specifically during the current transition**.
