ADO Wiki Change Weekly Digest
Weekly scheduled flow queries Azure DevOps wiki pages for recent edits, compiles a digest of changed pages with editor name, edit date, and page title, sends via Outlook to the team, and archives the digest to a SharePoint document library for documentation audit trails.
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 scheduled cloud flow that runs every Friday at 9:00 AM Eastern, queries Azure DevOps wiki pages via the pagesbatch API, retrieves per-page revision history, filters for edits within a configurable lookback window, builds a styled HTML digest with page path, editor name, edit date, and revision comment, archives the digest to a SharePoint document library, emails it to the team, and posts a summary to a Teams channel. Gives documentation owners a weekly audit trail of every wiki change without requiring anyone to log into Azure DevOps.
Use Case
Documentation drift is invisible until something breaks. Teams that maintain an Azure DevOps wiki — runbooks, onboarding guides, architecture notes — rarely look at the page history unless they have a reason to. This flow surfaces every edit that landed in the configured lookback window as a single email so the documentation owner can spot churn, untracked authors, or pages getting modified without review. The HTML archive in SharePoint provides a tamper-evident historical record for compliance audits. The Teams summary gives the whole channel instant visibility without opening email.
The flow is ideal for teams that:
- Documentation owners who need a weekly audit trail of wiki edits without manually checking page history
- Compliance-conscious teams that require a tamper-evident archive of documentation changes
- Engineering teams that want channel-wide visibility into runbook, onboarding, and architecture-note churn
- Project managers tracking documentation activity across an Azure DevOps wiki
Flow Architecture
Recurrence Weekly Friday 9am EST
RecurrenceFires every Friday at 09:00 Eastern Standard Time.
Init varAdoOrganization
Initialize variableBinds env var flowlibs_AdoOrganization to a string variable.
Init varAdoProject
Initialize variableBinds env var flowlibs_AdoProject.
Init varAdoWikiIdentifier
Initialize variableBinds env var flowlibs_AdoWikiIdentifier.
Init varDigestRecipientEmail
Initialize variableBinds env var flowlibs_DigestRecipientEmail.
Init varTeamsGroupId
Initialize variableBinds env var flowlibs_TeamsGroupId.
Init varTeamsChannelId
Initialize variableBinds env var flowlibs_TeamsChannelId.
Init varSharePointSiteUrl
Initialize variableBinds env var flowlibs_SharePointSiteURL.
Init varArchiveLibraryPath
Initialize variableBinds env var flowlibs_WikiDigestArchiveLibrary.
Init varLookbackDays
Initialize variableCasts flowlibs_WikiDigestLookbackDays to integer via int(parameters(...)).
Init varDigestHtml
Initialize variableEnvironment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_AdoOrganization | String | <configure> | Azure DevOps organization slug that appears after dev.azure.com/ in your wiki URL. |
| flowlibs_AdoProject | String | FlowLibs | Azure DevOps project name that hosts the wiki. |
| flowlibs_AdoWikiIdentifier | String | <configure> | Wiki id (the underlying git repo id). Find via GET https://dev.azure.com/{org}/{project}/_apis/wiki/wikis?api-version=7.0 and copy the id field. |
| flowlibs_DigestRecipientEmail | String | you@yourcompany.com | Primary To address for the weekly digest email. Use a semicolon-separated list to send to multiple recipients or a distribution group. |
| flowlibs_DigestSubjectPrefix | String | Weekly Newsletter Digest | Prepended to the email subject line. |
| flowlibs_TeamsGroupId | String | <configure> | Microsoft 365 Group ID for the Teams team that should receive the summary post. |
| flowlibs_TeamsChannelId | String | <configure> | Channel ID inside the Teams team for the summary post. |
| flowlibs_SharePointSiteURL | String | https://your-tenant.sharepoint.com | SharePoint site collection URL that hosts the archive document library. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Azure DevOps | shared_visualstudioteamservices | HttpRequest (GET pagesbatch — lists wiki pages) HttpRequest (GET pages/{pageId}/revisions — per-page revision history) |
| Office 365 Outlook | shared_office365 | SendEmailV2 (Sends the HTML digest email) |
| SharePoint Online | shared_sharepointonline | CreateFile (Archives the HTML digest to a document library) |
| Microsoft Teams | shared_teams | PostMessageToConversation (Posts the summary to the configured channel) |
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.
- Point at your wiki
- Update flowlibs_AdoOrganization, flowlibs_AdoProject, and flowlibs_AdoWikiIdentifier. The Wiki Identifier is the underlying git repo id — find it via GET https://dev.azure.com/{org}/{project}/_apis/wiki/wikis?api-version=7.0 and copy the id field.
- Adjust the lookback window
- flowlibs_WikiDigestLookbackDays is cast to int at runtime via int(parameters(...)) — change it from 7 to any number of days.
- Change the schedule
- Edit the Recurrence trigger's frequency, weekDays, hours, and timeZone to match your team's working week.
- Move the archive
- Change flowlibs_SharePointSiteURL and flowlibs_WikiDigestArchiveLibrary to point at any document library on any site collection.
- Re-route the email
- Update flowlibs_DigestRecipientEmail. To send to a distribution group, use a semicolon-separated list.
- Change the Teams channel
- Update flowlibs_TeamsGroupId and flowlibs_TeamsChannelId to post to any channel in any team.
- Style the email
- Edit the Compose Full Digest Email action to adjust colors, fonts, table layout, or add an inline logo.
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
Computes the lookback window threshold used to filter revisions.
EXPR.02ADO pages URI
Builds the relative URI passed to the Azure DevOps HTTP action that lists all wiki pages.
EXPR.03Per-page revisions URI
Builds the per-page revisions URI inside the Loop Through Wiki Pages foreach.
EXPR.04Recent revision filter
Query used by the Filter Array action to keep only revisions newer than the cutoff date.
EXPR.05HTML row builder
Builds one HTML table row per recent revision. coalesce(..., 'No comment') prevents crashes on revisions with null comments.
EXPR.06Edit count per page
Number of in-window revisions for the current page; added to the running varEditCount.
EXPR.07Archive filename
Date-stamped filename used when archiving the digest HTML to SharePoint.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.