How do I export Azure DevOps work items to CSV?
6 min read · Updated
Export Azure DevOps work items to CSV from a query: open Boards → Queries, run the query you want, then select the actions icon → Export to CSV. The file downloads as data.csv and contains exactly the columns your query results show.
That last part is the whole game. A default query exports ID, work item type, title, state, and tags, which tells you nothing about requirement quality. The rest of this guide covers getting the text fields into the file, exporting a backlog or board that has no export of its own, and the HTML quirk that surprises everyone the first time.
How do I get Description and Acceptance Criteria into the file?
Add them as columns before you export. Open Column options on the query results, choose Add a column, and add Description and Acceptance Criteria alongside Title. Almost every field in the work item field index is available as a column, rich-text fields included, and the CSV mirrors the column list exactly.
One constraint to know: you can add rich-text fields as columns but you can’t sort on them. Sorting on Description, History, or Parent returns an error. Sort by ID, changed date, or area path instead and let the text fields ride along.
Four columns carry everything a reviewer or a scoring tool needs: ID, Title, Description, and Acceptance Criteria. Add Story Points, Iteration Path, or Area Path if your downstream use needs them, and leave the rest out. A 40-column export is harder to read and no more useful.
How do I export a backlog or a board?
Turn the view into a query first. Backlogs and boards have no CSV export of their own, but a backlog has a Create Query action that reproduces the current view as a query, complete with its filters. From there the export is the same two clicks.
Building the query by hand is usually just as fast. For a product backlog in an e-commerce project, a flat-list query with three clauses gets you there: work item type is User Story, area path is under your team’s node, and state is not Closed or Removed. Save it under Shared Queries if you plan to export again, which you will.
Two filters worth adding while you are in the editor: use Is Empty on Acceptance Criteria to pull only the work items missing criteria, or Contains Words on Description to find a theme across the backlog. Both operators work on rich-text fields, and both are faster than filtering the spreadsheet afterwards.
What surprises people about the exported file?
- Rich text exports as HTML. Description and Acceptance Criteria come out with the markup intact, so expect
<p>,<br>, and in the cells. Anything reading the file needs to strip tags, and any tool that doesn’t will score or display markup as if it were requirements text. - Export needs a permission. If Export to CSV isn’t in the actions menu, it is a permission, not a bug: exporting requires membership in Project Administrators or View project-level information set to Allow.
- Round-tripping has a cap. Editing the file and reimporting is supported from Boards → Queries → Import work items, but only 1,000 work items per import. Split larger files by area path or ID range.
- Automation lives in the CLI. For a scheduled extract, run the same WIQL through
az boards query --wiqlrather than clicking through the portal every week.
What can I do with the export?
A CSV backlog is the fastest way to see requirement quality at a glance, because 200 descriptions in one file read very differently from 200 work items opened one at a time. Patterns jump out immediately: empty acceptance criteria, one-line descriptions, titles that describe a screen instead of an outcome.
It is also the fastest way to try Vindex without installing anything. Drop the exported CSV on the Azure DevOps overview page and every work item comes back scored, with plain-language findings on the ones that will cost you later. HTML in the text fields is stripped for you, no account is needed, and demo uploads are deleted after 24 hours.
Once you have seen the findings, the extension makes them automatic: scoring runs on every work item create and update, so you stop needing the export at all. That path starts at the Azure DevOps setup guide.
