Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Is there a way to automatically set approver based on custom field values of request?

Edited

we have a custom field which is the list of our teams. is there a way to set approver of the issue based on the chosen item of the custom field.

 

P.S

i tried automation rules, but couldn't find SET APPROVER on action list items.

5 answers

Hi @Parham,

Like Paulo said, one solution is to use an add-on like Power Scripts. With a few lines of code, you can easily and quickly set approver based on custom field values of request.

We've put together a short 4 min video showing how to set this up and execute. We've also included the sample script we used, so you can just copy and paste to test it yourself.

Hope this helps!

Johnson

thank you Johnson, it was very helpful.

Hi,

I have used this script in the change workflow at the create stage but the approval email is not triggered. Have tried all possible variations but no luck. It successfully sets the approver but the mail is not triggered. When I set the approver manually it triggers the mail. If you could offer any advice it would be much appreciated.

Thanks

Dermot

Hi Dermot,

Mine works when I use a script.  It's just important that I put the script not as the last item in the post-script events.  Where did you place yours?

S

Hi Susan,

I got it going using the workflow toolbox (you suggested this in another post from me btw thanks!). I tried the script in every possible sequence in the post function to no avail. It's all working as expected now.

Thanks!

Dermot

Deleted user Jul 10, 2019

I am having the same issue.

afelts I'm New Here Oct 18, 2021

@Susan Hauth _Jira Queen_Do you still have this script? The link above does not work.

Hi Everyone,

Sharing a script out that sets the field "Approvers" to a Jira group based on the custom field "office".  This goes in Scriptrunner (Server/DC).

Hope it helps:

 

import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.ModifiedValue

/**
* Script that Set Approvers depending on the custom field : Office
*/

def customFieldname = "Office" //Name of the custom field to get the value from
def userPickerApprovers = "Approvers" //User Picker Field that will be populated with all users from the selected group in the groupAppvoers field
Map groupsApprovers = ["Boston":"NA Client Services Managers","Toronto":"NA Client Services Managers","Pittsburgh":"NA Client Services Managers","Montreal":"NA Client Services Managers","London":"UK Client Service Managers",
"London Gresham":"UK Client Service Managers","Ho Chi Minh City":"UK Client Service Managers","Sydney":"AU CS and Account Managers","Cape Town":"Cape Town Client Services Managers","Frankfurt":"Frankfurt CS and Account Managers",
"Milan":"Milan CS and Account Managers","Paris":"Paris Client Services Managers"] //Map of the [City:Approvers Group for that City]

MutableIssue issue = issue as MutableIssue
def cfManager = ComponentAccessor.getCustomFieldManager()
def myFieldCf = cfManager.getCustomFieldObjectsByName(customFieldname)?.first()
def fieldValue = issue.getCustomFieldValue(myFieldCf)
if(groupsApprovers.keySet().contains(fieldValue.toString())) {
def groupManager = ComponentAccessor.groupManager
def customFieldManager = ComponentAccessor.customFieldManager

def groupApprovers = groupsApprovers[fieldValue.toString()]
def group = groupManager.getGroup(groupApprovers)
if(group) {
def users = groupManager.getDirectUsersInGroup(group)
users = users - issue.reporter
def approversField = customFieldManager.getCustomFieldObjectsByName(userPickerApprovers)?.first()
def changeHolder = new DefaultIssueChangeHolder()
approversField.updateValue(null,issue,new ModifiedValue(null,users), changeHolder)
}
else{
log.warn("Group ${groupApprovers} not found for issue ${issue.key}")
}
}

afelts I'm New Here Oct 24, 2021

Thanks!

Hi Parham, I do it with the built in Jira Service Desk Automation. I select the actions and "Do" modify issue, select the field Approvers and then choose the approvers for that scenario. The bad thing is that you have to add every approver for each scenario, it cannot be a group.

Thank you! This solved an issue for me!

0 votes

Hi Parham,

I do it with a post-function script (using Scriptrunner). 

Susan

Hi Susan, can you please help me on my problem .

I want to create a simple post function on JIRA Service Desk that automatically sets the Approvers Field based on the requestor's manager. could you provide me some suggestions, or even sample code? thanks

Hi alvin,

One simple way would be to keep the requestor's manager in a user property, then just copy it to a field.  I've done that in the past.

Susan

Thanks Susan, I already achieve it.

Hello Susan

Could you please kindly share your script out ?

We also encounter this requirement from our users.

0 votes
Paulo Hennig Atlassian Team Nov 23, 2017

Hi, Parham.

Unfortunately, this is not possible to achieve without a customization or a specific 3rd party plugin that can proceed with that. But notice that it's possible to have a pre-selected list of your approvals, so if this custom field that you've mentioned is a "User Picker" type, you can navigate through your project configuration and on "Request Types", you can add this field there as hidden and an option will appear for you to set a list of users there.

I'm not sure how your workflow works exactly, but I believe you can customize it according to my statement ahead and maybe have more than 1 approval field. 

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Jira Service Management

Next level incident management in Jira Service Management

Hello Atlassian Community! We’re thrilled to announce some exciting changes to incident management in Jira Service Management Cloud, in order to give your teams extra muscle during incidents, and ...

1,543 views 20 12
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you