Eliminate Guesswork: Configure Approvers on-the-fly in Jira Workflows

Kiet NgoKiet Ngo
4 min read

Picking the right people to approve requests is crucial for smooth workflow in organizations. This article focuses on two common ways – letting customers choose approvers and setting default approvers. We also suggest our preferred method which is using project roles, automation, and APIs. By knowing the pros and cons of each approach, organizations can improve their approval processes.

Loose: Allowing customers to select approvers

This approach allows customers to select the approvers for their requests. When submitting a request, customers can specify who they believe should approve their request. See this article for the how.

AgileOps - Let the customers choose the approver(s)

Let the customers choose the approver(s)

Pros

  • Flexibility

  • Customization

  • Improved communication

Cons

  • Potential delays

  • Inconsistent choices

  • Risk of inappropriate choices

Tight: Configuring Default Approvers

Alternatively, you can set default approvers in advance for certain request types or categories. With this approach, you define a predefined set of approvers for specific types of requests. Whenever a customer submits a request falling under a particular category, the default approvers are automatically assigned. See this article for the how.

AgileOps - Presetting the approvers and hiding the Approver(s) field from the portal

Presetting the approvers and hiding the Approver(s) field from the portal

Pros

  • Streamlined process

  • Consistency

  • Reduced decision-making burden

Cons

  • Limited customization

  • Lack of transparency

  • Difficulty accommodating exceptions

Dynamically: Utilizing project roles, automation, and APIs to set Approvers

At AgileOps, we actually configure approvers the third way, using project roles, automation, and APIs.

With this solution, the final result will be:

  • The customer raises a request

  • Jira automatically pulls a pre-defined set of users from the "Approvers" project role and sets them as the approvers of the request

  • Whenever the approvers are changed (there is a new approver or an existing approver leaves the company), the project admin just needs to edit users in the "Approvers" project role

Here is how it’s set up:

Step 1: Create the “Approvers” project role

AgileOps - Create the Approvers project role

  1. Go to System > Project roles (under the Security section)

  2. Click Add Project Role

  3. In the Name field, enter Approvers

  4. In the Description field, enter a brief description of the role

  5. Click Add Project Role

Step 2: Add users to the “Approvers” project role

AgileOps - Add users to the Approvers project role

  1. Go to your project settings and open the People section

  2. Click on Add people

  3. Enter the usernames of the users you want to add as approvers

  4. Choose the role Approvers

  5. Click on Add

Step 3: Retrieve the approvers when a new ticket is raised

AgileOps - Retrieve the approvers when a new ticket is raised

  1. Go to your project settings and open the Automation section

  2. Click on Create rule

  3. Set the trigger to be Issue created

  4. Set an action to Send web request

  5. Configure the web request to retrieve users currently having the project role “Approvers” through Jira API (see here for detailed documentation)

Step 4: Format the web request response

AgileOps - Retrieve the approvers when a new ticket is raised

  1. Add an action to Create variable

  2. Set a Variable name (in this case is allAccounts)

  3. Define the smart value to format the web request response:

    {{webResponse.body.actors.actorUser.asJsonObjectArray("accountId")}}

Step 5: Edit Approvers field of the ticket

AgileOps - Edit Approvers field of the ticket

  1. Add an action to Edit issue

  2. Edit the field Approvers (custom field with the ID 10003) with the smart value allAccounts

Step 6: Notify Approver through Slack

AgileOps - Notify Approver through Slack

  1. Add an action to Send Slack message

  2. Configure the message to notify the approver(s) that there is a request pending their approval using the syntax:

    {{#issue.Approvers}}<@{{properties.metadata.slack_id}}>{{^last}},{{/}}{{/}}

  3. Save the rule and turn it on

Step 7: Action - Approver for ticket is set and notified

AgileOps - Action - Approver for ticket is set and notified

Now, when a new ticket is created, the Approvers field is automatically populated with users with the Approvers project role. They will also receive a notification on Slack.

AgileOps - Approvers field is automatically populated with users

The biggest cons of this approach is, you guessed it, the complexity of setup: It requires configuring automation rules and custom scripting, which may require technical expertise and effort. But the advantages are well worth it.

  • Consistency and scalability

  • Streamlined process

  • Reduced manual errors

In this article, we explore three approaches to designate request approvers, each having its own set of pros and cons. Allowing customers to pick approvers adds flexibility but may cause inconsistent and delayed approvals. Alternatively, opting for default approvers streamlines the process but might be inflexible and challenging for exceptions.

Optimizing approval workflows becomes seamless with automation rules and APIs tailored for users designated as 'Approvers' in project roles. This not only fosters consistency and efficiency but also propels organizations towards faster and more successful goal accomplishment.

🍿 View the full article Eliminate Guesswork: Configure Approvers on-the-fly in Jira Workflows.

0
Subscribe to my newsletter

Read articles from Kiet Ngo directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Kiet Ngo
Kiet Ngo

I coach Agile teams to make the most out of Atlassian products: Jira Software, Confluence, Jira Service Management. I coach DevOps teams to adopt and implement CI/CD best practices that utilize AWS infrastructure. For business teams, I help adopt the right Agile/DevOps tools (Jira, Confluence, Jira Service Management, Jenkins, SonarQube, Docker, Artifactory) and frameworks (Scrum, Kanban, XP for Agile and ITSM/ITIL) to efficiently drive your projects and organization into success. 🕓12,000 hrs trusted by 100+ happy Upwork clients. 🎖Atlassian Certified Expert, Axelos ITIL Master, AWS SA/DevOps/Security Certified. 🏢Enterprises worked: Canon, Roblox, Survey Monkey, Rubrik, Couchbase... ⭐15+ years of experience mix of management and technical roles. 🎖Trusted by Atlassian & AWS Partners in US, Europe, and Oceania.