> ## Documentation Index
> Fetch the complete documentation index at: https://checkly-422f444a-auto-update-api-spec.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# SlackAppAlertChannel Construct

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

<Tip>
  Slack App alert channels require the [Checkly Slack App](/integrations/alerts/slack) to be installed in your Slack workspace.
</Tip>

Sends alert notifications to Slack channels and as DMs.

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

  const slackAppChannel = new SlackAppAlertChannel('slack-channel-1', {
    slackChannels: ['#ops', '@John Doe']
  })
  ```

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

  const slackAppChannel = new SlackAppAlertChannel('slack-channel-1', {
    slackChannels: ['#ops', '@John Doe'],
    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

### Slack Alert Channel Options

<ResponseField name="slackChannels" type="string[]" required>
  The Slack channels to alert. Can also include DM handles, e.g. "@John Doe"

  ```ts highlight={2} theme={null}
  new SlackAppAlertChannel('slack-channel-1', {
    slackChannels: ['#ops','@John Doe']
  })
  ```
</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>
