Post functions are provided with an option to control their execution. You need to input a Nunjucks template in the Condition field, and based on the result of that expression, the post-function will either be executed or skipped.

To add a condition to control the execution of the post-function : 

  1. Select the check box Run this post-function only if a condition is verified.

  2. Type a Nunjucks template that returns either true or false.

Expected value in the Nunjucks template

The value should be either a boolean value (true or false) or more generally any text that will be interpreted as either "truthy" or "falsy".

Text: Any text will be interpreted as "truthy" (the equivalent of trueexcept false, an empty string, a string consisting only of whitespaces. For example, the following text will be considered as "truthy":

Boolean logic operators: You can use traditional boolean logic operators, such as orand and not, to combine conditions. You can also use parentheses to group expressions. For example:

Examples of Nunjucks expressions returning a "truthy" value:

Sample use cases for Conditional execution

(lightbulb) A tester creates an issue. The created issue should be automatically assigned to the Product Owner, only if the issue is a BUG.

  • Create a Product Owner project role, with the product owner as the only member.

  • Add the Assign to role member post-function to the Create transition of the issue workflow.

  • Select Product Owner as the project role.

  • Select the check box Run this post-function only if a condition is verified.

  • Type the following code in Condition.

    {{ issue.fields.issuetype.name == "Bug" }}

(lightbulb) Automatically escalate an issue if it is being raised with a "Blocker" priority.

  • Add the Transition issue post-function to the Create transition of the issue's workflow.

  • Input the transition name or ID of the transition that escalates the issue.

  • Select the check box Run this post-function only if a condition is verified.

  • Write the following content in the Condition section.

    {{ issue.fields.priority == "Blocker" }}

  • Place this post-function at the end in the list of post-functions.

(lightbulb) Automatically transition the Epic when all Stories are resolved.

  • Add the Transition current issue post-function to the Resolve transition of the Story workflow.

  • Input the transition name or ID of the Resolve transition.

  • Select the check box Run this post-function only if a condition is verified.

  • Write the following content in the Condition section.

    {% set stories = issue | epic | stories %}
    {% set trigger = true %}
    {% for story in stories %}
    	{% if story.fields.status.name != "Resolved" %}
    		{% set trigger = false %}
    	{% endif %}
    {% endfor %}
    {{ trigger }}

  • Place this post-function at the end in the list of post-functions.

(lightbulb) Copy value from a Single Version Picker select list to the Fix Version(s) field if the resolution provided while closing the issue is "Fixed".

  • Add the Copy value from field to field post-function to the Close transition of the issue's workflow.

  • Select the Single version picker in the From field.

  • Select the Fix Version/s in the To field.

  • Select the check box Run this post-function only if a condition is verified.

  • Write the following content in the Condition section.

    {{ issue.fields.resolution.name == "Fixed" }}

(lightbulb) Assign a Bug to a Product Manager only when its priority is Critical

  • Add the Assign to role member post-function to the transition of the issue's workflow.

  • Select Product Managers as the Project Role.

  • Select Conditional execution and write the following condition:

    {{ issue.fields.issuetype.name == "Bug" and issue.fields.priority.name == "Critical" }}

(lightbulb) Transition an issue to In Progress status when the issue is either of High priority or the reporter of the issue belongs to Service Desk Customers Project role

  • Add the Transition issue post-function to the Create transition of the issue's workflow.

  • Select Start Progress as the transition to be triggered.

  • Select Conditional execution and write the following condition:

    {{ issue.fields.priority.name == "High" or issue.fields.priority.name == "Highest" or issue.fields.reporter | isInRole("Service Desk Customers")}}

(lightbulb) Link issues that belong to the project with key “BACKEND” and created before 5 days

  • Add the Link issues to current issue post-function to the transition of the issue's workflow.

  • Input the JQL expression as:

    project = "BACKEND"
  • Select the “Filter Expression” and input the following condition

    {{ now | date("diff", targetIssue.fields.created, "days")  <=5 }}