Alerts and the digest
Alerts tell you when something needs you, and stay quiet otherwise. Pick where they go once, set quiet hours if you like, and every Monday one email sums up the week across all your apps.
In 30 seconds
Settings → Notifications → pick a channel → paste the address → Connect. A test message arrives, and alerts go there from now on.
Where alerts go
Open Settings → Notifications. Add as many channels as you like. Each one gets a test message when you click Connect; if the test fails, the channel isn't saved.
- Email: your account email is filled in. Good as a backup channel.
- Slack: create an incoming webhook for your channel at api.slack.com/apps, copy its URL (
https://hooks.slack.com/…) into Webhook URL. - Discord: in your channel, Settings → Integrations → Webhooks → New webhook → Copy URL. Paste it into Webhook URL.
- Telegram: follow the steps on the Telegram card: send the bot any message (bots can only write to people who wrote first), then message @userinfobot to get your chat ID (a number like 123456789) and paste it into Chat ID. If the card says Needs a bot token on the server, Telegram isn't set up on that server yet.
- Phone and browser push: click Turn on for this device and allow notifications. On iPhone, first tap Share → Add to Home Screen, open BugOtter from there, and come back to this page. Do it once per device.
Every connected channel has Send test and Remove. Alerts also always land in the bell (top bar), even with no channel.
What sends an alert
- Down and back up (critical): when a second region confirms an outage, and when it's back. Also when an app "loads, but not the right page" (a rule fails).
- Extra checks (critical): an extra check failing, and passing again.
- Expiry: certificates (warning at 14 days, critical at 3) and domains (warning at 30 days, critical at 7).
- Cron jobs (warning): a heartbeat that's late, failed, didn't finish or finished too fast, and when it runs again.
- Errors: a new error type, a resolved error that came back (critical if the SDK marked it fatal, otherwise warning), and errors spiking (over 20 in an hour and 10 times the usual rate).
- Revenue (warning): failed payments this week.
- Traffic: traffic falling off (under 40% of usual over 24 hours), or a big spike (more than 3 times usual).
- Good news (info): a first sale, a new MRR high (at most once a month), your first $500 week. Each comes with Share this win.
Slow responses open an issue in Issues but don't send an alert. Pattern alerts (traffic, error spikes, good news) are checked hourly.

- A new error type.
- A resolved error, then verified fixed after the next deploy.
- An outage, with Open to see the incident.
How it stays quiet
- Grouped: after one alert for an app, smaller ones for the same app in the next 15 minutes (new errors, errors back, spikes, traffic down) go to the bell only. A worse one still goes out, with both in the title.
- Many apps down at once: if 3 or more apps go down within 5 minutes, you get one alert naming the likely host (Vercel, Netlify or Cloudflare).
- Flapping: an app that goes down and up 3 times in an hour gets its alerts paused for an hour.
- Error alerts: at most 5 an hour per app.
- Maintenance: during a maintenance window, failures go to the bell only.
- Modules off: a module you turned off sends no alerts.
Rules per channel
Under each channel, open Rules:
- Send: All alerts, Warnings and up, or Critical only.
- Quiet hours: a start and end hour. Critical alerts still come through. Times are in your timezone (set in the digest card below).
- Muted apps: tick apps that shouldn't alert on this channel.
Click Save rules. To mute one app everywhere, open its issue in Issues → Mute alerts for this app.
The bell and email log
Every alert lands in the bell at the top, including ones held back (marked "Not sent to a channel"). Every email BugOtter sent you is in the email log: digests, alerts, password and confirm emails.
The weekly digest
Every Monday at 8:00 your time, one email sums up the week: what needs you, what changed, new and returning errors, good news, and quiet apps you could put to sleep (ones with no visitors, sales or errors in 30 days).
The digest card is on Settings → Notifications:
- Email me a summary every Monday at 8:00: on or off.
- Your timezone: set from your browser the first time you sign in. Change it here; it also sets quiet hours and what "today" means on charts.
- Send me one now: a test, which doesn't replace that week's digest.
There's no daily digest. Alerts cover what can't wait a week.
Account emails
BugOtter also emails you 3 days before your trial ends, when it ends, the day before uptime checks pause, and at 80% and 100% of a monthly pool on paid plans. The digest and these emails only go to a confirmed address: click the link in your confirm email (or Send the link again in the bar at the top of the app).
Common questions
"Couldn't send a test message"
The channel answered with an error, so it wasn't saved. The message says what it said. Check the webhook still exists, or the chat ID is right, and connect again.
"That isn't a Slack webhook URL" or "That isn't a Discord webhook URL"
Slack URLs start with https://hooks.slack.com/. Discord URLs start with https://discord.com/api/webhooks/. Copy the whole webhook URL, not the channel link.
"A Telegram chat ID is a number"
Paste the number @userinfobot gave you, like 123456789, not your username.
"Notifications are blocked for BugOtter in this browser"
You said no once, so the browser remembers. Allow notifications for BugOtter in the browser's site settings, then click Turn on for this device again.
I'm not getting the Monday digest
Check that your email is confirmed (the bar at the top of the app says so if not), the digest is on in Notifications, and you have at least one app. It isn't sent after the trial or plan ends.
I got an alert in the bell but not on my channel
It was held back so you weren't flooded (see how it stays quiet), or the channel's rules filter it: severity, quiet hours or a muted app.
See alsoAdd your appsStatus pages and badgesErrors and source maps