How do I create an Approval process similar to Service Desk in JIRA Software?

Marc Colangelo May 31, 2019

Today, my company uses a paper process for change management which is not efficient, is time consuming for all parties involved and hard to manage timely response for requests.  Beyond that, it means that our change board has to be in the office to "approve" or request more information before we can move something forward (Once a week). 

I have been tasked with trying to implement a new process using JIRA issues which typically make up the content on these change forms that we pass around requesting hard copy signatures....

Designing the workflow isn't my issue, rather I want to force approvals by the change board on issues when the workflow is followed. I did install service desk in a development environment because I remembered that there is a change management process that forces approvals.

Below is a snapshot of the workflow from service desk and the feature that I want to implement into JIRA.

 

image.png

 

 

In the configuration, you can set rules on what is required to consider an issue "approved".

image.png

 

In the issue view, in a "Service Desk" project, there is an "Approvals" section which shows the "rules/current status" for an issue.

image.png

 

This is great for new "Service Desk" projects, but I want to have this as part of my JIRA Software projects.

 

What I learned about applying the workflow scheme to JIRA Software projects:

I tried to use the screens, and workflow from service desk directly, but the approval section does not appear.  The other workflow items do display as expected which is great, but can not have the approval rule applied.

 

Goals:

  • Setup the same(similar) workflow that is currently available with service desk change management
  • Have rules for approval to force approval of issues before deployment, exceptions may apply and will be worked through the emergency deployment process...

I assume I will need to create some custom code that acts simliar to what is created for approvals, but wanted to get a sense of what best practices people are using for approvals.

 

I did find that one article and answer is on a good path, but I want to enforce that all 4 approves have to approve or it is declined. Or other variance to the rule...3 of 4 approvals required...

Articles: https://community.atlassian.com/t5/Jira-Software-questions/How-do-I-add-an-approval-to-a-Jira-software-project-workflow/qaq-p/917817

 

 

Thanks

 

5 answers

1 accepted

5 votes
Answer accepted
Rachel Wright
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
June 2, 2019

Hi @Marc Colangelo , you can certainly handle approvals and change management in regular Jira, which is what all of us did before Jira Service Desk was around!  :)  It will of course look and function differently however.  For example, there won't be the same dedicated "Approvals" section like in your third screenshot.  The same automation capabilities aren't available out of the box.  You may find you need apps/add-ons/plugins to accomplish some of the desired workflow behaviors.  I'd try to accomplish everything you need with standard features and apps before going the custom code route.

There are two main ways to collect approvals.  The first is is one approval per status.  This can make for a long and inflexible workflow however.  The better way is to collect multiple approvals in one status, like in your first screenshot.  Instead of JSD's "Add approval" functionality, you'd use an individual transition button to collect each approval.  Once all approvals are granted, allow the issue to transition to the next status.

In your workflow, use a Condition to determine who can see and click each approval transition button.  (I recommend restricting transitions to roles or groups instead of individual users.)  When each transition button is clicked, use a Post Function to fill a custom field with the name of the approver and another custom field with the timestamp.  This is of course optional, but it's great for an audit trail.  And this info will display in the "People" section of your screen, giving users and easy way to see collected approvals without having to dig through the "Activity" section at the bottom of the issue.  I use the JSU app (https://marketplace.atlassian.com/apps/5048/jsu-automation-suite-for-jira-workflows) to accomplish filling in the fields with dynamic data.  Finally, use a Validator to make sure all the approver-type fields have values before an issue is allowed to transition forward.

I know my response was really high level.  Please feel free to ask additional or clarifying questions.  All of us Community members are happy to help and provide additional ideas.

Hope this helps get you started,

Rachel Wright
Author, Jira Strategy Admin Workbook

Marc Colangelo June 6, 2019

@Rachel Wright 

Thank you and this was most helpful. I understand the method of implementation you have described.

I guess what I was hoping for is a plugin that was already specifically designed and supported by atlassian for this functionality across its product base....Maybe I missed something when trying to apply the workflow from JSD to JS, thought smart business sense would say that they probably have a validation to see if the project is JSD or JS related to enable the plugin....  :)

In your proposed design, "In your workflow, use a Condition to determine who can see and click each approval transition button..." does this mean that if I have 4 approves, there would be 4 buttons on screen? Or does a person assigned to the "first position/button" need to select their button before others would display?  Obviously I will also have a "Decline" button, so I am hoping I do not need to display 8 buttons or have the click to show the next....

Is the JSU Automation necessary?

Sorry for the novice questions, I am new as an administrator (for advanced items) and trying to understand scope.

Thanks!!!

Like DALI DAVILA likes this
Rachel Wright
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
June 6, 2019

Hi again @Marc Colangelo , we were all new once, and there's always multiple ways to accomplish things, so ask away!  Hopefully others will chime in too so you get some additional ideas.

I don't think Atlassian has built a specific solution for this (beyond Jira Service Desk) of course.  Their in-house apps are here: https://marketplace.atlassian.com/vendors/85/atlassian

But luckily, they have built a thriving marketplace where Solution Partners can build necessary and valuable features.  Antonella provided one example below and I'm sure there are others available too.

My use case usually goes something like this:  Someone requests a change and someone from the Marketing Team and the Legal Team needs to approve it before IT can start work. 

In this example, I have three transition buttons:  "Marketing Approve", "Legal Approve" and "Decline" (or "Reject".)  I would use a Condition to only allow users in the "Marketing" (custom) role or the "marketing-team" to even see the button.  That way, any one person in Marketing can approve and there's no bottle neck if the CMO is out of the office.  I also hide the button once someone from Marketing has clicked it.  When the button is clicked, I populate a "Marketing Approver" user picker custom field with the button clicker's username.  Then, I can further leverage this data by checking if there's a value in the "Marketing Approver" field.  If there is, I hide the "Marketing Approve" transition since it's no longer needed.  You can use similar logic to require approvals to happen in a specific order.  Ex:  If the "Marketing Approver" field has a value, then allow the "Legal Approver" transition to display.  

I also populate a "Marketing Approval" custom date field with the timestamp.  I let anyone see/click the "Decline" button.  No need for extra workflow behaviors here.

You'll need an add-on to accomplish some of this.  (Ex: Populating the "Marketing Approver" and "Marketing Approval" custom fields.)  There are usually more than one app in the marketplace that offer whatever feature you're in search of.  You can also forgo the two custom fields I mentioned.  Jira logs who does what and when in the bottom "Activity" section.  I just like to display this information up in the "People" section, where people can see it better.

This is just my way to do it.  I'm sure there are other ways.  And as always, go with the easiest and most maintainable solution you can find.

Cheers!

Rachel Wright
Author, Jira Strategy Admin Workbook

Like # people like this
Marc Colangelo June 12, 2019

@Rachel Wright 

Thank you!!!!!

I will share what I have come up with to the community.

Like Sunil Yadav likes this
0 votes
Chris Anders March 10, 2022

I have implemented the Approval Path app from market place suggested on another thread which solves everything (for me).

Worth noting that:

  • This allows parallel approvals requests so you do not have to wait on step by step. (drag the single steps into the "parallel group". Not super obvious. 
  • You can have step by step though so person B can't approve until person A has done so
  • You can you use a pre-determined set of approvers by using Jira Groups
  • You can use a dynamic set of approvers by using the "approvers" field from the issue

Perfect solution for me. Only concern is number of emails it generates. But I hit the daily limit on my sandbox instance if Jira so haven't worked out a solution to that yet - nor had a chance to see what gets generated to who. Doesn't help that i'm the requester, approver, implementer, and owner of the change! :)

One other thing - I came across a small glitch in the groups process. I raised a support ticket ad it was fixed within 2 hours! - Nice one guys. 

0 votes
amanda.wilson March 7, 2022

I was able to set up multiple parallel approvers in Jira Software Cloud. Only one issues I don't like in my workflow set up is that I have an action button that won't disappear on the approver clicks it to make their approval. (this will become a training step for us) It is a new feature we can now vote on for Jira to implement. 

Find it here and please vote! If you are interested in how to do multiple parallel approvers I will right it up soon. 

https://jira.atlassian.com/browse/JSWCLOUD-22384

Chris Anders March 10, 2022

Hi @amanda.wilson  - yes definitely interested in being able to do multiple parallel approvals if you get a chance to write it up... Many thanks.

Troy Anderson August 1, 2022

@amanda.wilson your solution is with or without a plugin??

0 votes
Ryan B. Gonzales September 8, 2021

Hi @Marc Colangelo,

We have a similar requirement for approval in our project on JIRA software. Were you able to do it without using third-party apps/plug-ins?

Regards,

Ryan

0 votes
Antonella Capalbo
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 2, 2019
Marc Colangelo June 3, 2019

Thank you, Antonella.

I have reviewed, and this solution looks solid. Will consider for future. 

Andy Heinzer
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
June 27, 2019

HI @Antonella Capalbo 

Thanks for posting a related link to this question.  However I would ask that you please review our Atlassian Community guidelines for Marketplace vendors and Solution Partners.

It is important for vendors to identify their affiliation with a plugin on Community so that users can better understand who is making such a recommendation to them.

Regards,

Andy

Like # people like this

Suggest an answer

Log in or Sign up to answer