Alerts and notifications
Email, Slack and webhook alerts for scans, findings, anomalies, budgets and the AI DBA, plus report emails with an Excel file. On every plan.
SlashPeak can tell you when something needs a look. Alerts go to email, Slack and an HTTPS webhook. All of them are on every plan, including the trial.
Set them up in Settings → Notifications:
- At the top, an owner sets up Slack and the Webhook.
- Below, each alert type has its own section. Each section has a switch for Email me, Slack and Webhook. A Slack or webhook switch stays off until that channel is set up.
Who can change what
- Each person picks their own email choices, owners and viewers alike.
- Owners set the account-wide parts: budget rule, anomaly rule, Slack, webhook, muted anomalies and which report parts each person gets.
What can alert you
| Alert | Slack | Webhook event | |
|---|---|---|---|
| Report (spend, savings, findings, with the Excel report attached) | Daily, weekly or monthly | — | — |
| Scan summary (savings and top findings) | — | After each scan | scan.completed |
| New high-severity findings | Yes | Yes | scan.completed (with highSeverityCount) |
| Scan failed (after its retries) | Yes | Yes | scan.failed |
| Anomaly found | Yes | Yes | anomaly.detected |
| Anomaly back to normal (if on) | Yes | Yes | anomaly.recovered |
| Budget threshold crossed | Yes | Yes | budget.threshold_crossed |
| AI DBA events (Growth and up) | — | Yes | dba.*, see below |
| Webhook test | — | — | alert.test |
Each person has these email choices. Each one is in the section of its alert type:
| Setting | Choices |
|---|---|
| Reports | Never, Every day (Growth and up), Every week (default), Every month. See Report emails |
| Anomaly alerts | On or off |
| Budget alerts | On or off |
| High-severity findings | On or off. The new high-severity findings of a scan, largest saving first |
| Scan failures | On or off. A scan that failed after its retries, with the error |
| Newsletter | On or off |
| Product updates | On or off |
Account and security emails are always sent: sign-in, password, trial ending, payment failed and similar.
Report emails
The report email sums up the period and attaches the Excel report: the same file as the dashboard's Email report button. See Excel report.
- Who gets it: owners and viewers only. A member with no role gets no report.
- How often: each person picks in Settings → Notifications → Reports. An owner can also set it for each person in Report contents (How often). Every day is on Growth, Pro and Enterprise. The trial and Starter pick every week or every month. After a move to a lower plan, a daily choice sends weekly.
- When: at 08:00 in your account's time zone. Daily covers the day before. Weekly goes out on Mondays and covers the 7 days before. Monthly goes out on the 1st and covers last month.
- What is in it: an owner picks the parts each person gets in Settings → Notifications → Report contents: Executive summary, Top offenders, Operational efficiency, Anomalies and Findings. Every part is on by default. The email text and the Excel file both hold only the picked parts. Keep at least one part; to stop the email, the person picks Never.
- With more than one connection, the email attaches one file per connection.
- No report goes out until your first scan finishes, or after a trial ends.
- To get the report now, click Email report on the dashboard. It sends the file for the range and filters on the page, with only your parts. If your Reports setting is Never, the page tells you to turn it on first, or to ask an owner.
Budget alerts
Budget alerts warn you when spend is on track to go over your spend commit, or over a cost center's monthly budget.
- An owner sets a spend commit in Settings → Billing (an amount per month, or per year on a plan billed yearly, with a start date for a yearly commit), or a Monthly budget on a cost center in Settings → Cost centers. You can set both.
- In Settings → Notifications → Budget alerts, turn on Budget alert rule and pick Alert at (% of commit or budget). Default: 80%. Allowed: 1% to 200%, up to 10 thresholds.
- In the same section, each person turns Email me on or off. An owner turns Slack and Webhook on or off.
How it works:
- After each scan, SlashPeak forecasts the spend at the end of the period. For the commit, it is the same forecast as the dashboard's Commit used tile. For a cost center, it is the Budget used tile when the dashboard is filtered to that cost center.
- You get one alert for each threshold the forecast crosses. When several cross at once, one alert names the highest.
- Each threshold alerts once per period: per commit period for the commit, per calendar month for a cost center.
- In the first 3 days of a period the forecast is too noisy, so it does not alert, unless the spend has already passed a threshold.
- A cost center alert names the cost center and links to the dashboard filtered to it. Its webhook payload has a
costCenterobject (id,name); for the commit,costCenterisnull.
Anomaly alerts
Every anomaly is an alert. See Anomalies for how they are found.
- Alert when back to normal: an owner can turn this on to get a second message when the metric is back in its range.
- Muted anomalies: anomalies an owner marked "Not an anomaly". Each mute lasts 30 days. Click undo to remove one.
- A connection's first scan never sends anomaly alerts.
Slack
- In Slack, create an incoming webhook for the channel you want.
- In Settings → Notifications → Slack, paste the URL (
https://hooks.slack.com/services/…). - Click Send test alert.
- Turn on Slack in each alert section you want: Anomaly alerts, Budget alerts, High-severity findings, Scan summaries, Scan failures.
The URL is encrypted and never shown again after you save. Paste a new one to replace it, or click Remove webhook.
Webhooks
Use a webhook to send alerts to your own system, PagerDuty, Opsgenie, a ticket tool and so on.
- In Settings → Notifications → Webhook, paste an HTTPS URL. Slack URLs belong in the Slack section.
- Click Send test payload.
- Turn on Webhook in each alert section you want: Anomaly alerts, Budget alerts, High-severity findings, Scan summaries, Scan failures.
The URL is encrypted and never shown again after you save. Keep it secret.
Request
- Method:
POST, body JSON. - Headers:
X-slashpeak-Event: the event name, for examplescan.completed.X-slashpeak-Timestamp: Unix seconds when it was sent.User-Agent: slashpeak-Webhooks/1.0.
- Timeout: 10 seconds. Answer with any
2xx.
Body
Every event has the same envelope:
{
"version": 1,
"source": "SlashPeak",
"event": "scan.completed",
"sentAt": "2026-10-16T09:30:00.000Z",
"accountId": 42,
"data": { }
}scan.completed data:
{
"scanId": "…",
"connectionName": "acme-prod",
"gcpProjectId": "acme-analytics",
"findingsCount": 37,
"newFindingsSavingsUsd": 812.5,
"highSeverityCount": 2,
"totalEstimatedMonthlyWasteUsd": 6420.1,
"findingsUrl": "https://…/findings",
"topFindings": [
{ "type": "FULL_TABLE_SCAN", "title": "…", "estimatedMonthlySavingsUsd": 1200 }
]
}scan.failed data: connectionName, gcpProjectId, errorMessage, dashboardUrl.
anomaly.detected and anomaly.recovered data hold a list of anomalies. Each one has: id, label, metricKey, unit, scope, region, blockHours, startedAt, endedAt (null while open), reason, direction, expected, actual, low, high, score, deltaCostUsd, cause (one sentence, or null), causeSoFar (true while open) and url (the Why page).
AI DBA events (Growth and up)
| Event | When |
|---|---|
dba.action.awaiting_approval | An action needs an owner |
dba.action.pr_opened | A fix pull request opened |
dba.action.applied | A BigQuery change was made |
dba.action.verified | The change held for the verification window |
dba.action.regressed | Someone changed the resource after the fix |
dba.action.rolled_back | The change was undone |
dba.action.failed | The action failed |
dba.paused | The AI DBA was paused |
See Cognis AI DBA.