Skip to main content
For general information about alerting, see our docs on the Incident.io integration and alerting with Checkly.
Triggers and resolves alerts in Incident.io.
import { IncidentioAlertChannel } from 'checkly/constructs'

const incidentioChannel = new IncidentioAlertChannel('incidentio-channel-1', {
  name: 'ACME alerts',
  url: 'https://api.incident.io/v2/alert_events/checkly/xxxxx',
  apiKey: 'xxxxx45afe73'
})
If you need to reference existing alert channels that were created outside of your CLI project, use fromId().

Configuration

Configure Incident.io-specific settings:
ParameterTypeRequiredDefaultDescription
namestring-Friendly name to recognise the integration
urlstring-The target URL created by installing the Checkly integration in Incident.io
apiKeystring-The API key created by installing the Checkly integration in Incident.io
payloadstringIncludes a title, description, deduplication key, and moreThe payload sent to the target URL when an alert is triggered

Incident.io Alert Channel Options

name
string
required
Friendly name to recognise the integration.
url
string
required
The target URL created by installing the Checkly integration in Incident.io.
apiKey
string
required
The API key created by installing the Checkly integration in Incident.io.
payload
string
The payload sent to the target URL when an alert is triggered. If this is not specified, we’ll send a default payload with a basic title, description, etc.We have handlebar helpers and variables available for building custom payloads.Here’s an example payload, using the default one that we provide:
new IncidentioAlertChannel('incidentio-channel-1', {
  name: 'ACME alerts',
  url: 'https://api.incident.io/v2/alert_events/checkly/xxxxx',
  apiKey: 'xxxxx45afe73',
  payload: `
    {
      "title": "{{ALERT_TITLE}}",
      "description": "{{ALERT_TITLE}} at {{STARTED_AT}} in {{RUN_LOCATION}} {{RESPONSE_TIME}}ms\\n\\n{{#if AI_ANALYSIS_CLASSIFICATION}}# AI Analysis\\n\\n{{AI_ANALYSIS_CLASSIFICATION}}\\n\\n{{{AI_ANALYSIS_ROOT_CAUSE}}}\\nRead full analysis: {{AI_ANALYSIS_LINK}}{{/if}}",
      "deduplication_key": "{{CHECK_ID}}",
      "metadata": {
        {{#if AI_ANALYSIS_CLASSIFICATION}}
        "ai_analysis_classification": "{{AI_ANALYSIS_CLASSIFICATION}}",
        "ai_analysis_root_cause": "{{{AI_ANALYSIS_ROOT_CAUSE}}}",
        "ai_analysis_link": "{{AI_ANALYSIS_LINK}}",
        {{/if}}
        "alertType": "{{ALERT_TYPE}}",
        "check_result_id": "{{CHECK_RESULT_ID}}",
        "resultLink": "{{RESULT_LINK}}"
      },
      {{#contains ALERT_TYPE "RECOVERY"}}
      "status": "resolved"
      {{else}}
      "status": "firing"
      {{/contains}}
    }
    `
})

General Alert Channel Options

These options are valid for all alert channels types.
sendRecovery
boolean
Whether to send notifications when checks recover from a failed or degraded state. Default value is true.
sendFailure
boolean
Whether to send notifications when checks fail. Default value is true.
sendDegraded
boolean
Whether to send notifications when checks become degraded. Default value is false.
sslExpiry
boolean
Whether to send notifications when a SSL/TLS certificate is about to expire. Default value is false.
new EmailAlertChannel("email-channel-1", {
  address: "alerts@acme.com",
  sslExpiry: true,
  sslExpiryThreshold: 30, // Alert 30 days before expiry
})
Learn more about SSL alerts.
sslExpiryThreshold
number
Number of days before the SSL/TLS certificate expiry date to send notifications. Only relevant when sslExpiry is enabled. Default value is 30.
new EmailAlertChannel("email-channel-1", {
  address: "alerts@acme.com",
  sslExpiry: true,
  sslExpiryThreshold: 30, // Alert 30 days before expiry
})
Learn more about SSL alerts.