● Alwaysbeat

Using Alwaysbeat

Notifications

When a check goes down or recovers, Alwaysbeat notifies every channel configured on that check. Channels are plain strings of the form kind:target.

Channel format

Each check has a list of channels. On the dashboard you enter one per line; in the API they're an array of strings. Every entry is kind:target:

ChannelFormatExample
Emailemail:<address>email:ops@example.com
Telegramtelegram:<chat_id>telegram:123456789
Slackslack:<incoming-webhook-url>slack:https://hooks.slack.com/services/T00/B00/xxxx
Webhookwebhook:<https-url>webhook:https://example.com/hooks/dmf

A check can mix channels — for example email your team and post to a webhook that opens a ticket. Duplicate entries are rejected.

When notifications fire

Alwaysbeat notifies on state transitions only, never on every sweep:

Optional extras — repeat "nag" reminders while still down, flap-cooldown to suppress brief blips, and "ran too long" warnings — are covered in Reliability controls.

Email

Add email:you@example.com. The address must be a plain email address (no display name). You'll receive a message when the check goes down and again when it recovers, with a link back to the check.

Telegram

Add telegram:<chat_id>, where <chat_id> is a numeric Telegram chat ID (negative for groups). Because Telegram bots can only message chats they've been added to, you must first start a conversation with the Alwaysbeat bot (or add it to your group) so it's permitted to deliver messages to that chat.

Finding your chat ID Your chat ID is a number, not your @username. If you're unsure of it, a quick way is to message a chat-ID helper bot in Telegram, or read it from the Bot API's getUpdates response after messaging the bot.

Slack

Add slack:<incoming-webhook-url> to post alerts to a Slack channel. Alwaysbeat sends a formatted message with a colored bar — green on recovery, red when down — and a link back to the check.

To get the URL:

  1. In Slack, create an app (or reuse one) and enable Incoming Webhooks.
  2. Click Add New Webhook to Workspace and choose the channel to post to.
  3. Copy the generated webhook URL — it looks like https://hooks.slack.com/services/T00000/B00000/XXXXXXXX.
  4. Add it as a channel: slack:https://hooks.slack.com/services/T00000/B00000/XXXXXXXX.
Use an Incoming Webhook, not a Workflow trigger The URL must be an Incoming Webhook — its path starts with /services/. Workflow Builder trigger URLs (path /triggers/…) are a different feature that ignores our message formatting, so they're rejected when you add the channel.
Keep the webhook URL secret The incoming-webhook URL is a credential — anyone who has it can post to your channel. To rotate it, delete the webhook in Slack and add a new one.

Webhooks

Add webhook:https://your-endpoint to receive a signed JSON POST on every state change — ideal for wiring Alwaysbeat into PagerDuty Events, a ticketing system, or your own service. The payload is signed with HMAC-SHA256 so you can verify it came from Alwaysbeat. Only http/https URLs with a public host are accepted (requests to private/internal addresses are refused). See Signed webhooks for the payload shape and how to verify the signature.