Managing a Microsoft 365 environment without proactive alerting is like running a building without smoke detectors — everything seems fine until it isn't. Microsoft 365 ships with dozens of default alert policies covering malware detection, phishing campaigns, privilege escalation, and unusual file activity, yet many organizations never customize them beyond the out-of-box defaults [1]. The result: a dangerous gap between what the platform can tell you and what it actually does.
That gap widens quickly for smaller organizations. While audit logging is enabled by default for enterprise licenses, it remains off by default for SMB licenses such as Microsoft 365 Business Basic, Business Standard, and Business Premium [4]. Without it, critical security signals simply vanish — searches return nothing, and downstream tools like Microsoft Sentinel have no data to analyze.
This isn't a theoretical concern. CISA's Secure Cloud Business Applications (SCuBA) project now recommends specific audit logging and alert configurations as security baselines for any organization using cloud services [9]. Whether you're hardening a new tenant or revisiting an existing one, aligning with these baselines is a practical starting point.
This article walks through four pillars of Microsoft 365 alerting: Defender alert policies, Message Center notifications, Service Health monitoring, and Power Automate orchestration. By the end, you'll have a clear path to building a unified, automated notification strategy across your entire tenant.
Prerequisites: Licensing, Roles, and Audit Logging
Before you configure a single alert, three foundations must be in place: the right license, the right role, and audit logging enabled.
Licensing determines your alerting ceiling
Advanced alert policies that use SimpleAggregation or AnomalousAggregation require an Office 365 E5 subscription or an E3 subscription with the Threat Intelligence add-on. Without one of these, you're limited to creating policies with -AggregationType None and must specify an -Operation parameter [3]. Understanding your license tier upfront prevents frustration when PowerShell commands fail silently.
Role group membership controls access
Creating and managing alert policies in the Threat Management category requires membership in the Organization Management or Security Administrator role groups. To view alerts without modification privileges, the Security Reader role group is the minimum requirement [2].
Audit logging is the data pipeline everything else depends on
To verify whether auditing is active in your tenant, run the following in Exchange Online PowerShell:
Get-AdminAuditLogConfig | Format-List UnifiedAuditLogIngestionEnabledA value of True means auditing is enabled [4]. If the result is False, enable it with:
Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $trueBe aware that this change can take up to 60 minutes to propagate [4]. Until auditing is active, the Office 365 Management Activity API and Microsoft Sentinel cannot access audit data, and log searches return no results [4]. Once enabled, audit log records are retained for 180 days by default [4].
Configuring Alert Policies in Microsoft Defender Portal
With the prerequisites squared away, the Defender portal is where most administrators will build and manage their alert policies. Navigate to Email & collaboration > Policies & rules > Alert policy at security.microsoft.com/alertpolicies [1].
Understanding the defaults
Microsoft ships a substantial set of default alert policies covering common threat scenarios. Key defaults worth reviewing include:
- "A potentially malicious URL click was detected" — flags risky link activity
- "Email messages containing malicious file removed after delivery" — tracks post-delivery remediation
- "Suspicious email forwarding activity" — detects potential data exfiltration
- "Elevation of Exchange admin privilege" — generates a Low severity alert when someone is added to the Organization Management role group [1]
- "Messages have been delayed" — triggers a High severity alert when 2,000 or more messages are queued for over one hour [1]
Anatomy of an alert policy
Each policy consists of three core components: rules and conditions defining the triggering activity, a user list scoping who can trigger the alert, and a threshold defining how many occurrences must happen before an alert fires [1]. Every policy carries a severity level — Low, Medium, High, or Informational — that should map directly to your organization's business impact definitions [1].
Managing alert fatigue
Alert aggregation is your primary lever for reducing noise. For E5/G5 and Defender for Office 365 Plan 2 subscriptions, the aggregation interval is 1 minute. For E1/F1/G1 and E3/F3/G3 subscriptions, the interval extends to 15 minutes [1]. Additionally, Microsoft Defender XDR includes built-in alert tuning rules that automatically suppress common benign activity while preserving automated investigation and response (AIR) workflows for genuinely malicious detections [2].
Creating Custom Alert Policies with PowerShell
The portal UI covers most scenarios, but PowerShell unlocks the full range of alert policy parameters — and it's essential for administrators managing policies at scale. The New-ProtectionAlert cmdlet requires four parameters: -Name, -Category, -NotifyUser, and -ThreatType [3].
The -Category parameter accepts the following values: AccessGovernance, DataGovernance, MailFlow, Others, ThreatManagement, and Supervision [3].
Practical example
Here is a complete command to create a custom alert that fires whenever a content search is deleted:
New-ProtectionAlert -Name "Content search deleted" `
-Category Others `
-NotifyUser [email protected] `
-ThreatType Activity `
-Operation SearchRemoved `
-Description "Custom alert policy to track when content searches are deleted" `
-AggregationType NoneBecause -AggregationType is set to None, every single deletion event generates a notification [3].
Aggregation types explained
The -AggregationType parameter controls how alerts are batched, and choosing the right type matters more than most administrators realize:
- None — alerts on every single occurrence. Best for low-volume, high-impact events like privilege changes.
- SimpleAggregation — triggers based on volume within a time window, configured via
-Thresholdand-TimeWindow. Ideal for events where a single occurrence is normal but a burst is suspicious. - AnomalousAggregation — alerts when activity significantly deviates from an established baseline. The baseline takes up to 7 days to build, during which no alerts are generated [3]. Best suited for high-volume activities where fixed thresholds produce excessive false positives.
Distribution and severity
The -NotifyUser parameter accepts multiple SMTP addresses separated by commas, making it straightforward to distribute alerts across teams [3]. The -Severity parameter accepts Low (the default), Medium, and High [3].
To verify which roles are assigned to your role groups, use this PowerShell snippet:
$RoleGroups = Get-RoleGroup
$RoleGroups | foreach {
Write-Output -InputObject `r`n, $_.Name, ('-' * 25)
Get-RoleGroup $_.Identity | Select-Object -ExpandProperty Roles
}This helps confirm that the right people have the right permissions before you deploy new policies [1].
Staying Ahead with Message Center and Service Health Notifications
Security alerts are only one piece of the puzzle. Microsoft communicates service changes, deprecations, and new features through the Message Center — and missing these announcements can be just as disruptive as missing a threat alert.
Message Center configuration
The Message Center is Microsoft's primary channel for communicating the timing of individual changes to your tenant [5]. Digest emails are enabled by default and sent to each admin's primary email address, with support for up to two additional email addresses per admin [5]. For team members who need visibility into upcoming changes without full admin access, assign the Message Center Reader role [5].
Major updates are communicated at least 30 days in advance when action is required. These include user-impacting changes to daily productivity features, capacity changes, rebranding, new services deployed with default settings, and changes to data storage locations [5]. Keep in mind that Message Center posts expire and are removed generally 30 days after the time period outlined in the message body [5], so timely review is essential.
Turning posts into action
One of the most underused features is the ability to sync Message Center tasks directly to Microsoft Planner. This bridges the gap between awareness and execution — you can assign owners, set deadlines, and track completion for each change that requires organizational action [5].
Service Health Dashboard
The Microsoft 365 Health dashboard in the admin center provides a real-time snapshot of your overall environment health, surfacing critical alerts for service incidents and billing problems at the top of the page [8]. Bookmark it. Include it in your daily operations routine.
Building Automated Workflows with Power Automate and Microsoft Graph
When built-in alert policies don't offer enough routing flexibility, Power Automate and the Microsoft Graph API provide the building blocks for custom automation pipelines.
Power Automate cloud flows
Power Automate lets you create cloud flows that automatically perform one or more actions when a triggering event occurs [6]. Using connectors for Office 365 Outlook and other Microsoft 365 services, you can build flows that send email notifications, post Teams messages, or create tickets in external systems based on alert conditions.
A practical example: build a flow that monitors service health changes via the Graph API, filters by severity, and sends a formatted Teams message to your IT operations channel with incident details and recommended actions. Power Automate supports up to 600 flows per account [6], giving you plenty of room for granular notification routing by service, severity, or responsible team.
Microsoft Graph Service Communications API
The Microsoft Graph service communications API provides programmatic access to service health status and Message Center posts, supporting both delegated and application permissions [7]. This makes it equally suitable for interactive applications and backend monitoring services.
The API supports several key operations:
- Listing health overviews across all subscribed services
- Getting detailed health information for a specific service
- Listing all active service issues
- Retrieving post-incident review reports
- Listing and reading service announcement messages
These operations require ServiceHealth.Read.All or ServiceMessage.Read.All permissions [7]. The API is available across national clouds, including the global service at graph.microsoft.com, US Government GccHigh, US Government DoD, and China 21Vianet [7] — an important consideration for organizations operating in regulated or sovereign environments.
Best Practices and Avoiding Alert Fatigue
Building alerting infrastructure is only the beginning. Maintaining it requires ongoing discipline.
Start with a proven framework. Align your initial alert configurations with the CISA SCuBA security baselines for Microsoft 365 [9]. These provide a vetted starting point that covers the most critical threat categories without requiring you to design a policy set from scratch.
Tune relentlessly. Review severity levels and aggregation thresholds quarterly to match your evolving risk profile. What generated meaningful alerts six months ago may now be noise — or vice versa. Lean on AnomalousAggregation for high-volume activity categories where fixed thresholds consistently produce false positives [3].
Build a notification routing matrix. Map each alert category to a responsible team and define escalation paths. Not every alert should land in the same inbox. Power Automate's per-flow routing makes it straightforward to direct Defender alerts to your security team, Message Center digests to your change management group, and Service Health incidents to your operations staff.
Revisit policies when your organization changes. Alert policies deserve a fresh look whenever organizational roles shift, compliance requirements evolve, or licensing tiers change. A policy designed for an E3 environment may behave differently — or stop working entirely — after a license downgrade.
Unify everything into a single operational view. The most effective Microsoft 365 monitoring strategies combine Defender alert policies, Message Center digests, the Service Health dashboard, and Power Automate flows into one cohesive playbook. No single channel covers everything, but together they provide comprehensive visibility into security threats, service changes, and platform health across your entire tenant.
Sources
- Alert policies in the Microsoft Defender portal - Microsoft Defender XDR
- Alert policies in the Microsoft Defender portal - Microsoft Defender for Office 365
- New-ProtectionAlert PowerShell cmdlet reference
- Turn auditing on or off - Microsoft Purview
- Message center in the Microsoft 365 admin center
- Create a cloud flow in Power Automate
- Working with service communications API in Microsoft Graph
- Microsoft 365 Health dashboard overview
- CISA Secure Cloud Business Applications (SCuBA) Project