The alert worked. It arrived at the one email address attached to the account, sat politely in an inbox, and waited for somebody to notice. Meanwhile the people who could fix the problem were already talking in Slack, Discord, or Telegram.
That gap is small on a diagram and surprisingly large at 02:00.
Today Crontap adds native Slack, Discord, and Telegram alert channels for scheduled API calls, uptime monitors, and heartbeats. Connect a destination once, choose which product areas use it by default, then override that choice on any individual entity.
Email remains available on every plan. Chat channels are included on Pro and Ultra.
One place for human alerts
Crontap has always supported webhooks. They are still here, but they solve a different problem.
Notifications tell people that a schedule, monitor, or heartbeat needs attention. They are formatted for the destination and include a useful entity link. Integrations send machine-readable callbacks to another system. Use an Integration when Zapier, Make, n8n, or your own endpoint should continue a workflow. Use Notifications when a human should look up from chat.
The first release includes:
- Slack channels connected through Slack OAuth.
- Discord channels connected through Discord OAuth with the
webhook.incomingpermission. - Telegram direct messages and groups connected through a one-time bot link.
- Defaults for Schedules, Monitors, and Heartbeats.
Use my defaults,Choose channels, andOffon every entity.- A test message and delivery history for each destination.
- Failure and missed-run alerts, plus recovery messages when the source has a recovery lifecycle.
- Detection of removed or revoked destinations, shown as
Reconnect needed.
This is alert routing, not a full incident-management product. There are no acknowledge buttons, on-call rotations, escalation policies, SMS, or voice calls.
Connect Slack in two clicks
Open Settings, then Notifications. The page lists your email channel, connected chat destinations, and the defaults matrix.
Choose Add to Slack. Slack asks you to select the workspace and channel, then returns you to Crontap. No incoming webhook URL is copied into a form, and no workspace-wide bot token is stored.
Discord follows the same platform-hosted consent pattern. Telegram opens a choice between a direct message and a group, then waits for you to tap Start in Telegram. The destination becomes reusable after the platform confirms it.
Need the complete setup path? Use the Slack alerts guide, Discord alerts guide, or Telegram alerts guide.
Set sane defaults once
The defaults matrix has one row for each source:
| Product area | A useful starting point |
|---|---|
| Schedules | Email plus the team channel that owns scheduled jobs |
| Monitors | The operations channel that watches uptime |
| Heartbeats | The channel owned by the job or data team |
A destination can be enabled for more than one row. One alert can also go to several destinations. For example, keep email enabled as a fallback while sending uptime and heartbeat alerts to #alerts.
Defaults apply to new and existing entities that use Use my defaults. Changing the matrix updates that shared routing choice without editing every monitor one by one.
Route alerts in 60 seconds with Crontap. Email is available on every plan. Chat channels are on Pro and Ultra. Open notification settings.
Override one heartbeat
Sometimes the global route is almost right. The general alerts channel should hear about most jobs, but the invoice import belongs with the finance engineering team.
Open the entity and find Notifications:
Pick one of three modes:
- Use my defaults follows the defaults row for that product area.
- Choose channels stores a custom set for this entity.
- Off silences human notifications for this entity. Machine Integrations still run.
Routing is per destination, not per event type. If a heartbeat uses Slack and Telegram, its missed, explicit failure, and recovery events use that selected set. Recovery is only sent when the source produces one. Uptime monitors and heartbeats do; schedule failures do not have the same recovery lifecycle.
This same control appears on schedules and uptime monitors, so the mental model does not change as you move around Crontap.
Test before the incident
Every channel menu has Send test. The test goes through the same sender used by real alerts and appears in delivery history. It is the quick way to catch an archived Slack channel, a deleted Discord webhook, or a Telegram bot that was blocked or removed.
If the platform says the destination no longer exists or can no longer accept messages, Crontap stops delivery and marks it Reconnect needed. The row stays in settings so you can reconnect or remove it without guessing what disappeared.
Delivery health is useful for a quieter failure too. A destination can be active while a temporary platform error is retried. Open its history to see whether the latest delivery was sent, skipped, or failed after retries.
What changes for existing webhook users
Nothing is being taken away. Existing webhook Integrations keep their event levers and JSON payloads. Heartbeats also accept integrations[] through the public API, so a machine callback can run beside human Notifications.
What changes is the recommended path. Do not paste a Slack or Discord webhook into Integrations just to alert a person. Connect the native destination once and route alerts from Notifications. Keep generic webhooks for systems that are supposed to process the event.
If your goal is to post content on a schedule rather than receive an operational alert, the existing Slack digest, Discord webhook, and Telegram bot guides still cover that workflow.
Plans and limits
Email continues on Starter, Pro, and Ultra. Connected Slack, Discord, and Telegram delivery requires a paid plan. If an account returns to Starter, chat channel configuration stays saved but delivery pauses. Upgrade again and the routes are still there.
Credentials are encrypted at rest. Slack and Discord credentials are bound to the selected channel. Telegram connections are bound to the confirmed direct message or group. Crontap does not read Telegram group chat.
See current item limits and cadence floors on pricing. Then use the platform guide that matches where your team already works:
- Send cron job and uptime alerts to Slack
- Send cron job and uptime alerts to Discord
- Send uptime and heartbeat alerts to Telegram
Fix this in 60 seconds with Crontap. Free forever tier. No credit card. Schedule your first job.
