A Discord webhook can carry an alert, but creating one by hand for every cron job gets old quickly. Crontap uses Discord's OAuth flow to create a channel-bound destination, then reuses it across schedules, uptime monitors, and heartbeats.
This guide covers alerts about Crontap entities. To post your own content on a timer, use the separate schedule Discord webhook messages guide.
Before you connect
You need:
- A Crontap Pro or Ultra plan. Paid plans start at $2.99 per month.
- Access to the target Discord server.
- Manage Webhooks permission in the target channel.
Crontap requests Discord's webhook.incoming OAuth permission. It does not install a general-purpose bot, read messages, run commands, mention roles, or target threads.
1. Start in notification settings
Open Settings, then Notifications, or use notification settings.
Find the connection controls above the channel list and select Connect Discord. Discord asks you to choose the server and channel that will own the webhook. If Discord already appears as an active destination, use its row instead of creating a duplicate connection. If a channel is missing from OAuth, confirm your account has Manage Webhooks there.
2. Authorize and name the destination
Approve the OAuth request on Discord. Discord returns a credential and channel ID, but not a useful server and channel label for the Crontap UI. Crontap therefore asks you to give the destination a recognizable name after authorization, such as Acme #alerts.
A welcome embed appears in Discord, and the destination becomes active in settings.
Do not connect the same channel twice unless you deliberately want two Discord webhooks and two Crontap rows. Discord creates a fresh webhook each time, so duplicate connections can produce duplicate alert messages if both are selected.
3. Set defaults and overrides
Use the defaults matrix to enable Discord for:
- Schedules, for failed scheduled API calls after configured retries.
- Monitors, for uptime state changes.
- Heartbeats, for missed, explicit failure, and recovery events.
Save the defaults, then leave ordinary entities on Use my defaults. Open an individual schedule, monitor, or heartbeat and choose Choose channels when it belongs somewhere else. Select Off to stop human alerts while keeping machine Integrations active.
One entity can route to Discord plus email, Slack, or Telegram. This is useful when Discord is the team workspace but email should remain a separate fallback.
4. Test the Discord embed
Open the destination menu and select Send test. Discord should receive a formatted embed, and Crontap should add a sent result to delivery history.
Real alerts identify the source and state, include relevant timing or error context, and link back to Crontap. Uptime and heartbeat recovery messages follow the same selected route. A schedule failure does not imply a later recovery event.
Safe routing with several channels
Select several destinations when more than one team owns the response, not simply because several buttons exist. A good baseline is the team's Discord channel plus email.
If the uptime monitor checks Discord itself or a dependency required to reach Discord, keep an independent destination enabled. Sending the only downtime alert into the service being checked is a neat circular dependency and a poor incident plan.
Rename, disconnect, and reconnect
The channel menu lets you send a test, review delivery history, rename the Crontap label, or disconnect.
Renaming changes the label in Crontap. It does not rename the Discord channel or webhook. Disconnecting removes the Crontap destination and its routing selection.
If the webhook is deleted in Discord, or Discord returns that it no longer exists, Crontap stops delivery and shows Reconnect needed. Reconnect to create a fresh Discord webhook, then remove any stale duplicate row.
Troubleshooting Discord alerts
Discord says I do not have permission
Ask a server or channel administrator for Manage Webhooks permission, or ask them to complete the connection. Ordinary message-posting permission is not enough to authorize an incoming webhook.
Why does Crontap ask me to name the channel?
The OAuth response gives Crontap the channel-bound webhook and IDs but not a human-readable server and channel name. The label helps you tell Production #alerts from Staging #alerts.
I receive every alert twice
Check notification settings for two rows pointing at the same Discord channel. Authorizing the same channel twice creates two webhooks. Keep one destination, update defaults or custom routes to use it, then disconnect the duplicate.
The row says Reconnect needed
The webhook was likely deleted or revoked. Reconnect the destination and send a test. Crontap does not silently continue retrying a credential Discord says is gone.
The test works but my monitor stays quiet
Open the monitor and inspect Notifications. Choose channels uses only its own checked list, even if Discord is enabled in global defaults. Also confirm the monitor actually emitted a state change and inspect delivery history.
Can Crontap post to a Discord thread or mention a role?
No. Thread targeting, bot commands, interactive incident controls, and role mentions are not part of v1.
Limits, plan behavior, and security
Discord alert delivery is a paid feature. If the account downgrades to Starter, Crontap keeps the destination and routing configuration but pauses chat delivery. Email remains available.
The channel-bound webhook credential is encrypted at rest. Delivery history exposes status and attempt timing, not the webhook URL.
Crontap is not an on-call or incident-management replacement. It does not provide SMS, calls, acknowledge actions, rotations, or escalation policies.
FAQ
How do I send cron job failure alerts to Discord?
Connect Discord in notification settings, enable it for Schedules, and leave the schedule on Use my defaults. Select a custom route if only that job should reach the channel.
Do I have to paste a Discord webhook URL?
No. Discord creates and returns the incoming webhook during OAuth. Manual webhook URLs remain appropriate when you are scheduling outbound Discord posts rather than configuring alerts.
Can different uptime monitors use different Discord channels?
Yes. Connect each destination once, then select Choose channels on a monitor and check the intended row.
Do recovered monitors notify Discord?
Yes, when an uptime monitor or heartbeat emits recovery. Schedule failures do not share that exact lifecycle.
Can one event notify Discord and Slack?
Yes. A default or custom route can include multiple active channels.
