ADO Release Notes Auto-Generator
Triggered on release pipeline completion to production. Queries all work items associated with the release, groups them by type (Feature, Bug, Task), and auto-generates a formatted release notes document. Saves to a SharePoint release notes library and emails stakeholders a summary with version number, date, and feature highlights.
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
A weekly scheduled cloud flow that queries Azure DevOps for work items completed in the last 7 days using a WIQL query via the ADO connector's HttpRequest action, retrieves full details for each work item, builds a styled HTML release notes document, saves it to a SharePoint document library, and emails the formatted notes to a stakeholder distribution list. Designed as a portable demo: every connector-specific value (site URL, library name, ADO org, project, recipient list) is exposed as a Dataverse environment variable.
Use Case
Engineering and project management teams need a low-touch way to communicate what shipped each week without manually combing through ADO boards. This flow turns the WIQL query into a one-click weekly digest stakeholders can rely on. The same pattern can drop into any ALM pipeline by re-pointing the env vars at a new project, organization, or SharePoint site — no flow edits required.
Flow Architecture
Weekly Release Notes Schedule
Recurrence TriggerFires every Monday at 09:00 UTC to start the weekly release notes build.
Init varAdoOrganization
InitializeVariable (string)Binds the `flowlibs_AdoOrganization` environment variable into a flow variable for downstream use.
Init varAdoProject
InitializeVariable (string)Binds the `flowlibs_AdoProject` environment variable into a flow variable.
Init varSharePointSiteUrl
InitializeVariable (string)Binds the `flowlibs_SharePointSiteURL` environment variable into a flow variable.
Init varRecipientEmail
InitializeVariable (string)Binds the `flowlibs_DigestRecipientEmail` environment variable into a flow variable.
Init varReleaseNotesLibrary
InitializeVariable (string)Binds the `flowlibs_ReleaseNotesLibraryName` environment variable into a flow variable.
Init varReleaseVersion
InitializeVariable (string)Default `1.0.0` — user-editable version header used in the release notes document name and body.
Init varReleaseDate
InitializeVariable (string)Sets the release date using `utcNow('yyyy-MM-dd')` — auto-stamps today's date.
Init varReleaseNotesHtml
InitializeVariable (string)Empty accumulator used to build HTML table rows for the release notes body.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_AdoOrganization | String | <configure> | Azure DevOps organization slug used as the `account` parameter on the ADO HttpRequest actions. Set this to your ADO org name. |
| flowlibs_AdoProject | String | FlowLibs | Azure DevOps project name used as a URI segment in both the WIQL query and the per-work-item GET. Set this to the project you want release notes for. |
| flowlibs_SharePointSiteURL | String | https://your-tenant.sharepoint.com | Root SharePoint site URL where the release notes library lives; used as the `dataset` on the SharePoint CreateFile action. |
| flowlibs_DigestRecipientEmail | String | user@contoso.com | Stakeholder distribution list or single recipient that receives the weekly release notes email. |
| flowlibs_ReleaseNotesLibraryName | String | FlowLibs - Release Notes | Name of the SharePoint document library (folder path) where release notes HTML files are saved. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Azure DevOps | shared_visualstudioteamservices | HttpRequest (WIQL query (POST) and per-item details (GET)) |
| SharePoint Online | shared_sharepointonline | CreateFile (writes release notes HTML to the configured library) |
| Office 365 Outlook | shared_office365 | SendEmailV2 (emails the release notes to the stakeholder distribution list) |
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.
- Configure the five environment variables
- Edit the five environment variables in the solution (ADO organization, ADO project, SharePoint site URL, recipient email, release notes library name). No flow edits are required to point the digest at a different project, tenant, or distribution list.
- Re-point the three connection references
- Replace the Azure DevOps, SharePoint Online, and Office 365 Outlook connection references with connections authorized for your tenant before turning the flow on.
- Wire up your version source
- Adjust the varReleaseVersion default if you maintain a manual version registry, or replace it with an HTTP call to your release pipeline so the digest header always matches the actual deployed build.
- Switch from scheduled to event-driven
- Optionally swap the Recurrence trigger for the Azure DevOps "When a build completes" trigger so the release notes go out per deployment instead of on a weekly cadence.
- Turn the flow on
- The flow ships in Stopped state. Toggle it to On once env vars and connections are configured and you've verified the WIQL query returns the expected work items.
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.01ADO organization parameter
Reads the `flowlibs_AdoOrganization` env var and passes it to the ADO HttpRequest action's `account` parameter.
EXPR.02Release date stamp
Auto-stamps today's date for the release header and the SharePoint file name.
EXPR.03WIQL endpoint URI
Builds the per-project WIQL endpoint that the ADO HttpRequest POST targets.
EXPR.04Per-work-item detail URI
Inside the foreach loop: builds the GET URI to retrieve full details (Type, Title, State, AssignedTo) for the current work item.
EXPR.05Release notes file name
Builds the SharePoint file name in the form `ReleaseNotes-v<version>-<yyyy-MM-dd>.html`.
EXPR.06WIQL query
WIQL query body sent in the ADO HttpRequest POST. Returns Closed/Resolved/Done work items changed in the last 7 days, ordered by work item type.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.