Our new Appfire Documentation Space is now live!

Take a look here! If you have any questions please email support@appfire.com

Workflow Features

Turbo Kit Workflow Features

Jira administrative rights are required to edit workflows and add/modify the below workflow functionality.



Workflows

Conditions


JQL Condition

Turbo Kit's JQL Condition allows you to variably control access to transactions based on a JQL (Jira Query Language) statement. You can test within the condition using an existing Jira issue to ensure that it works correctly before saving your workflow.

You can use any JQL available in your instance - including Turbo Kit's JQL Functions.

 

Field

Description

Field

Description

JQL Expression

Accepts JQL expressions.

Test Issue

Enter a test issue key to evaluate: PASS / FAIL result.

Test Button

Runs the JQL against any test issue key and provides a PASS/FAIL/Error Message response in read-only output field.

 

This condition adds the issue key to the end of the JQL, so if you are using OR statements be sure to check that there are appropriate parentheses around the query.

To set a condition based on a previous status, use the “Status Was” condition, rather than the JQL, for a more performant workflow.

 


Status Was Condition

Turbo Kit's "Status Was" Condition provides a more performant way to ensure that the status of an issue was (or was not) a particular status previously.

Field

Description

Field

Description

Prior State

Must Have Been/Must Have Not Been

Status

Select the status that the condition is validating against

Status Ever in History

If checked, the issue must have been in the above status at any point in its life.

If unchecked, the status selected above must have been the last status the issue was in.

Use this Condition instead of the Status Was JQL to improve performance.

Only active workflow statuses will be available in the Status dropdown. If you don’t see a newly added status, publish your workflow first and it will appear.


Validators

JQL Validator

Turbo Kit's JQL Validator allows you to variably control transactions based on a JQL (Jira Query Language) statement. You can test within the validator using an existing Jira issue to ensure that it works correctly before saving your workflow.

You can use any JQL available in your instance - including Turbo Kit's JQL Functions.

Field

Description

Field

Description

JQL Statement

Accepts JQL expressions.

Test Issue

Enter a test issue key to evaluate: PASS / FAIL result.

Test Button

Runs the JQL against any test issue key and provides a PASS/FAIL/Error Message response in read-only output field.

Error Message

Custom error message to be displayed if JQL is not met.

JQL Validation will not function properly if referenced field values are included on the screen associated with the same transition.

This condition adds the issue key to the end of the JQL, so be sure to check if you are using OR statements that there are appropriate parentheses.

This condition references the JQL before the transition - it will not accept JQL if it would be met by information entered during the transition.

Useful Applications Include

  • Required Fields - Ensure specific fields have values prior to transition.

  • RegEx Validation - Used in combination with the Regex JQL Function, ensure format validation on specific fields prior to transition.

  • Leverage saved filters - The JQL statement can include filters you're already using and new ones you create (e.g., filter = "Blocked Changes").


Comment Required Validator

Requires that a comment be added for the transition in focus to continue.

This validator can only be added once to the transition.

Field

Description

Field

Description

Error Message

Custom error message to be displayed if a comment is not entered.


Field Value Validator

Allows you to

  • Require a field is not empty

  • Require that a field is modified during transition

  • Require the value of a field to be equal to a specified value (accepts RegEx)

This validator can be added as many times as needed to the transition to add as many fields as needed.

Field

Description

Field

Description

Target Field

Select the field to be validated.

Required Field

If checked, the field is required to not be empty.

Value must be Modified

If checked, the field must be modified during the transition.

Required Value

Allows you to enter in a specific required value for the field. This field accepts RegEx.

If left empty, no specific value is required.

Error Message

Custom error message to be displayed if validator is not met.


Post Functions

Auto-Create Post Function

The Auto-Create post-function allows you to configure the automatic creation of issues as part of a workflow. The JQL Statement parameter allows further control over the conditions that would cause issue creation. Issues can be created in any project, of any issue type, and linked back to the triggering issue for full transparency. Copy the original summary or add a prefix or suffix.

This post function will copy all fields from the original issue.

Field

Description

Field

Description

JQL Statement

Accepts JQL expressions.

Test Issue

Enter a test issue key to evaluate: PASS / FAIL result.

Test Button

Runs the JQL against any test issue key and provides a PASS/FAIL/Error Message response in read-only output field.

Summary Text

Enter in text to be appended/prepended to the original issue’s Summary. If left blank, the original summary will be copied directly.

Summary Action

Copy: Copies the original issue summary

Append: Adds the Summary Text to the end of the original issue summary

Prepend: Adds the Summary Text to the beginning of the original issue summary

Project

Select a project from the Jira instance, or select [current project] to use the project of the original issue

Issue Type

Select an issue type from the Jira instance, or select [current issue type] to use the issue type of the original issue

Link Type

This determines the link between the original issue and the new auto-created issue.

Select a link type from the Jira instance, or select [no link] to create independent issues that are not linked.

No link type is required if a sub-task issue type is used for the new issue.

Error Message

Custom error message to be displayed if post function fails.

Fail Action

Determines what happens if the JQL condition is not met or an error occurs.

 

 

 

Epic Links are a special type of issue linking that need to be explicitly configured in Auto-Create post-functions.

In the table below, the Source is the issue that is being transitioned through the workflow. The Clone is the newly created issue.

Source Issue Type

Target Issue Type

Behavior

Source Issue Type

Target Issue Type

Behavior

Story

Story

If your source issue is a story and you are creating another story, the new issue will have the same epic link as the source.

Story

Epic

If your source issue is a story and you are creating a new Epic, the story will be a child of the newly created Epic.

Epic

Story

If your source issue is an Epic and you are creating a new Story, the newly created Story will be a child of the Epic.

Epic

Epic

If your source issue is an Epic and you are creating another Epic, they will not be Epic linked.

Any

Sub-task

Given any source issue type, if you are creating a new sub-task there will be no Epic Link. Epic Links are not allowed for sub-tasks.

 

The most common way to configure Epic Linking is:

  • Select source issuetype with the JQL statement (e.g. issuetype = Epic)

  • Set the target Issue Type (e.g. Story)

  • Set the Link Type to Epic Link

In this configuration auto-create would trigger when a user transitioned an Epic through a workflow step with the auto-create post-function. A new story would be created and added to the Epic that the user transitioned.


Set/Calculate Field Post Function

Our Calculation Builder has support for all system and built-in custom field types, all Turbo Kit custom field types, and DocuSign for Jira custom field types. If you have a third party field you can use our Builder too, but we can't guarantee how well the post function will work. Our Calculation Builder will automatically detect the custom field type of supported fields and provide you with contextually appropriate information.

This post-function also leverages our JQL Condition functionality allowing you to do useful things like raise priority based on a high-touch client.

Field

Description

Field

Description

JQL Statement

Accepts JQL expressions.

Test Issue

Enter a test issue key to evaluate: PASS / FAIL result.

Test Button

Runs the JQL against any test issue key and provides a PASS/FAIL/Error Message response in read-only output field.

Supported fields only

Toggle off to allow selection of non-standard fields (e.g., field types created by other marketplace apps). If toggled off, you will be permitted to enter in any custom field, by ID. Third-party custom fields are not guaranteed to be compatible. User errors may occur when mixing custom and supported fields.

Target Field

Select the field to be populated.

Sources

Select source fields to populate the target. Note that the number of fields selected will depend on the type of Target field.

E.g., if the target field is a Date or Date Time field, you will only be able to select one Source field.

Calculation

Calculation of the sources to populate the Target Field. You can mix fields with Custom Input values to populate certain field types.

Clicking on a field in this view will remove it from the field.

Custom Input

Allows you to enter in custom input values (mathematical operators, static text, wiki markup, etc.).

Error Message

Custom error message to be displayed if post function fails.

Fail Action

Determines what happens if the JQL condition is not met or an error occurs.

 

 

Useful Applications Include

  • Increment/track number of transitions: "Touches + 1"

  • Calculate costs. The above example is "(Billed Hours - Refunded Hours) * Rate"

  • Assign Issue based on priority/customer

  • Raise/Lower priority based on client

  • Copy a value from one field to another