> ## Documentation Index
> Fetch the complete documentation index at: https://checklyhq.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# TelegramAlertChannel Construct

> Learn how to configure Telegram alert channels with the Checkly CLI.

<Tip>
  For general information about alerting, see our docs on [the Telegram integration](/integrations/alerts/telegram) and [alerting with Checkly](/communicate/alerts/overview/).
</Tip>

Sends alerts to a Telegram channel.

<CodeGroup>
  ```ts Basic Example theme={null}
  import { TelegramAlertChannel } from 'checkly/constructs'

  const telegramChannel = new TelegramAlertChannel('my-telegramchannel-1', {
    name: 'My Telegram channel',
    apiKey: 'xxxxxx',
    chatId: 'xxxxxx'
  })
  ```

  ```ts Advanced Example theme={null}
  import { TelegramAlertChannel } from 'checkly/constructs'

  const telegramChannel = new TelegramAlertChannel('my-telegramchannel-1', {
    name: 'My Telegram channel',
    apiKey: 'xxxxxx',
    chatId: 'xxxxxx',
    sendRecovery: true,
    sendFailure: true,
    sendDegraded: true,
    sslExpiry: true,
    sslExpiryThreshold: 30,
  })
  ```
</CodeGroup>

<Note>
  If you need to reference existing alert channels that were created outside of your CLI project, use [`fromId()`](/constructs/alert-channel#using-fromid-to-reference-an-existing-channel).
</Note>

## Configuration

### Telegram Alert Channel Options

<ResponseField name="name" type="string" required>
  Friendly name to recognise the integration.
</ResponseField>

<ResponseField name="apiKey" type="string" required>
  The API key associated with your Telegram bot.
</ResponseField>

<ResponseField name="chatId" type="string" required>
  The chat ID of the Telegram channel you want to send alerts to.
</ResponseField>

<ResponseField name="payload" type="string">
  The message sent to the chat when an alert is triggered. If this is not specified, we'll send a default payload with some basic information about the alert.

  We have [handlebar helpers and variables](/integrations/alerts/webhooks/#using-variables) available for building custom payloads.

  ```ts highlight={5-16} theme={null}
  new TelegramAlertChannel('my-telegramchannel-1', {
    name: 'My Telegram channel',
    apiKey: 'xxxxxx',
    chatId: 'xxxxxx',
    payload: `
      <b>{{ALERT_TITLE}}</b> at {{RUN_LOCATION}} ({{RESPONSE_TIME}}ms)
      {{#if AI_ANALYSIS_CLASSIFICATION}}
      AI Analysis: <i>{{AI_ANALYSIS_CLASSIFICATION}}</i>

      {{AI_ANALYSIS_ROOT_CAUSE}}
      <a href="{{AI_ANALYSIS_LINK}}">Read full analysis</a>
      {{/if}}

      Tags: {{#each TAGS}} <i><b>{{this}}</b></i> {{#unless @last}},{{/unless}} {{/each}}
      <a href="{{RESULT_LINK}}">View check result</a>
      `
  })
  ```
</ResponseField>

### General Alert Channel Options

These options are valid for all alert channels types.

<ResponseField name="sendRecovery" type="boolean">
  Whether to send notifications when checks recover from a [failed or degraded state](/communicate/alerts/overview/#alert-channels). Default value is `true`.
</ResponseField>

<ResponseField name="sendFailure" type="boolean">
  Whether to send notifications when checks [fail](/communicate/alerts/overview/#alert-channels). Default value is `true`.
</ResponseField>

<ResponseField name="sendDegraded" type="boolean">
  Whether to send notifications when checks [become degraded](/communicate/alerts/overview/#alert-channels). Default value is `false`.
</ResponseField>

<ResponseField name="sslExpiry" type="boolean">
  Whether to send notifications when a SSL/TLS certificate is about to expire. Default value is `false`.

  ```ts highlight={3} theme={null}
  new EmailAlertChannel("email-channel-1", {
    address: "alerts@acme.com",
    sslExpiry: true,
    sslExpiryThreshold: 30, // Alert 30 days before expiry
  })
  ```

  [Learn more about SSL alerts.](/communicate/alerts/ssl-expiration/)
</ResponseField>

<ResponseField name="sslExpiryThreshold" type="number">
  Number of days before the SSL/TLS certificate expiry date to send notifications. Only relevant when `sslExpiry` is enabled. Default value is `30`.

  ```ts highlight={4} theme={null}
  new EmailAlertChannel("email-channel-1", {
    address: "alerts@acme.com",
    sslExpiry: true,
    sslExpiryThreshold: 30, // Alert 30 days before expiry
  })
  ```

  [Learn more about SSL alerts.](/communicate/alerts/ssl-expiration/)
</ResponseField>
