# Linked Issues Condition & Validator

Both **Linked Issues Condition** and **Linked Issues Validator** help ensure that related issues (linked issues, sub-tasks, stories, children or parent) are in the right state before allowing a transition to proceed. If they’re not, the transition is blocked. Simple as that!

{% 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 %}

<figure><img src="https://4067441311-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fh6orV4J25NOSJvrMyLKk%2Fuploads%2Fel3HTFec0mCgHtFfokW6%2FLinked_issues_children_done_validator.png?alt=media&#x26;token=b16ccd22-6cfd-44c9-998f-cf486627c9b5" alt=""><figcaption><p>Example: Ensure that child issues - Stories and Tasks are completed and at least one of them is attached to the parent issue.</p></figcaption></figure>

## ⚙️ Configuration Options

{% hint style="info" %}
If you're looking for how to add a condition or validator to a workflow transition, check out our [setup-conditions-and-validators](https://docs.forgappify.com/workflow-building-blocks-for-jira/administrator-guide/setup-conditions-and-validators "mention").
{% endhint %}

### Relation

Pick what kind of issue relationship you want to check:

* **Linked Issues** – Regular issue links like "blocks" or "relates to."
* **Sub-Tasks** – Checks the issue’s sub-tasks.
* **Stories** – Validates an Epic’s child issues (excluding sub-tasks).
* **Children** – Checks both child issues and sub-tasks. Works when you’ve set up multiple hierarchy levels.
* **Parent** – Validates the parent issue.

{% hint style="warning" %}
Remote Links and Web Links cannot be validated. Read more in [Limitations](https://docs.forgappify.com/workflow-building-blocks-for-jira/testing-and-debugging/limitations#linked-issues-and-web-links).
{% endhint %}

### Link Types (optional)

If using **Linked Issues**, you can filter by specific link types. Links have a **name and direction** (e.g., "relates to" might have incoming and outgoing links).

{% hint style="info" %}
If left empty, all linked issues will be validated.
{% endhint %}

### Issue Types (optional)

Only need to check specific issue types? No problem—just set a filter! Great for:

* Only certain issue types need to be completed before transitioning.
* You want to enforce having a child of a specific issue type.

{% hint style="info" %}
Leave empty to validate all related issues
{% endhint %}

### Require At Least One Issue

Checks if at least **one** issue exists that matches the selected relation (and previous filters). If not, the validator fails.

### Status Category and Statuses

**Best Practice:** Use **Status Categories** instead of specific statuses to check if related issues are completed.

* **Why?** Status names can change over time, but categories (To Do, In Progress, Done) stay consistent.
* **Example:** Instead of checking for "Resolved," check if the issue is in the "Done" category.

### Override Validation Message (Validators Only)

This setting allows you to customize the validation message instead of using the default one generated based on your selected settings. You can also use **Jira expression syntax** to make it more dynamic.

Learn more about [writing validation messages](https://docs.forgappify.com/workflow-building-blocks-for-jira/writing-jira-expressions/writing-validation-messages)

{% embed url="<https://www.youtube.com/watch?v=R_PFKatLD28>" %}
How to block a Jira issue transition when blocking linked issues are not completed
{% endembed %}

## Use cases

<details>

<summary>Prevent closing an issue if all linked "is blocked by" issues are not closed</summary>

1. Set Relation to **Linked issues**
2. In Link types: select **is blocked by**
3. In Status category: select **Done**
4. (Optional) In Status: select explicitly which statuses are allowed, e.g. **Closed**
5. (Optional) Check: At least one linked issue, as defined above, must exist if specified links are required.

</details>

<details>

<summary>Allow transition only if at least one sub-task is defined and all the sub-tasks are done</summary>

1. Set Relation to **Sub-tasks**
2. In Status category: select **Done**
3. Check: At least one sub-task, as defined above, must exist

</details>

<details>

<summary>Prevent transition of an epic if there are open issues underneath it</summary>

1. Set Relation to **Children**
2. In Status category: select **Done**

</details>

<details>

<summary>Allow transition of an epic only if all children of type Bug are in the Investigated status</summary>

1. Set Relation to **Children**
2. In Issue types: select **Bug**
3. In Statuses: select **Investigated**

</details>

<details>

<summary>Allow transition only if an epic has at least one child</summary>

1. Set Relation to **Children**
2. Check: At least one child issue, as defined above, must exist

</details>

<details>

<summary>Allow story in an epic transition only if the epic is in progress</summary>

1. Set Relation to **Parent**
2. In Status category: select **In progress**

</details>
