Docs menu

Alerts and emails

Hear about a revenue drop, a traffic swing, a goal hit or broken tracking the same day, by email, Slack or webhook.

Updated 21 Oct 2026

Alerts

Open Alerts → New alert, pick a kind, a threshold and where it goes. Every rule can be edited later: kind, threshold, goal and channel.

Revenue dropRevenue so far today is the chosen percentage below the usual for the same hours over the last 7 days. Needs usual revenue of at least 50.
Traffic dropPageviews so far today are the chosen percentage below the usual for the same hours. Needs at least 100 usual pageviews.
Traffic spikePageviews so far today are the chosen percentage above the usual. Needs at least 100 usual pageviews.
Goal reachedA goal's conversions today (UTC) reach the number you set.
Over plan limitPageviews this calendar month, across all the workspace's sites, reach 80, 90 or 100% of the plan's quota.
Tracking stoppedNo pageviews for 3 hours when there are normally at least 20 in that window. Usually a broken deploy or a removed script.
  • Alerts are checked every hour and send at most one message per alert a day.
  • Each check stores what it measured and what it compared with. A rule whose condition holds shows as Firing with those numbers until a later check clears it, and history lists each message with its values, for example “Revenue $310, usual $720”.
  • Days run in UTC, and revenue and traffic alerts wait until 6 hours into the day so a quiet morning doesn't trigger them.
  • Email recipients must be members of the workspace.
  • Send test delivers a labelled test message to the rule's channel right away.

Slack and webhooks

Slack: create an incoming webhook in Slack (Apps → Incoming Webhooks) and paste its https://hooks.slack.com/services/… URL. The message is the alert's title, one line of context and a link.

Webhook: any public https:// URL. atrby POSTs JSON such as { "type": "alert.fired", "site": "acme.io", "alert": { "id": "al_…", "kind": "revenue_drop", "threshold": 30 }, "value": 310, "usual": 720, "message": "…", "at": "2026-10-21T12:05:00Z" } (alert.test for tests). Redirects aren't followed and the request times out after 5 seconds.

Each webhook gets its own signing secret, shown once when you save it. Verify requests by computing HMAC-SHA256 of {X-Atrby-Timestamp}.{raw body} with the secret, hex-encoded, and comparing it with X-Atrby-Signature after sha256=. Reject old timestamps.

Slack and webhook URLs and secrets are stored encrypted. A failed delivery is retried on the next hourly check.

Weekly digest

Every Monday at 08:00 UTC, members get a summary of each site: visitors, revenue and the top sources for the last 7 days against the 7 before. Revenue appears only for members allowed to see it. Each digest has an unsubscribe link.

Account emails

atrby also sends sign-in codes, invites, receipts, failed-payment notices, a trial-ending reminder and an over-limit notice. Usage notices can be turned off from their unsubscribe link; sign-in, invite and billing emails can't.

Was this helpful?
Ask a question about this page