Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

The wait is over! Bulk Edit and Bulk Move REST APIs are live.

 

Introducing Bulk Ops APIs

Hello Atlassian Community,

We have listened to customer feedback and now, to better streamline your experience working with Atlassian products, we’re thrilled to announce that the Bulk Ops (Operations) APIs are ready for public use. This feature gives you precious time back to focus on high-value initiatives by enhancing Jira’s flexibility with automation process that reduce manual human intervention for large volumes of issue updates.

Increased Product Immersion and Efficiency

A lot of Atlassian customers were demanding the Bulk Ops APIs, so we listened to them and worked towards providing a better experience to all the customers.

Because the Jira UI requires operational work to be done manually, it can be time-consuming to make bulk issue changes. Using Bulk Ops APIs, the update process for large volumes of issues can be automated, increasing workflow efficiency while decreasing the chance of user-errors.

Additionally, because bulk issue updates are now taking place through the APIs instead of in the Jira UI, you are able to continue working while issue updates occur in the background.

There are 2 APIs:

  1. Bulk Edit API

  2. Bulk Move API

The Bulk Edit API allows you to search/edit fields, return paginated results, and track the progress of bulk operations.

Similarly, the Bulk Move API allows you to move issues between projects and issue types, specify values for mandatory fields, and monitor the progress of these operations.

We know that every organization has unique requirements. So we designed the Bulk Ops APIs to be flexible, allowing you to build on top of them to meet your specific use cases. Whether it's automating routine tasks or ensuring data consistency across large volumes of issues, the Bulk Ops APIs are designed to provide a more efficient and error-free way to manage your teams projects in Atlassian.

Feedback for APIs

This is a great opportunity to provide tailored feedback that will help us refine feature capabilities over time, making it even more valuable to you. If you would like to share feedback, please do here in the comments or you can book a video call session with me using this calendar.

 

API Documentation is available here

 

Thanks,

Mandeep Singh

Sr. Product Manager - Bulk Ops APIs

9 comments

Comment

Log in or Sign up to comment
Yatish Madhav
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.
August 7, 2024

Thanks @Mandeep Singh i am looking forward to testing and using these APIs ...

Just to confirm, this is only available in API v3 onwards right? Not in v2?

Thank you

Stephen Hodgson
Contributor
August 9, 2024

I'm glad there's an option to not send email, but there really needs to be an option to not touch the updated date on these APIs so issues can be fixed in bulk without ruining the updated ordering.

Darryl Lee
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
August 10, 2024

Hi there!

So for updating Component and Version (multipleVersionPickerFields and multiselectComponents), there is bulkEditMultiSelectFieldOption:

  • Options include ADD, REPLACE, REMOVE, or REMOVE_ALL for bulk edits.

But for some reason, this is unavailable for multipleSelectFields.

Can you please explain when this option will be made available for multi-select custom fields?

I tried this payload:

{
  "editedFieldsInput": {
    "multipleSelectFields": [
      {
        "bulkEditMultiSelectFieldOption": "ADD",
        "fieldId": "customfield_10281",
        "options": [ {"optionId": 10325} ]
      }
    ]
  },
  "selectedActions": [
    "customfield_10281"
  ],
  "selectedIssueIdsOrKeys": [
    "FOO-199","BAR-184"
  ],
  "sendBulkNotification": false
}'

And got the error:

Invalid request payload. Refer to the REST API documentation and try again.

Just like with Components and Versions, there is DEFINITELY a need to be able to bulk edit multi-select fields by by ADDing options, as opposed to REPLACING them all (which is the behavior when I omit bulkEditMultiSelectFieldOption above).

C'mon - Automation allows you to append values to multi-select fields with the add operation. Surely the Bulk Edit API ought to be able to do this as well?

Thank you!

Darryl Lee
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
August 12, 2024

Hey @Mandeep Singh - so I've been playing with the API and it does seem quite nice.

I was surprised that the Get bulk editable fields operation used GET instead of POST, but curl didn't seem to mind 1000 issue keys in the URL, and neither did the API endpoint. Although when I tried to give it 3918 issue keys, it balked with:

<html>
<head><title>414 Request-URI Too Large</title></head>
<body>
<center><h1>414 Request-URI Too Large</h1></center>
</body>
</html>

But I mean, 1000 at a time is fine.

So, seeing how the API does this much more efficiently than the old Bulk Operations functionality*, can we expect that the old Bulk Edit to be overhauled?

Oh, I guess it kind of has, but we're doing a more complex query across multiple projects, with multiple labels... HUM.

*For instance we were running into 504 Gateway timeouts before we even got to see the fields we wanted to Edit. Presumably has the same root cause as JRACLOUD-79299 - Some Bulk Move pages times out. Based on our testing, I'm guessing that the old Bulk Operations had to validate fields for EVERY ISSUE, as opposed to say, only looking at unique Project+Issue Type combinations?

Suraj Goel
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
August 18, 2024

@Yatish Madhav 

Yes the APIs are available v3 onwards only right now and not in v2.

Regards

 

Suraj Goel
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
August 19, 2024

@Darryl Lee 

Thanks for trying the APIs out

 

I was surprised that the Get bulk editable fields operation used GET instead of POST

Get bulk editable fields is a read only query - so it is supposed to be a GET REST call.

 

I'm guessing that the old Bulk Operations had to validate fields for EVERY ISSUE

Yes kind of, the distinction is that we are not showing every field on the UI modal for the issues selected while doing bulk edit.

You can still select multiple issues belonging to different projects and issue types to bulk edit at the same time on backlog/list with the new UI experience as well as new bulk edit APIs

viyer
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
August 20, 2024

Hey @Darryl Lee

The bulkEditMultiSelectFieldOption was added to mimic the existing Bulk Edit experience where users could provide the options to ADD, REPLACE, REMOVE, or REMOVE_ALL for bulk edits(see the screenshot below)

Screenshot 2024-08-20 at 4.01.27 PM.png

To provide inputs for multipleSelectFields, simply add multiple optionIds inside of options like this:

"options": [
{
"optionId": "10110"
},
{
"optionId": "10111"
},
{
"optionId": "10114"
}
]

You do not need to specify bulkEditMultiSelectFieldOption for this field. Here's a complete example based on your input:

{
  "editedFieldsInput": {
    "multipleSelectFields": [
      {
        "bulkEditMultiSelectFieldOption": "ADD",
        "fieldId": "customfield_10281",
        "options": [
{"optionId": 10325},
{"optionId": 10326},
{"optionId": 10327}
]

      }
    ]
  },
  "selectedActions": [
    "customfield_10281"
  ],
  "selectedIssueIdsOrKeys": [
    "FOO-199","BAR-184"
  ],
  "sendBulkNotification": false
}

Do let us know if this resolves your query!

Darryl Lee
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
August 20, 2024

Hi @viyer -

Get bulk editable fields is a read only query - so it is supposed to be a GET REST call.

Well, a POST doesn't actually mean it has to write data.

I question why you're using GET because you'll end up with incredibly huge URLs (1000 issue keys) and additionally those will show up in your server/proxy/HTTP logs, and can be "sniffed" so there's potentially a security issue as well.

Darryl Lee
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
August 20, 2024

@viyer you wrote:

The bulkEditMultiSelectFieldOption was added to mimic the existing Bulk Edit experience where users could provide the options to ADD, REPLACE, REMOVE, or REMOVE_ALL for bulk edits(see the screenshot below)

...

To provide inputs for multipleSelectFields, simply add multiple optionIds inside of options like this:

...

You do not need to specify bulkEditMultiSelectFieldOption for this field. Here's a complete example based on your input:

Uh. I'm confused. You said I don't need to specify it, but your example specifies it?

And my use case is I want to ADD one option to the existing options. That's why I'm not adding multiple optionIds.

Can you see any problems with my payload? I'm staring at it and it seems identical to yours except I was just trying to add the one option instead of 3.

{
  "editedFieldsInput": {
    "multipleSelectFields": [
      {
        "bulkEditMultiSelectFieldOption": "ADD",
        "fieldId": "customfield_10281",
        "options": [ {"optionId": 10325} ]
      }
    ]
  },
  "selectedActions": [
    "customfield_10281"
  ],
  "selectedIssueIdsOrKeys": [
    "FOO-199","BAR-184"
  ],
  "sendBulkNotification": false
}'

But I just tested again and got the same error:

{"errorMessages":["Invalid request payload. Refer to the REST API documentation and try again."]}

TAGS
AUG Leaders

Atlassian Community Events