Telegram alerts
Telegram is CronAlive's primary alert channel: direct messages and group chats, linked via a one-time link — no phone number shared.
Connecting a direct chat
-
In the dashboard open Integrations → New integration,
pick the Telegram channel and save. The integration card shows
a one-time link like
https://t.me/<bot>?start=<code>(the same works via the API:POST /api/v1/integrations). - Open the link and press Start — Telegram sends the code to the bot for you.
- The bot replies with a confirmation ("Done! Alerts of the … integration will arrive in this chat") in the account owner's language — the integration is now enabled.
Connecting a group
An unlinked integration shows two options in the dashboard: "Direct messages" and "A group chat". For a group the dashboard displays a ready-made command with a copy button — nothing to construct by hand.
- Add the bot to the group (step 1 of the "A group chat" block).
-
Copy the command from the dashboard and send it in the group.
Command format:
/start@<bot-name> <link-code>
- The bot confirms the link in the group, and the integration card shows "Linked: group name".
The code is one-time: it is invalidated after a successful link. To connect another chat, create a new integration.
What alerts arrive
Messages are plain text: a status headline plus details — check name, project, time in your timezone and the reason.
- 🔴 down — the check went down: a ping missed its window, the job reported a failure or returned a non-zero exit code.
- 🟢 up — the check is up again.
- 🟡 late — a ping is late, the grace period is running (not down yet).
- 🔴 reminders — while a check stays down, repeat messages arrive at the configured intervals (e.g. 1, 3 and 24 hours); each interval fires once per incident.
- ⚠ SSL — for HTTPS checks: the certificate expires in N days (7/14/30 threshold set on the check; the expiry check runs at most once per 12 hours).
Per-integration settings:
- events — any subset of down / up / late;
- tags — alerts only for checks with these tags (empty = all project checks);
- quiet hours — a window (with its own timezone, may cross midnight) during which delivery is postponed until the window ends, never dropped;
- reminders — a list of intervals in hours (1–168) for unresolved downs.
The alert language matches the account owner's language. Delivery retries 3 times (10 s → 1 min → 5 min); if Telegram stays unreachable, the alert is duplicated to the account owner's email.
Here is how it looks in the chat:
🔴 backup-db is DOWN Check 'backup-db' went down (no ping arrived in time). Project: Production Time: 2026-08-13 03:14:00 (CEST) / 01:14 UTC 🔴 backup-db is still DOWN (3 h) Check 'backup-db' has been down for 3 h. Project: Production Went down: 2026-08-13 03:14:00 (CEST) / 01:14 UTC 🟢 backup-db is UP Check 'backup-db' is up again. Project: Production Time: 2026-08-13 06:31:00 (CEST) / 04:31 UTC
Time is shown in the time zone from your profile, with the UTC equivalent next to it — an on-call colleague in another zone reads the same moment without converting it in their head. A profile already on UTC gets no duplicate.
If the bot stays silent
- The integration is not linked. Until the code reaches the bot, the integration stays disabled (the "not linked" badge on its card). Open the delivery journal — the Journal button on the integrations page: the error "not linked (no chat_id)" means linking never finished.
- The bot can't see the command in a group. The bot must be
a group member; with privacy mode enabled (a BotFather setting)
it only sees commands — send
/start <code>, not the code as a separate message. - The code wasn't recognized. The command and the code must
be one message:
/start abc…. Use the code from the link; it no longer works after a successful link. - Event subscription. If the integration only subscribes to down, up messages won't arrive; also check the tag filter.
- Quiet hours. Journal shows pending and the alert seems delayed — delivery is postponed until the quiet window ends.
- Status suppressed in the journal. Two possible causes. Either the service detected an outage of its own workers and temporarily suppressed down alerts to avoid false alarms (up alerts keep flowing), or the check is flapping and flap damping kicked in — the journal entry carries the reason and a "why?" link.
- Quick channel check. The Send-a-test-alert button on the integration card delivers a message through the real channel (at most once per 30 seconds); the result and any provider error land in the delivery journal.
- The bot was removed from the group / the chat changed. Deliveries will fail (visible in the journal with the Telegram API error) — create a new integration and link the chat again.