Daily Unresolved Azure DevOps Bugs Digest
Every morning, query Azure DevOps for open bugs older than 7 days and email the team a prioritized list with age and assignee.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
This scheduled flow runs every morning at 8:00 AM UTC and queries Azure DevOps for unresolved bugs that have been open longer than a configurable threshold (default: 7 days). If any bugs are found, it compiles a prioritized HTML table showing each bug's ID, title, assigned developer, priority, state, creation date, and age in days, then sends a formatted digest email to configured recipients via Outlook 365.
Use Case
Development and project management teams need visibility into aging bugs that risk slipping through the cracks. This flow eliminates the need for manual Azure DevOps queries by delivering a daily prioritized digest directly to the team's inbox. Managers can immediately spot bugs that need escalation, and developers can see their unresolved assignments at a glance.
Flow Architecture
Recurrence - Daily at 8 AM
RecurrenceFires once per day at 8:00 AM UTC.
Initialize Variable - Organization
InitializeVariableLoads the Azure DevOps org name from env var flowlibs_AzureDevOpsOrganization.
Initialize Variable - Project
InitializeVariableLoads the project name from env var flowlibs_AzureDevOpsProject.
Initialize Variable - Recipients
InitializeVariableLoads email recipients from env var flowlibs_BugDigestRecipients.
Initialize Variable - Threshold Days
InitializeVariableLoads the age threshold from env var flowlibs_BugAgeThresholdDays.
Compose Cutoff Date
ComposeCalculates the cutoff date by subtracting threshold days from today.
Query Unresolved Bugs via WIQL
Azure DevOps HttpRequestPOSTs a WIQL query to _apis/wit/wiql filtering for open Bug work items created on or before the cutoff date.
Check If Bugs Found
If conditionChecks if the WIQL response contains any work items.
- Select Bug IDs — Extracts work item IDs from the WIQL response array.
- Get Bug Details Batch — GETs full work item details for all IDs in a single batch call via _apis/wit/workitems.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_AzureDevOpsOrganization | String | MyOrg | The Azure DevOps organization name (appears in the URL: dev.azure.com/{org}). |
| flowlibs_AzureDevOpsProject | String | MyProject | The project containing the bugs to query. |
| flowlibs_BugDigestRecipients | String | admin@contoso.com | Semicolon-separated email addresses for digest delivery. |
| flowlibs_BugAgeThresholdDays | Number | 7 | Minimum number of days a bug must be open to appear in the digest. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Azure DevOps | shared_visualstudioteamservices | HttpRequest (WIQL query) (POST to _apis/wit/wiql) HttpRequest (batch work items) (GET to _apis/wit/workitems) |
| Office 365 Outlook | shared_office365 | SendEmailV2 |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Change the schedule
- Edit the Recurrence trigger to adjust frequency (e.g., weekdays only, twice daily).
- Filter by area path
- Modify the WIQL query in the 'Query Unresolved Bugs via WIQL' action to add AND [System.AreaPath] UNDER 'Project\\Team'.
- Add more fields
- Extend the Select Bug Summary mapping and the batch GET fields parameter to include additional work item fields like Severity or Area Path.
- Send to Teams instead
- Replace the Send Email action with a Teams Post Message action for channel-based delivery.
- Adjust priority sorting
- The WIQL query orders by Priority ASC then Created ASC; modify the ORDER BY clause to change sort behavior.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Cutoff date calculation
Calculates the cutoff date by subtracting the threshold days from today.
EXPR.02Bug age in days
Calculates the age of a bug in days (ticks difference divided by ticks-per-day).
EXPR.03Safe assignee display name
Safely extracts the assigned user's display name, defaulting to 'Unassigned'.
EXPR.04Join bug IDs for batch GET
Joins the array of bug IDs into a comma-separated string for the batch GET API call.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.