A live look at the SP Notify platform — the replacement for retired SharePoint alerts, with capabilities, architecture highlights, and the full API surface.
Each alert has a user-defined title and an explicit list of recipients (SendAlertsTo).
Notify on All changes, Added items only, Updated items only, or Removed items only.
Filter by who made the change — anyone, someone else, or someone else who changed items created or last modified by you.
Restrict notifications to items visible in a specific SharePoint list view using FilterViewId.
Alerts can be given an ExpirationDate after which they stop triggering, and toggled active/inactive at any time.
HTML-formatted emails sent via POST /v1.0/users/{sender}/sendMail. Recipient names resolved via Graph.
Provider-agnostic SMS delivery. Optionally appends the changed item URL with the SendUrlInSms flag.
Posted to a specific team + channel via Bot Connector. Team and channel selected by the user at alert creation.
Processed within the next scheduler cycle (≤5 minutes). No batching delay for immediate-mode alerts.
Aggregate changes over a day or week into a single summary notification with configured SummaryDay and SummaryTime.
The backend auto-registers and tracks SharePoint webhook subscriptions per list via WebhookService.RegisterWebhookAsync().
Uses SharePoint's LastChangedToken as a persistent cursor to retrieve only new changes since the last notification run.
All alert subscriptions, trigger events, webhook entries, and delivery logs stored in Azure SQL with tenant-scoped queries.
SchedulerNotification runs as an Azure Functions timer trigger every 5 minutes, processing all tenants in sequence.
Multiple rapid changes to the same list are deduplicated by list GUID before processing. Events are deleted after successful dispatch.
Every HTTP function validates the Bearer token against the tenant's OIDC signing keys. No centralised API gateway required.
One backend deployment, unlimited tenants. Each tenant has isolated credentials, DB rows, and scheduler context via TenantConfiguration.
Per-tenant OIDC metadata and signing keys cached in memory to avoid repeated round-trips to Azure AD on every request.
Backend acquires On-Behalf-Of tokens for webhook registration and certificate-based client credentials for scheduler CSOM calls.
AadHttpClient handles all token acquisition through SharePoint's brokering — no manual OAuth flows or redirects in frontend code.