Configure alerts & email digests
Get notified when cost behaviour changes — either as real-time webhooks to a chat channel, or as a periodic email summary.
Both live on the Alerts hub (it’s the single Notifications home — Email Digests is a tab there).
Webhook alerts (Teams / Slack / generic JSON)
Section titled “Webhook alerts (Teams / Slack / generic JSON)”1. Add a channel
Section titled “1. Add a channel”Alerts → Channels → + Channel. Provide:
- a name and the destination URL (any HTTPS webhook works),
- a template:
teams_adaptive_card,slack_block_kit, orgeneric_json, - an optional HMAC secret — when set, deliveries are signed with
x-finops-signature: sha256=<hex>so the receiver can verify authenticity.
The form shows inline setup steps for the selected template — exactly how to obtain the webhook URL in the destination app:
- Microsoft Teams (
teams_adaptive_card): in Teams open the channel → ⋯ → Workflows → template “Post to a channel when a webhook request is received” → Add workflow → copy the generated POST URL. (The classic Office 365 “Incoming Webhook” connector has been retired; Workflows replaces it.) - Slack (
slack_block_kit): at api.slack.com/apps create/open an app → Incoming Webhooks → on → Add New Webhook to Workspace → copy thehooks.slack.com/services/…URL. - Generic JSON (
generic_json): any HTTPS endpoint. For Discord, use a channel webhook (Channel → Edit → Integrations → Webhooks → New Webhook → Copy URL).
Hit Test to fire a synthetic event and confirm the endpoint returns 2xx.
2. Add a rule
Section titled “2. Add a rule”Alerts → Rules → + Rule. Pick a metric and bind one or more channels:
| Metric | Fires when… | Status |
|---|---|---|
Cost drift (daily_cost_drift) | the mean of the last 3 days diverges from the prior 11-day baseline by ≥ driftPct and the absolute delta exceeds minDelta | live |
Volatile spend (volatile_spend) | spend volatility crosses a threshold | selectable; evaluator rolling out |
Defaults for drift are 25% / 200. The UI writes a global scope (the domain layer also supports per-subscription scoping).
Separately, a spend-forecast alert runs automatically every week — no rule to configure. It flags a scope when the projected month-end spend creeps up week-over-week, or when the current week is burning faster than the same week last month. A scope already explained by an open anomaly is suppressed to keep the signal clean.
3. Confirm delivery
Section titled “3. Confirm delivery”Alerts → Recent events lists fired events with the rendered payload and a
delivery-status badge (delivered / failed / pending). Failed deliveries retry
up to 3 times with linear backoff.
Email digests
Section titled “Email digests”A unified savings digest delivers a weekly (or daily) summary with two sections: What you saved (realized measured savings + ROI) and New waste found (the top open findings from your Savings Register).
- Go to Alerts → Email Digests (or Settings → Email).
- Subscribe and choose your cadence. Subscriptions are user-owned.
- Preview renders the email against your data before you commit.
Unsubscribe is one click and works without an active session — the emails carry
standard List-Unsubscribe headers, so Gmail/Outlook show their native
unsubscribe button. Admins can force-send a digest for incident response.