Working in bulk with a spreadsheet
Export hundreds of tasks, edit them in Excel, load them back as updates.
Some work is not done one item at a time: shifting the due date of two hundred tasks, filling one field across the board, or bringing in a list migrated from another system. There are two routes, and which one you take depends on how many fields you touch.
Which route
| Situation | Route |
|---|---|
| Changing one field across a group of tasks | Select them in the list view and bulk edit, with no file involved. "Select all" picks only the page on screen, and at most 100 tasks can be selected at once. Status, sprint, assignee, labels, issue type, versions, priority and select, person and checkbox custom fields can be changed in bulk; for dates, text and number fields use the spreadsheet route. |
| Changing many fields with different values per row | Export, edit in a spreadsheet, load back with "update existing". |
| Bringing a list in from another system | Import the Excel file; columns are mapped on the server. |
Export, edit, load back
- 1Filter the set you will work on in the list view. Exactly that result set goes into the file.
- 2Export as Excel. The output is not limited to the visible columns: EVERY field of the task goes into the file, description and custom fields included.
- 3Edit in the spreadsheet. Do NOT touch the task id column: that is what matches rows on the way back.
- 4Upload the file from the import screen. Every row appears in the preview.
- 5Tick "update existing records". Without it, rows whose id matches are skipped as "already exists" and nothing changes. When updating, only cells filled in the file change; an empty cell does not clear the existing value.
- 6Untick the rows you do not want, then import.
- 7Read the result screen: how many were created, how many updated, how many skipped and which values could not be matched.
Updating is powerful but needs care: a single stale cell can silently overwrite a change someone made in the meantime. If the team kept working on those tasks after you exported, it is safer to export again and work from a fresh file before loading it back.
A single import handles at most 500 rows. Section fill-in rules apply here as well: filling a field in a section you are not allowed to fill is rejected through a file too. Formula fields, person-type fields and the GitLab Project column are skipped on import and named in the report. Import is shown only to people with the "Create tasks" permission.
Related pages: Import & export, Search & filters, Boards & sprints.