Alerting & Integrations
Connect UptimeHunt to notification channels including Slack, Discord, Telegram, Email, Webhook, and more. Configure alert delivery for incidents.
Integrations

Overview
Integrations connect UptimeHunt to the tools your team uses to receive alerts. When an alert fires for a service, UptimeHunt delivers a notification through each enabled integration. Ten channel types ship today — a generic webhook, email, six chat platforms, and two on-call platforms:
| Channel | Mechanism | Stored config | Interactive (ack/resolve) | Recovery |
|---|---|---|---|---|
| Webhook | HTTP POST of the alert payload | Destination URL (+ optional headers) | No | RECOVERY payload to the same URL |
| HTML email | Recipient address(es) | No | Recovery email | |
| Slack | Web API chat.postMessage (bot token) | bot_token + channel | Yes — Acknowledge / Resolve buttons | Original message edited green in place |
| Discord | Channel webhook + (optional) registered application | webhook_url | Yes — when an application is registered | Message edited / follow-up |
| Telegram | Shared platform bot | chat_id | Yes — inline Acknowledge / Resolve buttons | Original message edited green in place |
| Mattermost | Incoming webhook (or bot token, advanced) | webhook_url | Yes — message-action buttons | Follow-up "recovered" message (bot tier edits in place) |
| Microsoft Teams | Power Automate Workflows webhook (Adaptive Card) | webhook_url | No (send-only) | Follow-up recovery card |
| Google Chat | Space incoming webhook | webhook_url | No (send-only) | Follow-up card in thread, green button |
| PagerDuty | Events API v2 | routing_key | Status-sync (incident lifecycle) | Resolves the PagerDuty incident |
| Opsgenie | Alert API | api_key + region | Status-sync (alert lifecycle) | Closes the Opsgenie alert |
Each integration is created under Settings → Integrations and can be exercised with the Test button before you rely on it.
Interactive vs. send-only
Interactive channels (Slack, Discord, Telegram, Mattermost) render in-message Acknowledge and Resolve buttons; tapping one calls back into UptimeHunt and acknowledges or resolves the underlying incident. PagerDuty and Opsgenie are status-synced — UptimeHunt drives their native incident/alert lifecycle (open on alert, resolve/close on recovery) and accepts their status callbacks. Microsoft Teams and Google Chat are send-only: they receive notifications but offer no acknowledge / resolve loop.
Credential Storage
Every per-integration secret — a bot token, a channel webhook URL, a PagerDuty routing key, an Opsgenie API key — is encrypted at rest (Fernet / AES-128-CBC + HMAC, keyed by the deployment's INTEGRATION_SECRET_KEY) and is never returned in plaintext through the API. You configure the credential once in the UI; UptimeHunt decrypts it only at send time.
Setup by Channel
Every integration follows the same workflow: configure the destination under Settings → Integrations, then click Test to confirm delivery. The per-channel sections below cover the mechanism, the configuration (and where to obtain the credential), the interactive behavior, and recovery behavior.
Webhook
Mechanism. A Webhook integration delivers every alert as a JSON POST to any HTTP(S) endpoint you control, letting you wire UptimeHunt into custom automation, internal tooling, or a third-party service. The JSON body has these fields:
| Field | Type | Description |
|---|---|---|
service | string | The service name |
service_id | number | The service identifier |
type | string | The alert type — one of DOWN, DEGRADED, RECOVERY |
severity | string | The alert severity |
message | string | A human-readable summary of the event |
metadata | object | Engine diagnosis details (e.g. scope, affected_region, affected_isp, failing_probes/total_probes); may be empty |
There is no timestamp or probe-location field — key your receiver on the field names above, in particular type (not alert_type).
Configuration & how to obtain it. No external account is required — you provide the endpoint yourself.
| Field | What it is | How to obtain |
|---|---|---|
| URL | The destination the payload is POSTed to | The URL of an endpoint you control |
| Headers (optional) | Custom HTTP headers added to each call | E.g. an Authorization header issued by the receiving system |
- Go to Settings → Integrations and click Add Integration.
- Choose Webhook, enter the destination URL and any optional headers.
- Click Test to send a sample payload, then Save.
Recovery. The same endpoint receives the matching recovery POST (same body shape, "type": "RECOVERY"). Correlate the recovery to the outage on the service_id in the payload — UptimeHunt does not define a return contract for the generic webhook, so what your endpoint does with the payload is entirely up to you.
Mechanism. An Email integration sends an HTML-formatted alert email from UptimeHunt's own infrastructure to one or more inboxes. The subject is the alert's summary message, optionally preceded by a custom subject prefix you configure (e.g. [ALERT]). The body carries the service name, a one-sentence explanation of the state (Down / Degraded / Recovered), detail rows drawn from the engine diagnosis (scope, probes failing, affected region / ISP, consecutive failures — whichever apply), and a link to the service details.
Configuration & how to obtain it. Nothing to obtain from an external service.
| Field | What it is | How to obtain |
|---|---|---|
| Email addresses | One or more recipients | Your team's inboxes / distribution lists |
- Go to Settings → Integrations and click Add Integration.
- Choose Email, enter one or more recipient email addresses.
- Optionally add a subject prefix (e.g.
[ALERT]). - Click Test to send a sample email, then Save.
Recovery. A recovery email is sent to the same recipients with a green "Service Recovered" subject and body.
Related Documentation
Import from Crontab
Paste an existing crontab into UptimeHunt to bulk-create cron monitors, then copy back the wrapped crontab lines that ping them.
Status Pages
Public status pages for the services and cron jobs you choose to show — live status, 90-day history, incident updates, and maintenance schedules, served from a durable snapshot that keeps working even when the rest of the platform is down.