Squasher sends notifications for incidents only. A new issue does not send a notification. To be
alerted about errors, add a query monitor that counts error events.
It opens an incident when the count passes your threshold.
What sends a notification
Incidents open from monitors and heartbeats, from alert sources such as Datadog or Grafana, and from people who declare them. Each change to an incident is one event:
When nobody acknowledges an on-call page, the route that started
the page also sends an
escalation_exhausted notice to its other destinations, whatever events the
route subscribes to.
Scheduled incidents, such as planned maintenance, send no notifications.
Add a destination
Only owners, admins, and security admins can change notifications.- Open your project and select Settings in the sidebar, then the Notifications tab.
- Under Add destination, choose the type in Channel and enter a Name.
- Fill in the fields for the type. See the table below.
- Select Add destination. Squasher adds the destination to the default route. If the project has no default route, Squasher creates one named “All incidents”.
- Select Send test next to the destination, then check the result under Recent deliveries.
After you save a destination, Squasher hides its secrets. You cannot edit a destination: to
change it, remove it with Remove and add it again.
To let a coding agent set up a destination, select Copy prompt next to Add destination.
The prompt has the project ID, your current destinations and routes, and the MCP and API calls.
It tells the agent to ask you which destination type and which incidents you want, and to confirm
each change with you first.
A test message is sent as an
opened event without an incident. Send test is not available
for On-call escalation destinations; open a test incident instead. A PagerDuty test opens a real
PagerDuty incident, so resolve it in PagerDuty afterward.
Choose which incidents go where
The Alert routes card shows each route as a rule: its conditions (Events, Source, Monitors, Severity, and the other filters it has), then Sends to with its destinations. Routes with filters come first; the default route is last. To change the destinations of a route, select Edit destinations, select or clear a destination, then select Save destinations. If you have destinations but no default route, select Create default route. Each route shows its ID and a Copy prompt button that asks a coding agent to explain the route or check its deliveries. Copy prompt next to Alert routes asks the agent to plan new routes with you. The default route, “All incidents”, sends theopened and resolved events of every incident. It
runs only when no other route matches the event. A route can have up to 20 destinations.
Add a route with filters
The dashboard cannot create filtered routes yet. Use the Notifications API with an API key that has thenotifications:write
scope, squasher notifications routes create --input '<JSON>' in the CLI, or search for
notifications in the Squasher MCP server.
This route pages PagerDuty for sev-1 incidents only:
conditions.environments and conditions.tags are in the API, but incidents do not have these
values yet. A route that uses them never matches.
What each destination receives
Each message shows the severity with the project’s label, for exampleSEV-1, and links to the
incident.
Webhook payload
x-squasher-signature header has the HMAC-SHA256 of the raw
body, in lowercase hex, with the secret as the key. Compute the same value from the raw body and
compare the two before you trust the request.
How delivery works
- Squasher picks up new events every few seconds and sends each one to every destination on every matching route.
- A destination gets each event of an incident once. When a delivery succeeds, Squasher never sends it again.
- A failed delivery is tried again after 1 minute and after 5 more minutes. After the third attempt, Squasher stops. For Telegram and Microsoft Teams, Squasher also waits as long as the service asks.
- Squasher does not try a Slack delivery again when the Slack setup is broken: the workspace is not connected, Slack rejects the token, or the bot cannot find or post in the channel. The destination shows Slack not connected when it has no connected workspace. When you connect Slack to the project again, its Slack destinations use the new connection.
- Webhook requests time out after 10 seconds. Squasher does not follow redirects and does not retry a redirect.
- Recent deliveries shows the last 12 deliveries, with Delivered, Failed, or Outcome unknown and the HTTP status. Outcome unknown means the request may have reached the destination, so Squasher does not send it again. The API returns up to 500.
Read your notification inbox
Select Notifications in the dashboard sidebar, or open the notification bell. Your inbox includes updates from all organizations and projects that you can access.
Select an item to open the related work. Use Mark all as read to clear the unread count. Use Unread to show only unread items.
Limit repeated updates
Squasher stores one decision for each event and recipient. Retrying the same event does not create another notification. Your own actions do not notify you. Repeated updates for the same item are grouped while its inbox item is unread. Grouped updates do not send another email, except usage notifications: each usage threshold sends its own email. Mark the item as read to allow a later update after the one-hour cooldown. New notifications have hourly and daily limits. Additional updates increase a bounded summary instead of creating one notification per event. Use Preferences in the inbox to turn off optional categories. On-call pages, unanswered escalations, payment failures, and revoked-key notices remain enabled and have separate limits. Notifications from a person show their current profile photo. If the photo is missing or cannot load, their initials appear instead. System updates keep their category icon. Your inbox hides organization and project updates when you lose access. Billing updates require billing access.Comment mentions
When you mention a teammate in an incident comment, the teammate can receive an inbox item and an email to their account address. Preferences, grouping, and notification limits apply to both. The author does not receive one. To also post mentions in a Slack channel, add a route that is not the default route, withcomment_mentioned in conditions.events and a Slack channel destination. Mentions do not go to
Telegram, email, webhook, or PagerDuty destinations. Comments and mentions are internal: they never
appear on a status page.
Next steps
Set up on-call
Hand incidents to the person on call.
Connect alert sources
Open incidents from Datadog, Grafana, CloudWatch, and more.
Send alerts to Telegram
Set up a bot for a chat, group, or channel.
Notifications API
Manage destinations, routes, and deliveries over HTTP.