Skip to content
Last9
Book demo

Notification Channels

How to use Slack, PagerDuty, Opsgenie, MS Teams, Flock, Google Chat, Telegram, Jira, Zenduty, webhooks, and email for getting alert notifications.

Notification Channels are destinations for Last9 to send alert notifications. We support the following channel types: Slack, PagerDuty, Opsgenie, Webhook, and Email. The Webhook channel supports auto-detection for MS Teams, Flock, Google Chat, Telegram, Jira, and Zenduty.

Adding a Notification Channel

  1. Navigate to Notification Channels and click Add

  2. Provide the following details:

    Add a new Notification Channel

    • Channel Name: Descriptive name to easily identify channel destination
    • Channel: Choose a channel from the supported integrations list
    • Webhook/API Key/Email: Provide the relevant details for the selected channel
      • Slack: See how to send messages using Incoming Webhooks. Setup guide
      • PagerDuty: See how to use the PagerDuty Events V2 API
      • Email: Enter the email IDs to be notified
      • Opsgenie: Enter the API key
      • Webhook: Enter the webhook URL. Last9 auto-detects and formats for the following platforms:
        • MS Teams (.webhook.office.com) - Setup guide
        • Flock (api.flock.com, flock.co) - Setup guide
        • Google Chat (chat.googleapis.com) - Setup guide
        • Telegram (api.telegram.org) - Requires TELEGRAM_CHAT_ID header. Setup guide
        • Jira (atlassian.net) - Requires JIRA_PROJECT_NAME_KEY header. Setup guide
        • Zenduty (events.zenduty.com) - Setup guide
    • Send Resolved: Enable if you want to be notified when an alert has been resolved, useful for automation of incident management
  3. If you’ve selected Slack as the channel, you can also send a test message to the configured channel by clicking on Test Config

    Details of a Notification Channel

  4. Click on Save to enable this channel. This channel can now be used in Alert Groups or Scheduled Search to start receiving notification

Usage of a Notification Channel

Usage of a Notification Channel

In Notification Channels, you can quickly understand which configured channels are being used and by how many alert groups or scheduled searches.

To view which alert groups or scheduled searches are using a particular channel, click on the relevant channel’s Usage link to view the list. From here, you can also jump to any of the alert groups or scheduled searches.


Notification Payloads

In case you want to further use the generated JSON payloads for custom incident details, automation and workflows, alert enrichment, or integrating with other tools, refer to the following mapping for PagerDuty and Opsgenie.

PagerDuty

PagerDuty fieldTypeDescription
payloadobject
payload.summarystringTitle for the incident
payload.timestamptimestampThe ending time of this alert, in ISO 8601 format
payload.severitystringcritical / warning for alerts marked as breach/threat in alert rule
payload.sourcestringDedup key for the incident
payload.componentstringEmpty
payload.groupstringDedup key for the incident
payload.classstringAlert Rule Type
payload.custom_detailsobjectDescribed below
routing_keystringPagerDuty integration key
event_actionstring’trigger’ for active notifications, ‘resolve’ for resolved notifications
dedup_keystringDedup key for the incident
clientstring”Last9 Dashboard”
client_urlstringLink to health dashboard for the alert in Last9
linksarray of objectsEmpty array
imagesarray of objectsEmpty array

Custom Details

  • alert_condition - Condition set on alert. Static alerts, it is of the format.expr > 10 based on the threshold configured. For pattern-based alerts, it is of the format algo_type(tunable, expr). For example, for a high spike alert set with tunable 3, this would be high_spike(3, expr)
  • algo_type - Type of alert (static_threshold, increasing_changepoint etc)
  • client_url - Link to the health dashboard for this alert on Last9
  • description - Description of the alert. If a description is provided while configuring the rule, it appears here. Otherwise, a default description based on the algorithm, indicator, and entity is shown
  • start - Starting time of this alert, in ISO 8601 format
  • end- Ending time of this alert, in ISO 8601 format
  • expression - Name of the indicator
  • entity_name - Entity name
  • entity_type - Entity type
  • entity_team - Entity team. Is None if not assigned
  • entity_tier - Entity tier. Is None if not assigned
  • entity_workspace - Entity workspace. Is None if not assigned
  • entity_namespace - Entity namespace. Is None if not assigned
  • severity - Severity of the alert (breach/ threat)
  • notification_call - Whether this alert is sent for the first time or repeated (first/ repeat)
  • runbook - Link to the runbook for this alert (has to be configured while setting up alert). This key is omitted if the runbook isn’t configured
  • If the entity under alert has tags associated with it, they are included in custom details as tag_<tag_name> = true
  • time_in_alert - Duration for which this alert was observed. E.g., 8 in 10 minutes.

Opsgenie

Opsgenie fieldTypeDescription
messagestringTitle for the incident
aliasstringDedup key for the incident
descriptionstringDescription of the alert. If a description is provided while configuring the rule, it appears here. Otherwise, this field is omitted
tagsarray of stringsTags associated with the entity
actionsarray of strings[“Debug”]
detailsobjectDescribed below
entitystringnull
sourcestringLast9 Dashboard
notestringA string description of the alert, along with the health dashboard link for the alert
respondersarray of objectsNot used
visibleToarray of objectsNot used
prioritystringNot used
userstringNot used

Details

  • alert_condition: Condition set on alert. Static alerts, it is of the format.expr > 10 based on the threshold configured. For anomaly alerts, it is of the format algo_name(tunable, expr). For example, for a high spike alert set with tunable 3, this would be high_spike(3, expr)
  • algorithm: Type of alert (static_threshold, increasing_changepoint etc)
  • component: null
  • last9_dashboard: Link to the health dashboard for this alert
  • expression: Name of the indicator
  • service: Name and type of the entity
  • source: Dedup key for this incident
  • entity_name: Entity name
  • entity_type: Entity type
  • entity_team: Entity team. Is None if not assigned
  • entity_tier: Entity tier. Is None if not assigned
  • entity_workspace: Entity workspace. Is None if not assigned
  • entity_namespace: Entity namespace. Is None if not assigned
  • severity: Severity of the alert (breach/ threat)
  • notification_call: Whether this alert is sent for the first time or repeated (first/ repeat)
  • runbook: Link to the runbook for this alert (has to be configured while setting up alert). This key is omitted if the runbook isn’t configured

Webhook

FieldTypeDescription
routing_keystringThe full generic webhook URL generated in Last9. This is used to send alerts to your configured endpoint
event_actionstringThe type of event. Can be trigger, acknowledge or resolve
dedup_keystringDeduplication key for correlating triggers and resolves. The maximum permitted length of this property is 255 characters
payload.summarystringA brief text summary of the event, used to generate the summaries/titles of any associated alerts
payload.sourcestringThe unique location of the affected system, preferably a hostname or FQDN
payload.severitystringThe perceived severity of the status the event is describing with respect to the affected system. This can be critical, error, warning or info
payload.timestamptimestampThe time at which the emitting tool detected or generated the event
payload.componentstringComponent of the source machine that is responsible for the event, for example mysql or eth0
payload.groupstringLogical grouping of components of a service, for example app-stack
payload.classstringThe class/type of the event, for example ping failure or cpu load
payload.custom_detailsobjectAdditional details about the event and affected system
imagesarray of objectsList of images to include
linksarray of objectsList of links to include

Flock

Flock notifications use FlockML for rich formatting. When a webhook URL containing api.flock.com or flock.co is detected, Last9 automatically formats the payload for Flock.

FieldDescription
flockmlFlockML-formatted message containing all alert details

The FlockML message includes:

  • Event Type: TRIGGER or RESOLVED with emoji indicator
  • Summary: Alert title with severity icon
  • Severity: BREACH or THREAT level
  • Component: Affected service or component
  • Class: Type of alert (e.g., Static Threshold, SLO Breach)
  • Timestamp: Formatted date and time
  • Custom Details: Additional context (service, environment, etc.)
  • Inspect Link: Direct link to view the alert in Last9

For detailed setup instructions, see the Flock Integration guide.

Google Chat

Google Chat notifications use the Cards v2 API for rich formatting. When a webhook URL containing chat.googleapis.com is detected, Last9 automatically formats the payload for Google Chat.

FieldDescription
cardsV2Array of Card objects with rich formatting

Each card includes:

  • Header: Alert summary with subtitle showing severity, class, and timestamp
  • Sections: Organized alert details with decorated text widgets
  • Button: “Inspect in Last9” link to view the alert

Severity Indicators

SeverityIcon
Breach🔴
Threat🟠

For detailed setup instructions, see the Google Chat Integration guide.

Telegram

Telegram notifications use HTML-formatted messages. When a webhook URL containing api.telegram.org is detected, Last9 automatically formats the payload for Telegram.

FieldTypeDescription
chat_idstringThe Telegram chat ID (from webhook headers)
textstringHTML-formatted message content
parse_modestringAlways “HTML”

The message includes:

  • Header: Event type (TRIGGER/RESOLVED) with severity icon
  • Alert Details: Severity, component, class, timestamp
  • Custom Details: Additional context fields
  • Inspect Link: Direct link to Last9 dashboard

For detailed setup instructions, see the Telegram Integration guide.

Jira

Jira integration creates issues automatically when alerts are triggered. When a webhook URL containing atlassian.net is detected, Last9 formats the payload using Atlassian Document Format (ADF).

FieldTypeDescription
fields.project.keystringJira project key
fields.summarystringAlert summary (max 255 chars)
fields.descriptionobjectADF-formatted description with alert details
fields.issuetype.namestringAlways “Task”
fields.labelsarrayLabels including dedup key and “last9-automated-alert”
fields.priority.namestringMapped priority (if enabled)

Priority Mapping

Last9 SeverityJira Priority
BreachHighest
ThreatHigh

Features

  • Rich Description: ADF-formatted content with sections for alert details, custom fields, and raw JSON
  • Automatic Labels: Dedup key and “last9-automated-alert” for easy filtering
  • Resolution Comments: When alerts resolve, a comment is added to the issue
  • Status Updates: Optionally transition issues to resolved status
  • Deduplication: Only creates issues for first-time alerts (not repeats)

For detailed setup instructions, see the Jira Integration guide.

Zenduty

Zenduty notifications use a structured payload format for incident management. When a webhook URL containing zenduty.com is detected, Last9 automatically formats the payload for Zenduty.

FieldTypeDescription
titlestringAlert summary
alert_typestringSeverity level (critical, warning) or “resolved”
messagestringAlert summary text
summarystringDetailed description of the alert
payloadobjectFull alert payload with all context
urlsarrayLink to view alert in Last9 Dashboard
entity_idstringDeduplication key for correlating alerts

Features

  • Auto-Detection: URLs containing zenduty.com are automatically detected
  • Rich Context: Includes severity, description, and dashboard links
  • Alert Correlation: Uses entity_id to correlate trigger and resolve events
  • Resolution Support: Automatically marks incidents as resolved when alerts clear

For detailed setup instructions, see the Zenduty Integration guide.


Troubleshooting

Please get in touch with us on Discord or Email if you have any questions.