Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
Community Members
Community Events
Community Groups

How to bulk replace users in a JQL or project?

Hey fellow Jira heroes (or maybe Jiroes? 😁),

we are using a Jira project as a project template with many "standard" tickets that we need in all projects. We use the app "Deep Clone" to clone the epics and issues into new projects and that works quite well. Now I introduced a few "placeholder" jira users in our project template (developer, reviewer) to quickly assign the cloned issues in one go once we have decided on the person that will take that role in the project. I can use JQL and bulk edit to replace the assignee, reporter or reviewer (custom user field), but I did not find a solution that allows me to replace my "placeholder" user with a real user that will fill that role. Example: The "reviewer placeholder" is assignee, reporter or reviewer in some of the tickets, so I would need to run a few bulk edits. Not the end of the world, but maybe there is a better way.

A quick search did not find any apps or tools that would allow me to do such replacement. Do you know a way to achieve a direct replacement of users in a JQL query or project in all user fields? I could use it for our template issues or for example when a new intern takes over from another one.


Cheers and thanks for your help


4 answers

1 accepted

2 votes
Answer accepted

This seems like a really straightforward use-case for a Manually Triggered rule in Jira Automation. Something along these lines:

Screen Shot 2021-04-29 at 11.24.42 AM.png

@Mykenna Cepek Yeah, I thought about that as well. It would work, but I would have to adjust the rule with different users every time for replacing the placeholder value. I thought about assigning the user I want to assign my placeholders as the project lead, run the manual rule and have the rule "pull" the project lead. Unfortunately, right now there is no way to use smart values to get the project lead, even though it should be working. 🙄


I could just use a regular issue that the automation rule takes as reference when running it. That would mean assigning my developer as the assignee and my reviewer as the reviewer in my proxy issue and have my manually triggered rules copy the values from that proxy issue... That sounds like the smoothest solution right now, I might give that a shot.

Mykenna Cepek Community Leader May 03, 2021

I commented on the thread you linked above, Jonas. I noted that I was able to retrieve the Project Lead just fine in an automation rule in our Jira Cloud instance.

Perhaps the issue you experienced is fixed? I find it odd that it would work in some instances and not others. If it still doesn't work for you, maybe report it as a problem to Atlassian Support.

Like ‱ Jonas Börnicke likes this
Mykenna Cepek Community Leader May 04, 2021

Rereading all you've posted here, Jonas, I still think you could accomplish this with one rule, manually invoked (once per template use), to replace all your placeholders users/roles with actual team members for the target project.

It would require you to customize the rule with the target team members before executing the rule. But it sounds like such a step needs to be part of your process anyway.

Like ‱ Jonas Börnicke likes this

@Mykenna Cepek I agree. I will try the route via a manually triggered rule.

My inner OCD-ridden automater does not like the idea of having to adjust the rule every time I want to use it, but I cannot think of a better solution just yet 😅. Maybe a better solution will come up once I set it up. I will post my final solution once I am done. 

Hey guys,

I created a manually triggered automation to do the replacing for me (thanks again @Mykenna Cepek for the suggestion) and it works quite well and without any adjusting of the rule when we want to use it.

How it works:

When triggered manually in an issue, my placeholder will be replaced with the assignee of the trigger issue. This way I only need to assign only one issue to whoever my developer/designer/reviewer is and the automation will put this person wherever my placeholder account is. I limit the action to the project of the trigger issue as I do not want to change it everywhere. 

This way we only need to assign one issue, run the rule and have all the placeholders replaced. I hope this is helpful for someone. 😉

210517_09_32_01- Screenshot.png


Thanks again to everyone who commented, I appreciate you taking time for it! 👌

Like ‱ Mykenna Cepek likes this

If it requires bulk changes, you might try our app Excel 365 Connector and just do this in Excel:

Agreed with Lukasz, a JQL query for the placeholder user followed by a bulk change of those tickets to the actual user would be the trick here. All standard functionality :)

@Ɓukasz Modzelewski _Transition Technologies PSC_ Thanks for the suggestion, I might try that. I would prefer not to pay for another plugin JUST for that though. 😁


@Oliver Vistisen I am curious about the JQL query and bulk change that you would use for this. I can find all the issues with my "placeholder" mentioned, no problem. JQL to find all the issues:

project = "new project" AND (assignee = "placeholder" OR reporter = "placeholder" OR reviewer = "placeholder")

How would you use ONE bulk change to have all "placeholder" replaced? I know that I could use three individual bulk changes, but that gets tedious and I would prefer some other option, hence my question. 😉

Mykenna Cepek Community Leader May 03, 2021

Keep in mind that most (all?) add-ons have a 30-day trial period. So if this a one-time thing, the suggested plugin might work well for your use-case.

Like ‱ Dave Liao likes this
1 vote
caglad Rising Star Apr 29, 2021

If "placeholder" is a field, it should show up in the bulk edit screen, if you want to change it that way. 

@caglad "placeholder" is not a field, but user profiles that I created. I could label all my template issues with "developer" or "reviewer" and assign them according to the labels. That would get complicated though, as the individual people should be assigned to different roles, meaning that my reviewer should be assignee in some issues and reviewer in others. For that to work I would need to have six different labels, one for each possible role per placeholder. 

I guess I could have an automation rule use these labels to assign the user to the correct role to the correct ticket, but that workflow is quite complicated for people to use in my organization. Having our template project and just "see" the placeholders is more intuitive when adding new template tickets rather than having to add some label like "reviewer_assignee" or "developer_reporter" for the automation rule to work.

caglad Rising Star May 03, 2021

Not that you need to re do what you are thinking but if you had a field called developer and a field call reviewer.. and then list all the applicable people in each group.  Then you could essentially assign the developer and the reviewer to the issue. It's really thinking the issue's developer is and reviewer is...

I don't really understand what you are trying to tell me here, I am afraid. Just to clarify: There are three user fields (Assignee, Reporter and Reviewer). My placeholder users have multiple of these roles set up in the template. After copying the template issues, I want to replace these placeholders with different users.

1 vote
Alexey Rising Star Apr 29, 2021

Hey, what about building an automation temp rule using smart values?
I had previously many changes, so I managed to reduce them down to 2 simple bulk changes:

1. JQL and select everything and add 'whatever label'
2. JQL and select everything and remove 'whatever label'

Automation trigger: when labeling field changes
Filter: if the trigger label is 'whatever label'
Then: do any branching rules:

  • if issue type X then do Y
  • If-else issue status Z then do A
  • If-else if issue updated last Friday then do B
  • etc etc etc

It will cycle through all issues you marked with a temporary label and do the thing you needed.

Any trigger can work here, comment or scheduled CRON. I just like to use labels, as they leave no tracks (except a small record in history) and works in JS and JSM in all my projects etc.

@Alexey Thanks for that suggestion. Unfortunately we are not using Jira Cloud Premium, meaning I only have 500 rule executions per month. I run my rules on a daily basis, meaning that I only need 30 executions per global rule per month. I could use a manually triggered rule for my application though. See the other comments for my remarks there.

Alexey Rising Star May 03, 2021

@Jonas Börnickemanual works too. Running the script will consume only 1 automation per use, even if it will affect 100 issues.

Also, you can add more Jira products (just with 1 user) to boost your automation count. If I'm not mistaken, the cheapest way will be Confluence premium.

Suggest an answer

Log in or Sign up to answer

Atlassian Community Events