Skip to main content
Skip table of contents

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.

      CODE
      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

  • 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 create issues with Global Checklists. When new issues are created, Global Checklists will be according to the Checklist Context.

  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.

Alternatively, you can use the Default Checklist feature to automatically add a checklist to newly created issues.

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

  • 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.

  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.

Click to see code
CODE
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

Please note:

  • Comments in the script describe optional adjustments.

  • The script ends execution if there was no issue transitioned or if the transition was to a status other than one expected. By default, the script is run when an issue is transitioned to the Done status. You can adjust the script to run when an issue is transitioned to any status in your workflow (line 6).

  • By default, the script creates Task type issues from checklist items. You can adjust the script to create issues of different issue type (line 20).

  • Uncomment lines 24-28 if you want to create issue links between the newly created issues and the parent issue. You may want to change the issue link type (line 27) and the inward / outward relation between issues (line 78).

  • By default, no issues are created for checklist separators. This can be changed by commenting out line 55 of the script.

  • After the issues are created, the script can mark items as completed by updating Checklist Text custom field. If you wish to do so:

    • Uncomment the last lines in the script.

    • Ensure that the Checklist Text custom field is present on the issue screen, or that the script listener is run as ScriptRunner Add-On User (not as Current User).

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

If you need help with troubleshooting the script listener, please add entry logs with more information to the ScriptRunner log (e.g. content of items variable). After script execution, navigate to Jira settings > Apps > ScriptRunner > Logs to see the logs.


Xporter

If you are using Checklist for Jira ENTERPRISE , note that these methods cannot be used to export Global Checklists as Global Checklists are not saved to the Checklist Text custom field.

Xporter for Jira is an app offered by Xblend that allows you to export Jira issues to various formats and documents (PDF, MS Word, and MS Excel). 

Issue Checklist can be integrated with Xporter to allow you to include checklist data in exported issues and documents. 

Built-in Xporter Integration

Please refer to the following page in Xporter documentation for detailed instructions.

Manual Integration

Alternatively, you can include checklist data in the Xporter template using the custom fields provided by Issue Checklist:

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.