This is the second post that discussed how information tracked in Azure DevOps, such as the sprint burndown chart and current sprint backlog can be exported to SharePoint using Flow. This scenario applies to times when you want to share such information with clients without giving them direct access to Azure DevOps.
If you’re new to Agile project management, I recommend you have a look at a book I recently published on this topic called Agile Office 365. Besides providing you with an overview of Agile project management using the Scrum methodology, it provides you with lots of information on how to manage your Office 365 projects using these methods.
To learn about ways to generate a sprint burndown chart, check out Part 1: The Sprint Burndown Chart of this two-part series.
The Sprint Backlog
- Epic
- Feature
- User Story / Bug
- Task
During sprint planning, the top items from the product backlog are further broken down and scoped out to form the next sprint backlog.
Microsoft Flow includes 13 actions that allow you to query and update the items. You can use those existing actions and leverage the Azure DevOps Analytics extension to make your life a little easier.
The Ingredients
- Azure DevOps (with the Azure DevOps Analytics extension)
- SharePoint list
- Flow
Azure DevOps
In order to build the sprint backlog with the User Stories and Bugs assigned to the current sprint, I created a custom query. From those work items, I was able to retrieve all the tasks underneath them well as the parent Feature and Epic they belonged to. To get the results, I had to compose the following query:
(Work Item Type = Bug) OR (Work Item Type = User Story) AND (Iteration Path = @CurrentIteration)
SharePoint List
- Title – to display the User Story or Bug name
- Feature – to display and group the User Stories and Bugs by Feature
- Epic – to display and group the Features by Epic
- Status – to display the current status of the item
Flow
- Delete all existing list items
- Get the information from Azure DevOps
- Update the SharePoint list
Get the information from Azure DevOps
[
{ “User Story Title” : “US1”,
“User Story State” : “S1”,
“Feature” : “F1”,
“Epic” : “E1”
},
{ “User Story Title” : “US2”,
“User Story State” : “S2”,
“Feature” : “F2”,
“Epic” : “E2”
},
…
{ “User Story Title” : “USn”,
“User Story State” : “Sn”,
“Feature” : “Fn”,
“Epic” : “En”
}
By looping through the items from the first, I was able to compose the JSON object discussed earlier.
As a safeguard, I’m using replace() to escape any double quotes and avoid invalid JSON. For example, for the title, I used replace(items(‘Apply_to_each’)?[‘System.Title’],‘”‘,‘\”‘)
As well, I used coalesce() in case the Feature or Epic were not set for a User Story or Bug.
Update the SharePoint list
To get the hierarchical view, I created a list view that is grouped by Epic and Feature.
The flow was originally set up to update nightly. However, it could also be set up to run as soon as any changes are made to the backlog.







