Channels by plan
Free sends email alerts for its one project. Starter adds Slack, WhatsApp and webhooks (one project), and Growth and Scale alert on every project, adding Telegram, Discord and Microsoft Teams. See Plans & features.How it works
- Connect channels once for your organization in Settings → Notifications: email on every plan, Slack, WhatsApp or a webhook on Starter, plus Telegram, Discord or Microsoft Teams on Growth and above.
- Create alert rules per project: what should trigger an alert, in which environment, and which channels receive it.
- Codeskop evaluates the rules as events arrive (new issues and regressions, within seconds) and every minute for rules that look at a time window (spikes, slow and failing APIs).
- Each alert is delivered to the rule's channels with a link straight to the issue or endpoint. Failed deliveries are retried and shown in Recent alerts.
Only owners and admins can connect channels and change rules. Everyone on the team can see the rules and the alert history.
What can trigger an alert
| Option | Type | Description |
|---|---|---|
| New issue | crashes · ANRs · errors | The first time a new crash, native crash, ANR or handled error happens. Filter by issue type and minimum severity, for example, only critical crashes. |
| Issue spike | events in a window | One issue happens at least N times within M minutes (for example 50 events in 15 minutes). Same type and severity filters. |
| Regression | completed issues | An issue your team marked Completed happens again. |
| Slow API | network | An endpoint's average latency is at or above your limit (for example 2,000 ms) over the window. Needs network capture. |
| Failing API | network | An endpoint's error rate (HTTP 4xx/5xx, timeouts and connection failures) is at or above your limit (for example 5%) over the window. |
Slow and failing API rules need network data
They use the calls captured by network monitoring (Starter and above): the OkHttp adapter on Android, orfetch/XMLHttpRequest capture on the web.Rule options
| Option | Type | Default | Description |
|---|---|---|---|
| Issue types | issue rules | all | Crashes, native crashes, ANRs and handled errors: pick any combination. |
| Minimum severity | issue rules | any | Only issues at this severity or higher: low, medium, high or critical. |
| Window | spike, API rules | 15 min | How far back to look, from 5 minutes to 1 day. |
| Events at least | spike | 50 | How many events of one issue within the window trigger the alert. |
| Latency at least | slow API | 2,000 ms | Average latency of an endpoint over the window. |
| Error rate at least | failing API | 5% | Share of an endpoint's calls that failed over the window. |
| Calls at least | API rules | 20 | Endpoints with fewer calls in the window are ignored, so a single slow call doesn't alert. |
| Only endpoints containing | API rules | all | Optional text match on method, host and path, e.g. /v2/bookings or api.acme.com. |
| Environment | every rule | production | Production or test. Alerts follow the key your app uses. |
| Cooldown | every rule | 1 hour | The same issue or endpoint alerts at most once per cooldown (15 minutes to 1 day). A crash loop sends one message, not hundreds. |
| Send to | every rule | None | One or more connected channels. |
What an alert contains
Every channel gets the same facts, formatted natively for where it lands:
- Severity, a clear title (for example New crash: NullPointerException in CheckoutActivity) and a one-line summary.
- Key facts: events, users affected, top device, OS and app version for issues; average and p95 latency, calls and error rate for endpoints.
- The project, environment and the rule that fired.
- An Open in Codeskop button that goes straight to the issue or endpoint.
Formats
- Slack: a message with a severity colour bar, fact fields and a button.
- Microsoft Teams: an adaptive card with a fact list and a button.
- Discord: an embed with severity colour, fields and a link.
- Telegram: a formatted message with an Open in Codeskop button.
- WhatsApp: our
codeskop_alerttemplate with a link button. - Email: a clean HTML email (with a plain-text version) to the teammates you choose.
- Webhook: a signed JSON
POSTto your own HTTPS endpoint. See Webhook alerts for the payload and how to verify the signature.
Delivery and history
Alerts are sent within seconds of the rule firing. If a service is briefly unavailable, Codeskop retries with increasing delays. If a webhook was deleted or a token revoked, delivery stops retrying and the channel is flagged Last delivery failed in Settings → Notifications. Recent alerts shows every alert and whether each channel received it.
Plan limits
| Option | Type | Description |
|---|---|---|
| Free | n/a | Alert rules on its one project. Channel: email. |
| Starter | n/a | Alert rules on one project (any number of rules and channels for that project). Channels: Slack, WhatsApp, email and webhooks. |
| Growth | n/a | Alert rules on every project. Adds Telegram, Discord and Microsoft Teams. |
| Scale | n/a | Alert rules on every project, on every channel. |
If you downgrade, the projects you set up first keep alerting up to your new plan's limit; other rules stop firing until you upgrade. Channels your new plan doesn't include are kept, with their settings, but paused: they show as locked, don't send alerts and can't be tested or added to rules. They resume on their own when you upgrade, and you can still rename or remove them.
Why didn't I get an alert?
- The cooldown is active: the same issue or endpoint already alerted within the cooldown.
- The environment doesn't match: an app using a
cs_test_key reports to Test; rules default to Production. - The severity or type filter excluded it: check the rule's summary line.
- It isn't new: New issue fires only for the first events of an issue. Use a spike or regression rule for issues you already know.
- Not enough traffic: API rules ignore endpoints below Calls at least.
- The channel failed: look for Last delivery failed and press Send test.