.Create a User Story (or Product Backlog Item) in Azure DevOps
Create a set of Tasks under that parent item
Link each Task to the parent using Hierarchy-Reverse
Update the SharePoint list item with the created Azure DevOps ID/URL (optional but recommended)
Build a Flow: SharePoint List Item → Azure DevOps User Story + Child Tasks (Power Automate)
Goal
When a new item is created in a SharePoint list (your “intake” system), Power Automate will:
- Create a User Story (or Product Backlog Item) in Azure DevOps
- Create a set of Tasks under that parent item
- Link each Task to the parent using Hierarchy-Reverse
- Update the SharePoint list item with the created Azure DevOps ID/URL (optional but recommended)
Step 0 — Define your placeholders (use these names in your blog/code)
- SharePoint Site:
https://contoso.sharepoint.com/sites/ExampleSite - SharePoint List:
Requests - Azure DevOps Organization:
https://dev.azure.com/ContosoOrg - Azure DevOps Project:
ExampleProject - Parent work item type:
User Story(orProduct Backlog Item) - Child work item type:
Task
Step 1 — Create the Flow (Automated cloud flow)
1.1 Trigger
Create → Automated cloud flow
Trigger: SharePoint – When an item is created
Configure:
- Site Address:
https://contoso.sharepoint.com/sites/ExampleSite - List Name:
Requests
Step 2 — Add a safety filter (Condition)
This avoids creating DevOps items for every single list entry.
Add Condition (example):
- If
RequestTypeequals"Migration"→ continue - Else → terminate
If you don’t have RequestType, you can filter by a different column (Category / Department / etc.).
Step 3 — Create the Parent Work Item (User Story / PBI)
Add action: Azure DevOps – Create a work item
Configure:
- Organization Name:
ContosoOrg - Project Name:
ExampleProject - Work Item Type:
User Story - Title:
Title(from SharePoint) - Description:
Description(from SharePoint)
Optional (recommended):
- Area Path: map from SharePoint field if you have it
- Iteration Path: map from SharePoint field if you have it
- Tags:
"Intake;SharePoint;PowerAutomate"
Important output to keep:
Save the created parent ID as a variable so you can link tasks to it.
Add action: Initialize variable
- Name:
varParentId - Type:
Integer - Value: dynamic content → ID from “Create a work item”
Step 4 — Define your task template (Array)
Add action: Initialize variable
- Name:
varTaskTitles - Type:
Array - Value:
[ "Validate prerequisites and access", "Confirm scope and inputs", "Prepare pilot execution", "Execute migration batch", "Post-execution verification", "Documentation and closure"]
Step 5 — Create tasks in a loop
Add: Apply to each
Input: varTaskTitles
Inside the loop:
5.1 Create Task
Add action: Azure DevOps – Create a work item
- Work Item Type:
Task - Title:
item()(current loop item) - Description: something like:
Created automatically from SharePoint request ID: <ID>
Optional:
- Iteration Path: same as parent
- Area Path: same as parent
- Assigned To: map from SharePoint “Owner” if you have it
5.2 Link Task → Parent using Hierarchy-Reverse
Add action: Azure DevOps – Add a link to work item
Configure:
- Work Item Id: Task ID from step 5.1 (dynamic output)
- Link Type:
System.LinkTypes.Hierarchy-Reverse - Target Work Item Id:
varParentId
✅ This makes the Task appear under the parent story.
Why Reverse?
Because you are linking from the child (Task) back to the parent (User Story/PBI).
Step 6 — Update SharePoint item with DevOps tracking (Optional but excellent)
Add action: SharePoint – Update item
- ID: ID from the trigger
- Fields to update:
DevOpsWorkItemId=varParentIdDevOpsWorkItemUrl= (if you construct it)
A common URL pattern you can store (generic):https://dev.azure.com/ContosoOrg/ExampleProject/_workitems/edit/<ParentId>/
Step-by-step “Copy & Paste” Build Checklist
Minimal working version
- Trigger: When an item is created
- Action: Create a work item (User Story/PBI)
- Initialize
varTaskTitlesarray - Apply to each:
- Create Task
- Link Task → Parent with Hierarchy-Reverse
Production-ready version
Add:
- Condition filter
- SharePoint update with DevOps ID/URL
- Try/Catch pattern using Scopes (optional)
- Tags and assigned-to mapping
Final Summary Tables
Steps Summary
| Step | Component | Result |
|---|---|---|
| 1 | SharePoint trigger | Flow starts when a list item is created |
| 2 | Condition (optional) | Only runs for matching request types |
| 3 | Create parent work item | Creates User Story / PBI in Azure DevOps |
| 4 | Array variable of task titles | Defines your standard task checklist |
| 5 | Apply to each | Creates tasks and links them to the parent |
| 6 | Update SharePoint (optional) | Stores DevOps ID/URL for traceability |
Technical Summary
| Topic | Value / Rule |
|---|---|
| Parent work item | User Story or Product Backlog Item |
| Child work item | Task |
| Relationship link | System.LinkTypes.Hierarchy-Reverse when linking Task → Parent |
| Best scaling approach | Array + Apply to each |
| Best traceability | Write DevOps ID/URL back to SharePoint |
