We have a new documentation site. Please go here to see the latest.

Integrations

Issue Checklist can be used in combination with other apps to perform advanced functions in Jira. Examples for the following apps are provided below:

Elements Copy & Sync

  • This example refers to Company-managed (Classic) Jira projects only.

  • If you are using Checklist for Jira ENTERPRISE , note that this method will not work for Global Checklist. Global Checklists are not saved to the Checklist Text custom field and therefore will not be copied and/or synced.

Elements Copy & Sync is a Jira app used to clone and sync Jira issues. You can use Elements Copy & Sync to copy issues with their checklists and the checklist’s current statuses. Alternatively, you can copy the issue and checklist without the checklist status, or you can synchronize to keep the checklists on both issues in sync.

To copy an issue with checklist item statuses:

  1. Ensure that the Save local checklist items to Jira custom fields global setting is enabled.

  2. Go to the Elements Copy & Sync Cloud administration and click on Recipes in the navigation bar.

  3. In the Recipes listing page, select Escalate ticket in the Active Recipes list.

  4. Click on the Content tab on the Recipe configuration page.

  5. In the Fields section, activate the Set and synchronize fields option. The Fields mapping options subsection is displayed.

  6. Click on the "..." button at the right of the Add target fields option, and select Issue Checklist for Jira.

  7. Save the recipe.

When the recipe is triggered from an issue, it will copy all the checklists in the source issue to the target issue, including the status of the checklist items.

To copy an issue with checklist items cleared (all items open/incomplete):

To copy the issue with the all checklist items marked as open/incomplete (regardless of the item status on the source issue), check the Clear Checklist checkbox.

To copy an issue with checklist items synced:

To copy the issue with the all checklist items synced (each time an item is marked as done in the checklist of the source issue, the same item will automatically be marked as done in the checklist of the copied issue) enable the Synchronized toggle.

For more information, see Elements Copy & Sync documentation.

JXL for Jira

  • This example refers to Company-managed (Classic) Jira projects only.

  • If you are using Checklist for Jira ENTERPRISE , note that:

    • The Checklist Text field will only reflect local checklists. Global checklists will not be included.

    • The Checklist Completed field refers only to local checklists. The status of Global checklists in not reflected.

    • The Checklist Progress field reflects the cumulative progress on both local and Global checklists.

    • The Checklist Progress % field reflects the cumulative progress on both local and Global checklists.

JXL for Jira is an issue editor/organizer that lets you view, sort, and edit issues in customizable spreadsheets within Jira. Users can create and inline edit issues, copy and paste fields in bulk, group and structure issues in custom hierarchies, and sum up field values across groupings and hierarchy levels.

JXL allows you to add the following Issue Checklist fields as columns in the spreadsheet:

  • Checklist Text

  • Checklist Completed (can be used in issue groupings and hierarchy)

  • Checklist Progress (displayed as a progress bar, can be used in calculations)

  • Checklist Progress % (can be used in calculations)

See the JXL documentation for more information.

To add a column to the table of a Sheet:

  1. Click the Edit icon at the top right of the sheet.

  2. Hover the cursor over the position in the table where you want to create the column.

  3. Click the Add icon that appears above the table.

  4. Select the desired field(s).

  5. Click Save.

Powerscripts

Power Scripts is an automation app offered by Anova Apps that allows you to automate tasks in Jira.

Issue Checklist can be integrated with Power Scripts to add or modify the checklists in various situations such as when an issue is transition or a label is added. This example shows how to:

Add a checklist when the issue is transitioned depending on the value of a custom field

  • This example refers to Company-managed (Classic) Jira projects only.

  • If you are using Checklist for Jira ENTERPRISE , note that this method will not allow you to add a Global Checklist. Global Checklists are not saved to the Checklist Text custom field and therefore cannot be accessed by the script.


To add a checklist if a Story is transitioned to In Progress and the value of a custom field is Development:

  1. Ensure that the Save checklist data to Jira custom fields global setting is enabled.

  2. Ensure that the Checklist Text field is present on the Create issue screen. Note that you can hide the field from the Issue view page. 

  3. Find the custom field IDs for the Checklist Text field and the other custom field used in the script.

  4. Navigate to Jira Settings > Issues > Workflows and open the relevant workflow in Diagram view.

  5. Click on the relevant transition and select Post Functions.

  6. Click Add post function.

  7. Select SIL Postfunction and click Add.

  8. Select create a new script and click Next.

  9. Name the new script, select its location (directory) and click Next.

  10. Write script that updates Checklist Text field as follows, where

    1. customfield_10171 is the field who’s value will be checked to run the script

    2. customfield_10039 is the Checklist Text field

    3. Request sent to QA and QA Confirmed are items in the checklist.

    4. Note that although the Checklist Text field accepts checklists in text form, Power Scripts requires all new lines to be proceeded by \n.

      if (project == "DEMO" and issueType == "Story" and customfield_10071 == "Development") { customfield_10039 = "[]Request sent to QA \n []QA Confirmed"; }
  11. Click Check to validate the script.

  12. Click Next.

  13. Click Add on the final confirmation page.

  14. Confirm that the new post function is on the list. (It will appear as the first item on the list.)

  15. Click Publish Draft to publish the changed workflow.

  16. Transition a Story that has the indicated custom field value to the In Progress status. The checklist items should appear on the issue.

 

Recurring Tasks

Recurring Tasks is an automation app offered by Gebsun Software. It allows users to schedule and automate creation of Jira issues and sub-tasks.

Issue Checklist can be integrated with Recurring Tasks to create issues that will contain a checklist. 

Add checklist to recurring task

 

  1. Ensure that the Save local checklist items to Jira custom fields global setting is enabled.

  2. Ensure that the Checklist Text field is present on the Create issue screen. Note that you can hide the field from the Issue view page. 

  3. When creating a Recurring Task (or editing an existing one), find Checklist Text field in the dialog box and enter the checklist contents with each item proceeded by square brackets.

  4. Click Save.

  5. Test by waiting for the recurring issue to be created or by creating it from Recurring Tasks menu. The Checklist items should appear on the issue.

 

Scriptrunner for Jira

ScriptRunner for Jira is an app offered by Adaptavist that allows you to run custom scripts written in Groovy in response to various events in Jira. Scripts can also be scheduled to run at a specific time.

Issue Checklist can be integrated with ScriptRunner for Jira which allows for a wide range of actions. Scripts have full access to Jira REST API. This example shows how to:

Create Issues from Checklist Items on Transition

 

  1. Ensure that the Save local checklist items to Jira custom fields global setting is enabled.

  2. Navigate to Jira settings > Apps > ScriptRunner > Script Listeners.

  3. Click Add Listener.

  4. Enter a name of the Listener and select Issue Updated as the event on which the script will be run. Select the relevant project(s).

  5. Select Current User to have reporter field of the newly created issues to be set to the user who transitioned the original issue.

  6. Click into the panel in the lower script panel and paste in the code below.

  7. Test the script by transition a Task with a checklist to Done.

 

def wasTransitioned = false for (item in changelog.items) { if (item.field == "status") { // change "Done" below if you want issues created on transition to other status(es) if (["Done"].contains(item.toString)) { wasTransitioned = true } } } if (!wasTransitioned) { return } def issueTypesRequest = get("/rest/api/2/issuetype").asObject(List) assert issueTypesRequest.status == 200 // change "Task" below if you want to create issues of other issue type def issueType = issueTypesRequest.body.find { it.name == "Task" } assert issueType // uncomment following lines if you wish to create links to the parent issue // def linkTypesRequest = get("/rest/api/2/issueLinkType").asObject(Map) // assert linkTypesRequest.status == 200 // def linkType = linkTypesRequest.body.issueLinkTypes.find { it.name == "Relates" } // assert linkType def fieldsRequest = get("/rest/api/2/field").asObject(List) assert fieldsRequest.status == 200 def textField = fieldsRequest.body.find { it.name == "Checklist Text" } assert textField def textValue = issue.fields[textField.id] def itemLines = textValue.split("\n") def items = [] def newLines = [] for (line in itemLines) { def match = (line =~ /\*\s+\[.*\]\s+(.*)/) if (match.find()) { items << match.group(1) newLines << "* [x] " + match.group(1); } else { // it must be item's description newLines << line } } // comment out if you want separators to be transformed into issues too items = items.findAll { !it.startsWith('---') } def issueUpdates = [] for (item in items) { def issueUpdate = [ fields: [ // if your configuration requires more fields add them here issuetype: [ id: issueType.id ], project: [ id: issue.fields.project.id ], summary: item ], // uncomment following lines if you wish to create link to the parent issue // update: [ // issuelinks: [[ // add: [ // type: [ // id: linkType.id // ], // inwardIssue: [ // or outwardIssue, depending on how you want to link the issues // key: issue.key // ] // ] // ]] // ] ] issueUpdates << issueUpdate } def bulkRequest = post("/rest/api/2/issue/bulk") .header("Content-Type", "application/json") .body([issueUpdates: issueUpdates]) .asString() assert bulkRequest.status == 201 // uncomment if you want to mark items as completed // def textRequest = put("/rest/api/2/issue/${issue.key}?overrideScreenSecurity=true&overrideEditableFlag=true") // .header("Content-Type", "application/json") // .body([fields: [(textField.id): newLines.join("\n")]]) // .asString() // assert textRequest.status == 204

 

7. Adjust the script to your needs and click Save.


Xporter