# Notification channels

Glassmkr routes alerts to email, Telegram, Slack, Discord, PagerDuty, and generic webhook destinations. All six are free on every plan, with no cap on how many you configure; filter which priority levels (P1-P4) each one receives.

## Email

The simplest channel. Glassmkr sends styled HTML emails from `alerts@glassmkr.com` with priority badges, diagnostic commands, and a direct link to the alert in the dashboard. SPF, DKIM, and DMARC are configured on the sending domain.

### Setup

1. Go to **Channels** in the dashboard and click **+ Add Channel**.
2. Select the **Email** tab.
3. Enter a channel name and the recipient email address.
4. Choose which priority levels this channel should receive (P1 through P4).
5. Click **Create Channel**.
6. Click **Test** to verify delivery. Check your spam folder if it does not arrive.

## Telegram

Telegram messages arrive instantly and support rich formatting with priority badges and code blocks.

### Setup

1. Open Telegram and start a conversation with **@glassmkr_bot**.
2. Send `/start` to the bot. It replies with your chat ID.
3. For group notifications, add **@glassmkr_bot** to your group, then send `/start` in the group. The bot replies with the group chat ID (a negative number like `-1001234567890`).
4. In the dashboard, go to **Channels**, click **+ Add Channel**, select **Telegram**.
5. Enter the chat ID from step 2 or 3.
6. Choose priority levels and click **Create Channel**.
7. Click **Test** to verify.

## Slack

Slack integration uses incoming webhooks. Each webhook targets a specific Slack channel.

### Setup

1. Go to [api.slack.com/apps](https://api.slack.com/apps) and click **Create New App**.
2. Select **From scratch**. Name the app (e.g., "Glassmkr Alerts") and select your workspace.
3. In the app settings, go to **Incoming Webhooks** and toggle it on.
4. Click **Add New Webhook to Workspace** and select the channel (e.g., #ops-alerts).
5. Copy the webhook URL.
6. In the dashboard, go to **Channels**, click **+ Add Channel**, select **Slack**.
7. Paste the webhook URL, choose priority levels, and click **Create Channel**.
8. Click **Test** to verify.

## Discord

Discord integration uses incoming webhooks, like Slack. Alerts post as rich embeds with severity colors to the channel the webhook targets.

### Setup

1. In Discord, open **Server Settings -> Integrations -> Webhooks** and click **New Webhook**.
2. Pick the channel it should post to, then copy the webhook URL.
3. In the dashboard, go to **Channels**, click **+ Add Channel**, select **Discord**.
4. Paste the webhook URL, choose priority levels, and click **Create Channel**.
5. Click **Test** to verify.

## PagerDuty

PagerDuty integration uses the Events API v2. Glassmkr triggers an incident when an alert fires and resolves it when the alert clears. Alert priority maps to PagerDuty severity.

### Setup

1. In PagerDuty, open the service you want to alert on and go to **Integrations -> Add an integration**.
2. Select **Events API v2** and copy the **Integration Key** (the routing key).
3. In the dashboard, go to **Channels**, click **+ Add Channel**, select **PagerDuty**.
4. Paste the routing key, choose priority levels, and click **Create Channel**.
5. Click **Test** to verify a test incident is created and auto-resolved.

## Webhooks

For routing alerts into your own incident tooling (custom Slack apps, internal ticket systems, anything not covered by the first-class channels above), use a generic webhook. Glassmkr POSTs a JSON payload to the URL you configure.

### Setup

1. In the dashboard, **Channels** -> **+ Add Channel** -> **Webhook**.
2. Enter the endpoint URL and an optional shared-secret header (sent as `X-Glassmkr-Signature`; HMAC-SHA256 of the body).
3. Choose priority levels and click **Create Channel**.
4. Click **Test**. Inspect your endpoint's request log to confirm the payload arrived.

4xx and 5xx responses are retried with exponential backoff for up to one hour, then dropped. Delivery history is visible on the channel card.

## Priority filtering

Each channel has four priority toggles: P1 Urgent, P2 High, P3 Medium, P4 Low. When an alert fires, Glassmkr sends notifications only to channels that have that priority level enabled.

For example, configure a Telegram channel for P1 and P2 only (critical alerts that need immediate attention), and an email channel for all four levels (audit trail).

Change priority settings at any time by clicking **Edit** on any channel card.

## Notification format

All channels receive structured notifications that include:

- **Priority badge**: P1 Urgent (red), P2 High (orange), P3 Medium (amber), P4 Low (blue).
- **Server name and alert rule**: identifies which server and which of the 65 rules fired.
- **Summary**: current value, threshold, and what it means, in human-readable units.
- **Recommendation**: context-aware advisory text explaining the likely cause.
- **Fix commands**: copy-pasteable shell commands with real interface and device names. Every rule ships with deep FIX content (safe-mode, validation, rollback notes).
- **View in Dashboard**: direct link to the server detail page.

When an alert resolves, a resolution notification is sent to the same channels that received the original alert.

## Version update notifications

When a new Crucible version is available, Glassmkr sends a one-off notification listing all servers running an outdated version. This is sent once per customer per release, not per server.

## Testing channels

Click **Test** on any channel card, or use the API:

```
curl -X POST https://app.glassmkr.com/api/v1/channels/CHANNEL_ID/test \
  -H "Authorization: Bearer gmk_acct_live_your_account_key"
```

The account key is created in **Settings -> API keys** (on every plan; this `test` call needs a write-scoped key). See the [Programmatic API](/docs/programmatic-api) page for scopes and rotation.

Last verified: 2026-05-22 against Crucible v0.13.3.
