SharePoint alerts were fully removed from SharePoint Online in July 2026, so every "Alert me" subscription has stopped sending email and none can be created or extended. The replacement is a SharePoint rule for simple per-event notifications on a list or library, and a Power Automate flow for anything a rule can't do: daily or weekly digests, changes made by someone else, alerts on a single item, or notifications to Teams. This guide maps each old alert option to its replacement and shows how to build, own and verify the new notifications so they don't break the next time someone leaves.
Who this is for and what you will have
This guide is for SharePoint administrators, site owners and help desk staff handling "I stopped getting SharePoint emails" tickets, and for anyone who owned alerts on business-critical lists such as approvals, contracts or incident logs. At the end you will have:
- An inventory of who relied on alerts, where, and with what frequency.
- A mapping from each alert option to a rule or flow.
- Rules created for the simple cases, owned by the list, not a person.
- Power Automate flows for digests and filtered notifications, with an ownership model that survives staff changes.
- A verification and troubleshooting routine for the help desk.
What changed and when
Microsoft retired alerts in stages:
| Date | Change |
|---|---|
| July 2025 | New tenants gradually lose the ability to create alerts |
| October 2025 | Existing alerts expire 30 days after their first run; users can extend them for 30 days at a time from Manage my alerts |
| January 2026 | All tenants gradually lose the ability to create alerts |
| July 2026 | Alerts are removed; existing alerts can't be extended and stop working |
Microsoft's stated alternatives are SharePoint Rules and notifications built on Power Automate. Nothing converts automatically; each alert someone still needs has to be rebuilt.
Prerequisites
- Contribute permission or higher on each list or library where you create a rule. Rules are list-level objects, so whoever creates one needs that access.
- A Microsoft 365 license that includes SharePoint for flow owners. Flows that use only standard connectors, such as the SharePoint connector, don't need a separate Power Automate license. Check the class of any other connector you add on its connector reference page.
- Site collection administrator rights on the site if you need to notify on deletions with Power Automate. The When an item is deleted and When a file is deleted triggers can only be used by site collection admins of that site.
- Versioning turned on in any list or library where a flow needs to know which column changed.
- For the inventory step, either the Microsoft 365 Assessment tool or PnP PowerShell, each with its own Entra ID app registration.
Step 1: Inventory who used alerts
Microsoft recommends the Microsoft 365 Assessment tool for finding alert usage. Its Alerts module produces a Power BI report of alerts filterable by site collection and web. It needs an Entra ID application; for a full-tenant scan, app-only permissions are the only way to guarantee every site is read. The PnP sample for the Alerts module grants Microsoft Graph Sites.Read.All and SharePoint Sites.FullControl.All as application permissions.
microsoft365-assessment.exe start --mode Alerts --authmode application --tenant contoso.sharepoint.com --applicationid <app-id> --certpath "My|CurrentUser|<thumbprint>"
microsoft365-assessment.exe status
microsoft365-assessment.exe report --id <assessment-id> --mode CsvOnly --path "C:\reports"For a handful of sites, PnP PowerShell is quicker. Since September 9, 2024, PnP PowerShell requires your own Entra ID app registration; pass its client ID when connecting.
$sites = "https://contoso.sharepoint.com/sites/finance",
"https://contoso.sharepoint.com/sites/legal"
$inventory = foreach ($url in $sites) {
Connect-PnPOnline -Url $url -Interactive -ClientId "<client-id>"
Get-PnPAlert -AllUsers | ForEach-Object {
[pscustomobject]@{
Site = $url
Title = $_.Title
ListId = $_.ListID
ItemId = $_.ItemID
EventType = $_.EventType
AlertFrequency = $_.AlertFrequency
UserId = $_.UserId
}
}
}
$inventory | Export-Csv -Path .\alert-inventory.csv -NoTypeInformation-AllUsers returns every alert in the site regardless of user or list. If a column comes back empty, run Get-PnPAlert -AllUsers | Select-Object -First 1 | Format-List * to see which properties your PnP version loads.
Because alerts were removed in July 2026, a scan run now may return little or nothing. In that case, build the inventory from the other direction: help desk tickets about missing SharePoint emails, mail flow searches for old alert messages, and a short request to site owners asking which lists people watched.
Step 2: Map each alert to a replacement
Old alerts had three settings: what changed, who changed it, and how often to send. Use this table to choose the replacement.
| Old alert setting | SharePoint rule | Power Automate |
|---|---|---|
| New items are added | Trigger: a new item is created | When an item is created, or When a file is created (properties only) for libraries |
| Existing items are modified | Trigger: an item is modified | When an item or a file is modified |
| Items are deleted | Trigger: an item is deleted | When an item is deleted or When a file is deleted (site collection admin only) |
| All changes | One rule per trigger | When an item is created or modified, or the Microsoft templates combined |
| Someone else changes an item | Not available | Template: Send an email for changes by others to a SharePoint list item or file |
| Someone else changes an item created by me | Not available | Template: Send an email for changes to a SharePoint list item or file created by me |
| Alert on a single document or item | Not available | Trigger condition on the item ID |
| Daily or weekly summary | Not available | Recurring digest of updates (preview) trigger |
| Send to a distribution list | Not supported (no group email addresses) | Send email action to the group address |
The rule of thumb: if the notification is "tell these people when this list changes", use a rule. If it depends on who made the change, needs a schedule, or goes anywhere other than individual mailboxes, use a flow.
Step 3: Rebuild simple notifications as rules
Rules live on the list or library, so they keep working when the person who created them leaves.
- Open the list or library.
- Select Integrate, then Rules, then create a rule.
- Under Take action when, choose the trigger, for example An item is modified.
- Select each underlined part of the rule statement to choose the column, the condition and value, and who to email. For example: when Status changes and the new value is Escalated, email Assigned To.
- Select Create. The rule appears on the Manage rules page and is turned on.
Recipients can be one person, several people, or a person column such as Created By or Assigned To. A column recipient is often the best replacement for a personal alert, because the rule follows whoever owns the item instead of a fixed list of names.
Keep these limits in mind:
- Up to 15 rules per list or library.
- Only two a date approaches rules per list or library.
- Rules can't be based on multi-line text columns.
- Notifications can't go to a group email address or to email-enabled security groups.
- Emails come from
no-reply@sharepointonline.com, so make sure mail flow rules and user junk settings don't filter that sender.
To change or remove a rule later, open Manage rules from the same menu, where you can edit or delete it.
Step 4: Rebuild the rest with Power Automate
Start from the Microsoft templates
Microsoft's retirement guidance maps alert scenarios to Power Automate templates in the template gallery at make.powerautomate.com:
- Send an email when a SharePoint list item or file is updated
- Send an email for changes by others to a SharePoint list item or file
- Send an email for changes to a SharePoint list item or file created by me
- Separate templates for a new list item and for a new file
Pick the template, sign in to the SharePoint and Office 365 Outlook connections, then set the site address and list or library name. For "anything changes", Microsoft suggests combining the changes to an item and item created scenarios.
Daily or weekly digests
The SharePoint connector has a Recurring digest of updates (preview) trigger that replaces the daily and weekly alert frequencies. Its parameters are the site address, the list or library, whether to Include edits, whether to Include new items or files, When to run, and optionally a folder path, a view to limit columns, and a start time. Add a Send an email action after it and format the output into a table. Because it is a preview trigger, test it on a non-critical list first and keep an eye on the run history.
Notify only when a specific column or item changes
To recreate an alert on one item, filter the trigger instead of filtering inside the flow. Microsoft notes that a condition inside the flow still counts every run as an API request, while a trigger condition stops the run from starting at all, and skipped runs don't appear in the run history.
In the designer, select the trigger, then Settings, then + Add next to Trigger conditions, and enter an expression starting with @:
@equals(triggerOutputs()?['body/ID'], 42)Expressions are case-sensitive and use column internal names. If you aren't sure of the syntax, build the condition in a Filter array action, select Edit in advanced mode, copy the expression into the trigger condition and delete the Filter array action; that is the method Microsoft documents.
To notify only when a particular column changed, use the When an item or a file is modified trigger followed by Get changes for an item or a file (properties only). Pass the trigger's Trigger Window Start Token as Since and Trigger Window End Token as Until, then add a condition on the changed flag for the column you care about. This needs versioning on the list, only covers column changes (not file content or attachments), and the tokens only exist when you use that specific trigger. Keep versioning in mind if you later tighten version limits; the SharePoint version history limits guide covers how automatic and count-based trimming work.
Ownership and licensing
An alert belonged to a person and died with their account. A flow also belongs to a person, so plan ownership:
- Automated and scheduled flows run under the flow owner's license. For flows that use only standard connectors, Microsoft states that no extra license is needed, including when the owner is a shared service account.
- Add at least one co-owner to every flow that replaces a business-critical alert.
- If an owner leaves, a solution-aware flow can have its owner changed. For a flow outside a solution, a co-owner can add it to a solution and change the owner, or export and import it so it becomes a new flow under their ownership.
- Each SharePoint connection is throttled at 600 API calls per 60 seconds, so avoid one flow per user per list on busy lists; one shared flow that emails a person column scales better.
Verify the replacements
- Make a test change that should trigger each rule or flow, and one that should not.
- For rules, confirm the email arrives from
no-reply@sharepointonline.comand lands in the inbox, not junk. - For flows, open My flows, select the flow and check Run history. Power Automate checks lists and libraries on a schedule, so a run usually appears within minutes and may include more than one change.
- For trigger conditions, confirm that the "should not" change produced no run at all.
- For digests, wait for the first scheduled run and check that it covers both new and edited items if you selected both.
- Record each rule and flow in the inventory from Step 1 with its owner and co-owner.
Troubleshooting
Error when creating a rule. Usually a permissions problem on the list or library. The creator needs Contribute access; the list owner can share the list with them at that level.
Rule emails never reach a team mailbox or distribution list. Rules don't support group email addresses or email-enabled security groups. Use a person column or individual recipients, or move that notification to a flow.
A flow on a Tasks, Announcements, Contacts or Events list doesn't work. Power Automate flows for lists are supported only on generic lists and generic document libraries. Custom list and library templates aren't supported, so rebuild the notification on a generic list.
A flow using a list name as dynamic content fails. If the list name contains a period, for example MySharePoint.List, the action errors. Select the list from the drop-down, or use the list's ID instead of its name.
CannotDisableTriggerConcurrency. Once you turn on concurrency control for a SharePoint trigger, you can't turn it off in the designer. Export the flow, remove the concurrency control element from the JSON and import it again.
The delete trigger doesn't work for a site owner. When an item is deleted and When a file is deleted must be connected with a site collection admin account for that site.
Files moved or synced into a library don't trigger the flow. Moving or syncing files doesn't change their created and modified metadata, so the created or modified triggers don't fire. Notify on the source library, or have the process that moves files send the notification.
Get changes returns nothing useful. Check that versioning is turned on for the list and that you passed the trigger window tokens from When an item or a file is modified, not from another trigger.
Checklist
- Alert inventory built from the Assessment tool, PnP PowerShell, help desk tickets and site owner input.
- Each needed alert mapped to a rule or a flow using the table above.
- Rules created on lists, using person columns as recipients where possible.
- Flows created from Microsoft templates, with trigger conditions instead of in-flow filters.
- Digest flows built on the Recurring digest of updates trigger and tested.
- Every business-critical flow has a co-owner; flow owners hold Microsoft 365 licenses.
no-reply@sharepointonline.comallowed through mail filtering.- Help desk has the troubleshooting list and the rule and flow inventory.
References
- SharePoint Alerts retirement
- SharePoint service description
- Create a rule to automate a list or library
- Automate workflows in a SharePoint document library
- SharePoint connector reference
- Microsoft SharePoint Connector for Power Automate
- Customize your triggers with conditions
- Power Automate licensing FAQ
- Microsoft 365 Assessment tool: Alerts
- Microsoft 365 Assessment tool: authentication setup
- PnP PowerShell: register an Entra ID application
- PnP PowerShell: Get-PnPAlert
- Alert class (SharePoint CSOM)