Azure DevOps Boards
Shared Workflow Routing
Overview
Azure Boards provides Agile project management through work items, backlogs, sprint boards, and delivery plans. Work items (Epics, Features, User Stories, Tasks, Bugs) are created and managed via JSON Patch operations. WIQL (Work Item Query Language) provides SQL-like queries across work items with support for tree and one-hop queries.
The inherited process model allows organizations to customize work item types, fields, states, form layouts, and rules without forking the base process. Delivery plans enable cross-team timeline visualization with dependency tracking.
REST API — Work Items
| Method |
Endpoint |
Required Permissions |
Key Parameters |
| GET |
/_apis/wit/workitems/{id}?api-version=7.1 |
Work Items (Read) |
fields, $expand=all |
| GET |
/_apis/wit/workitems?ids=1,2,3&api-version=7.1 |
Work Items (Read) |
ids (max 200), fields |
| POST |
/_apis/wit/workitems/$Task?api-version=7.1 |
Work Items (Read & Write) |
JSON Patch body |
| PATCH |
/_apis/wit/workitems/{id}?api-version=7.1 |
Work Items (Read & Write) |
JSON Patch body |
| DELETE |
/_apis/wit/workitems/{id}?api-version=7.1 |
Work Items (Read & Write) |
destroy for permanent |
| POST |
/_apis/wit/wiql?api-version=7.1 |
Work Items (Read) |
Body: { "query": "<WIQL>" } |
JSON Patch Format
[
{ "op": "add", "path": "/fields/System.Title", "value": "Implement login page" },
{ "op": "add", "path": "/fields/System.AssignedTo", "value": "user@company.com" },
{ "op": "add", "path": "/fields/System.IterationPath", "value": "MyProject\\Sprint 12" },
{ "op": "add", "path": "/fields/System.AreaPath", "value": "MyProject\\Frontend" },
{ "op": "add", "path": "/relations/-", "value": {
"rel": "System.LinkTypes.Hierarchy-Reverse",
"url": "https://dev.azure.com/{org}/{project}/_apis/wit/workitems/{parentId}"
}}
]
Content-Type: application/json-patch+json.
WIQL Quick Reference
SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]
FROM WorkItems
WHERE [System.TeamProject] = @project
AND [System.WorkItemType] = 'Bug'
AND [System.State] <> 'Closed'
AND [System.AssignedTo] = @me
ORDER BY [Microsoft.VSTS.Common.Priority] ASC, [System.CreatedDate] DESC
Macros: @project, @me, @today, @currentIteration, @follows, @myRecentActivity.
REST API — Iterations & Areas
| Method |
Endpoint |
Key Parameters |
| GET |
/_apis/work/teamsettings/iterations?api-version=7.1 |
$timeframe |
| POST |
/_apis/work/teamsettings/iterations?api-version=7.1 |
Body: id (classificationNodeId) |
| GET |
/_apis/wit/classificationnodes/iterations?api-version=7.1 |
$depth |
| POST |
/_apis/wit/classificationnodes/iterations/{path}?api-version=7.1 |
Body: name, attributes |
REST API — Process Customization
| Method |
Endpoint |
Key Parameters |
| GET |
/_apis/work/processes?api-version=7.1 |
$expand |
| POST |
/_apis/work/processes?api-version=7.1 |
Body: name, parentProcessTypeId |
| GET |
/_apis/work/processes/{processId}/workitemtypes?api-version=7.1 |
— |
| POST |
/_apis/work/processes/{processId}/workitemtypes?api-version=7.1 |
Body: name, color, icon |
| POST |
/_apis/work/processes/{processId}/workitemtypes/{witRefName}/fields?api-version=7.1 |
Body: field config |
| POST |
/_apis/work/processes/{processId}/workitemtypes/{witRefName}/states?api-version=7.1 |
Body: name, stateCategory, color |
Work Item Types
| Type |
Category |
Use Case |
| Epic |
Portfolio |
Large initiatives spanning multiple sprints/releases |
| Feature |
Portfolio |
Deliverable functionality within an epic |
| User Story |
Requirement |
User-facing behavior description |
| Task |
Task |
Implementation work unit |
| Bug |
Bug |
Defect to fix |
| Issue |
Issue |
Impediment or risk (Agile process) |
| Test Case |
Test |
Manual test case definition |
Best Practices
- Use WIQL with
@currentIteration macro for sprint-scoped queries.
- Always include Area/Iteration path filters in WIQL for performance.
- Use JSON Patch
add for new fields, replace for updates, test for conditional writes.
- Create inherited processes for customization — never modify the base process.
- Use relation links (parent/child, related, predecessor/successor) for traceability.
- Batch-fetch work items (max 200 IDs per call) after WIQL returns IDs.
- Use delivery plans for cross-team sprint alignment.
Progressive Disclosure — Reference Files
| Topic |
File |
| Work items, WIQL syntax, boards, sprints, area/iteration paths |
references/work-items-boards.md |
| Inherited process model, custom WITs, fields, states, rules |
references/process-customization.md |
| Delivery plans, cross-team planning, timeline management |
references/delivery-plans.md |
1---2name: azure-devops-boards3description: Deep expertise in Azure Boards — work item management, WIQL queries, Kanban boards, sprint planning, area/iteration paths, process customization with inherited processes, and cross-team delivery plans.4---56# Azure DevOps Boards78## Shared Workflow Routing9- Use the shared workflow spec for deterministic multi-plugin routing: [`workflows/multi-plugin-workflows.md`](../../../workflows/multi-plugin-workflows.md#incident-triage-azure-monitor--azure-functions--azure-devops).1011## Overview1213Azure Boards provides Agile project management through work items, backlogs, sprint boards, and delivery plans. Work items (Epics, Features, User Stories, Tasks, Bugs) are created and managed via JSON Patch operations. WIQL (Work Item Query Language) provides SQL-like queries across work items with support for tree and one-hop queries.1415The inherited process model allows organizations to customize work item types, fields, states, form layouts, and rules without forking the base process. Delivery plans enable cross-team timeline visualization with dependency tracking.1617## REST API — Work Items1819| Method | Endpoint | Required Permissions | Key Parameters |20|--------|----------|---------------------|----------------|21| GET | `/_apis/wit/workitems/{id}?api-version=7.1` | Work Items (Read) | `fields`, `$expand=all` |22| GET | `/_apis/wit/workitems?ids=1,2,3&api-version=7.1` | Work Items (Read) | `ids` (max 200), `fields` |23| POST | `/_apis/wit/workitems/$Task?api-version=7.1` | Work Items (Read & Write) | JSON Patch body |24| PATCH | `/_apis/wit/workitems/{id}?api-version=7.1` | Work Items (Read & Write) | JSON Patch body |25| DELETE | `/_apis/wit/workitems/{id}?api-version=7.1` | Work Items (Read & Write) | `destroy` for permanent |26| POST | `/_apis/wit/wiql?api-version=7.1` | Work Items (Read) | Body: `{ "query": "<WIQL>" }` |2728### JSON Patch Format29```json30[31 { "op": "add", "path": "/fields/System.Title", "value": "Implement login page" },32 { "op": "add", "path": "/fields/System.AssignedTo", "value": "user@company.com" },33 { "op": "add", "path": "/fields/System.IterationPath", "value": "MyProject\\Sprint 12" },34 { "op": "add", "path": "/fields/System.AreaPath", "value": "MyProject\\Frontend" },35 { "op": "add", "path": "/relations/-", "value": {36 "rel": "System.LinkTypes.Hierarchy-Reverse",37 "url": "https://dev.azure.com/{org}/{project}/_apis/wit/workitems/{parentId}"38 }}39]40```4142Content-Type: `application/json-patch+json`.4344## WIQL Quick Reference4546```sql47SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]48FROM WorkItems49WHERE [System.TeamProject] = @project50 AND [System.WorkItemType] = 'Bug'51 AND [System.State] <> 'Closed'52 AND [System.AssignedTo] = @me53ORDER BY [Microsoft.VSTS.Common.Priority] ASC, [System.CreatedDate] DESC54```5556**Macros**: `@project`, `@me`, `@today`, `@currentIteration`, `@follows`, `@myRecentActivity`.5758## REST API — Iterations & Areas5960| Method | Endpoint | Key Parameters |61|--------|----------|----------------|62| GET | `/_apis/work/teamsettings/iterations?api-version=7.1` | `$timeframe` |63| POST | `/_apis/work/teamsettings/iterations?api-version=7.1` | Body: `id` (classificationNodeId) |64| GET | `/_apis/wit/classificationnodes/iterations?api-version=7.1` | `$depth` |65| POST | `/_apis/wit/classificationnodes/iterations/{path}?api-version=7.1` | Body: `name`, `attributes` |6667## REST API — Process Customization6869| Method | Endpoint | Key Parameters |70|--------|----------|----------------|71| GET | `/_apis/work/processes?api-version=7.1` | `$expand` |72| POST | `/_apis/work/processes?api-version=7.1` | Body: `name`, `parentProcessTypeId` |73| GET | `/_apis/work/processes/{processId}/workitemtypes?api-version=7.1` | — |74| POST | `/_apis/work/processes/{processId}/workitemtypes?api-version=7.1` | Body: `name`, `color`, `icon` |75| POST | `/_apis/work/processes/{processId}/workitemtypes/{witRefName}/fields?api-version=7.1` | Body: field config |76| POST | `/_apis/work/processes/{processId}/workitemtypes/{witRefName}/states?api-version=7.1` | Body: `name`, `stateCategory`, `color` |7778## Work Item Types7980| Type | Category | Use Case |81|------|----------|----------|82| Epic | Portfolio | Large initiatives spanning multiple sprints/releases |83| Feature | Portfolio | Deliverable functionality within an epic |84| User Story | Requirement | User-facing behavior description |85| Task | Task | Implementation work unit |86| Bug | Bug | Defect to fix |87| Issue | Issue | Impediment or risk (Agile process) |88| Test Case | Test | Manual test case definition |8990## Best Practices9192- Use WIQL with `@currentIteration` macro for sprint-scoped queries.93- Always include Area/Iteration path filters in WIQL for performance.94- Use JSON Patch `add` for new fields, `replace` for updates, `test` for conditional writes.95- Create inherited processes for customization — never modify the base process.96- Use relation links (parent/child, related, predecessor/successor) for traceability.97- Batch-fetch work items (max 200 IDs per call) after WIQL returns IDs.98- Use delivery plans for cross-team sprint alignment.99100## Progressive Disclosure — Reference Files101102| Topic | File |103|---|---|104| Work items, WIQL syntax, boards, sprints, area/iteration paths | [`references/work-items-boards.md`](./references/work-items-boards.md) |105| Inherited process model, custom WITs, fields, states, rules | [`references/process-customization.md`](./references/process-customization.md) |106| Delivery plans, cross-team planning, timeline management | [`references/delivery-plans.md`](./references/delivery-plans.md) |