Column Name Monitor
Hourly SharePoint schema watchdog that catches renamed columns before they silently break every flow.
Use case
Someone renames a SharePoint column, and three flows break with no error anyone notices for a week. This flow calls the SharePoint REST API every hour, compares live display names against an expected map, and posts a diff table to Teams the moment they drift.
Who uses it
SharePoint administrators and anyone maintaining flows in production.
Real scenario
At 14:00 an admin renames 'DueDate' to 'Deadline' in the UI. At 15:00 Teams shows a diff table: Internal Name DueDate | Was 'DueDate' | Now 'Deadline' — and the audit item is already in the log list.
Time saved
Before
Hours of debugging per incident, discovered days later
After
Detected within the hour, with the exact field named
Time saved
Hours of debugging per incident
How it works
An hourly recurrence sends an HTTP request to SharePoint at _api/web/lists/getbytitle('List')/fields. A Compose holds the ExpectedColumns JSON map of internal name to display name. A loop over the returned fields compares each current title with the expected value, and any mismatch is appended to a diff table posted to Teams and written to a SharePoint audit log.
Step-by-step build
- 1
Create a Scheduled cloud flow with a Recurrence trigger, Frequency Hour, Interval 1.
- 2
Add Data Operation → Compose named 'ExpectedColumns' with a JSON object mapping internal names to expected display names, e.g. { "DueDate": "DueDate", "SAL": "SAL", "OwnerName": "Owner" }.
- 3
Add Initialize variable 'DiffRows' (String) at top level.
- 4
Add SharePoint → Send an HTTP request to SharePoint. Method GET, Uri: _api/web/lists/getbytitle('YourList')/fields?$select=InternalName,Title&$filter=Hidden eq false, Headers: Accept application/json;odata=nometadata.
- 5
Add Apply to each over body('Send_an_HTTP_request_to_SharePoint')['value'].
- 6
Inside the loop add a Condition: contains(outputs('ExpectedColumns'), item()?['InternalName']) is true AND not equals of outputs('ExpectedColumns')[item()?['InternalName']] and item()?['Title'].
- 7
In the If yes branch append a <tr> to DiffRows with the internal name, the expected value ('Was') and item()?['Title'] ('Now').
- 8
After the loop add a Condition on empty(variables('DiffRows')); if not empty, post a Teams message with the diff table 'Internal Name | Was | Now' and create an item in the SharePoint 'SchemaAuditLog' list recording the timestamp and the diff.
- 9
If nothing changed, Terminate as Succeeded so the run history stays readable.
- 10
Keep the ExpectedColumns map in source control alongside your flow documentation and update it whenever a rename is intentional.
Copilot prompt
Paste this into Power Automate Copilot to scaffold the flow.
Create a scheduled cloud flow that runs every hour. Compose a JSON object ExpectedColumns mapping SharePoint internal column names to their expected display names, initialize a string variable DiffRows, then use 'Send an HTTP request to SharePoint' with a GET to _api/web/lists/getbytitle('YourList')/fields selecting InternalName and Title. Loop the returned fields and, when the current Title differs from the expected display name, append a diff row. If any differences exist, post a Teams table with Internal Name, Was and Now, and log the change to a SharePoint audit list.Screenshots
Captures are added as each step is published.
Official documentation
Explore more flows
Meeting History Extractor
Captures the meeting transcript and stores it in SharePoint as the shared memory every other flow reads.
View module LivePre-Meeting Agenda Injector
Fifteen minutes before a meeting starts, it writes a full HTML agenda directly into the Outlook invite.
View module LiveTask Extraction from Transcript
Turns pipe-delimited transcript lines into assigned Planner tasks with real Azure AD owners.
View module LiveDaily Activity Log Email
Every weekday at 18:20 Rome time it logs the day's Planner activity and drafts the team lead's summary email.
View module LiveWeekly Status Report
Builds done / overdue / in-progress tables, posts them to Teams and archives a CSV in SharePoint.
View module LiveDeadline Urgency Monitor
A daily 08:00 Teams digest that colour-codes every approaching deadline — and stays silent at weekends.
View module