UptimeHunt Docs
Alerting

Alerting & Integrations

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

Integrations

Integrations — configured notification channels with per-channel test delivery

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:

ChannelMechanismStored configInteractive (ack/resolve)Recovery
WebhookHTTP POST of the alert payloadDestination URL (+ optional headers)NoRECOVERY payload to the same URL
EmailHTML emailRecipient address(es)NoRecovery email
SlackWeb API chat.postMessage (bot token)bot_token + channelYes — Acknowledge / Resolve buttonsOriginal message edited green in place
DiscordChannel webhook + (optional) registered applicationwebhook_urlYes — when an application is registeredMessage edited / follow-up
TelegramShared platform botchat_idYes — inline Acknowledge / Resolve buttonsOriginal message edited green in place
MattermostIncoming webhook (or bot token, advanced)webhook_urlYes — message-action buttonsFollow-up "recovered" message (bot tier edits in place)
Microsoft TeamsPower Automate Workflows webhook (Adaptive Card)webhook_urlNo (send-only)Follow-up recovery card
Google ChatSpace incoming webhookwebhook_urlNo (send-only)Follow-up card in thread, green button
PagerDutyEvents API v2routing_keyStatus-sync (incident lifecycle)Resolves the PagerDuty incident
OpsgenieAlert APIapi_key + regionStatus-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:

FieldTypeDescription
servicestringThe service name
service_idnumberThe service identifier
typestringThe alert type — one of DOWN, DEGRADED, RECOVERY
severitystringThe alert severity
messagestringA human-readable summary of the event
metadataobjectEngine 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.

FieldWhat it isHow to obtain
URLThe destination the payload is POSTed toThe URL of an endpoint you control
Headers (optional)Custom HTTP headers added to each callE.g. an Authorization header issued by the receiving system
  1. Go to Settings → Integrations and click Add Integration.
  2. Choose Webhook, enter the destination URL and any optional headers.
  3. 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.

Email

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.

FieldWhat it isHow to obtain
Email addressesOne or more recipientsYour team's inboxes / distribution lists
  1. Go to Settings → Integrations and click Add Integration.
  2. Choose Email, enter one or more recipient email addresses.
  3. Optionally add a subject prefix (e.g. [ALERT]).
  4. 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.

On this page