Overview
A Slack notification channel sends SigNoz alerts to Slack through an Incoming Webhook URL. Slack posts every alert to the channel that the webhook is bound to. You can then reuse this notification channel in any alert rule.
This page covers the webhook setup, channel creation in the SigNoz UI, validation, Slack group mentions, and the API equivalent.
Prerequisites
Before you configure Slack as a notification channel, you need:
- Incoming Webhook: Follow the steps outlined in sending messages to Slack using Incoming Webhooks to set up an Incoming Webhook in your Slack workspace. Create it from a Slack app, not from Workflow Builder. The URL must start with
https://hooks.slack.com/services/. - SigNoz Version: v0.5.0 or later
Access Alert Channels
To manage your alert channels in SigNoz:
- Navigate to
Alerts > Notification Channelswithin SigNoz. This tab displays a list of configured alert channels.

Create a Notification Channel
To create a new Slack notification channel in SigNoz, follow these steps:
- Navigate to
Alerts > Notification Channelsand click on+ New Alert Channel. - Enter a Name for the channel and select Slack as the Type.
- Webhook URL: Paste the Incoming Webhook URL generated in Slack.
- Recipient: Optional. For an app Incoming Webhook this does not change where the alert lands (see the note below); the webhook always posts to its bound channel.
- Title and Description: Keep the default templates, or edit them to change the message that SigNoz posts.

Validate
- On the channel form, click Test. SigNoz posts a test alert through the webhook.
- Open the Slack channel that the webhook is bound to. This is the channel that was selected when the Slack app was installed. A test alert message from SigNoz appears within a few seconds.
- Click Save. The channel now appears in the list under
Alerts > Notification Channels.
If no message reaches Slack, see Troubleshooting.
Receive Alerts in Slack
After you save the channel, select it in any alert rule. SigNoz then posts a message to the webhook's bound Slack channel each time that alert rule fires.

Mention Slack Groups in Alerts
To tag a Slack user group in an alert, use the group mention format below. A plain group name stays plain text and notifies nobody.
Slack Group Mention Format
Use this format, where GROUP_ID is the unique identifier of your Slack group:
<!subteam^GROUP_ID>Find Your Group ID
To find the Group ID for your Slack group:
- In Slack, go to your group's settings
- The Group ID will be displayed in the group information
- Copy this ID and use it in the format above
Example
If your group ID is S1234567890, your mention should look like:
<!subteam^S1234567890>You can include this format in the Title or Description fields when creating or editing a notification channel. The mention has to sit in the message body, because that is what Slack renders. The Description field maps to text in the API payload.
For more detailed information about Slack message formatting, refer to the official Slack documentation on mentioning groups.
Edit a Notification Channel
To edit an existing Slack notification channel:
- Navigate to
Alerts > Notification Channelsand click theEditaction for the channel. - You can edit the Slack webhook URL and other parameters. However, note that the channel name and type are not editable after creation.

Turn Off Resolved Alerts
The Send resolved alerts toggle is switched on by default, on both the create form and the edit form. To stop receiving resolved alerts for an existing channel, follow these steps:
- Navigate to
Alerts > Notification Channels. - Click the
Editaction for the channel. - Toggle off Send resolved alerts and click
Save.

Configure Programmatically
You can also create the Slack notification channel with the SigNoz API instead of the UI.
API Endpoint: POST /api/v1/channels
To create a new Slack notification channel, send a POST request to the /api/v1/channels endpoint with the following curl command.
curl '<your-signoz-cloud-url>/api/v1/channels' \
-H 'SIGNOZ-API-KEY: <your-api-key>' \
-H 'Content-Type: application/json' \
--data-raw '{
"name": "Prod Critical Alerts - Slack",
"slack_configs": [
{
"send_resolved": true,
"api_url": "https://hooks.slack.com/services/<your-webhook-path>",
"channel": "#prod-critical-alerts",
"title": "[{{ .Status | toUpper }}{{ if eq .Status \"firing\" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .CommonLabels.alertname }} for {{ .CommonLabels.job }}\n {{- if gt (len .CommonLabels) (len .GroupLabels) -}}\n {{\" \"}}(\n {{- with .CommonLabels.Remove .GroupLabels.Names }}\n {{- range $index, $label := .SortedPairs -}}\n {{ if $index }}, {{ end }}\n {{- $label.Name }}=\"{{ $label.Value -}}\"\n {{- end }}\n {{- end -}}\n )\n {{- end }}",
"text": "{{ range .Alerts -}}\n *Alert:* {{ .Labels.alertname }}{{ if .Labels.severity }} - {{ .Labels.severity }}{{ end }}\n\n *Summary:* {{ .Annotations.summary }}\n *Description:* {{ .Annotations.description }}\n *RelatedLogs:* {{ if gt (len .Annotations.related_logs) 0 -}} View in <{{ .Annotations.related_logs }}|logs explorer> {{- end}}\n *RelatedTraces:* {{ if gt (len .Annotations.related_traces) 0 -}} View in <{{ .Annotations.related_traces }}|traces explorer> {{- end}}\n\n *Details:*\n {{ range .Labels.SortedPairs }} • *{{ .Name }}:* {{ .Value }}\n {{ end }}\n {{ end }}"
}
]
}'Verify these values:
<your-signoz-cloud-url>: The base URL of your SigNoz instance, for examplehttps://<your-organization>.signoz.cloud.<your-api-key>: An API key fromSettings > Service Accounts. See Service Accounts to create one.<your-webhook-path>: The path of your Slack Incoming Webhook URL, which followshttps://hooks.slack.com/services/.
Request Body Attributes:
| Field | Type | Description |
|---|---|---|
name | string | The name of the receiver/channel. Required; must be unique in all the config. |
slack_configs | array | List of Slack configurations. |
slack_configs[].send_resolved | boolean | Whether to send notifications when an alert is resolved. |
slack_configs[].api_url | string | The Slack Incoming Webhook URL. Mandatory. Must be a valid URL. |
slack_configs[].channel | string | The channel or user to send notifications to. Slack ignores this value for an app Incoming Webhook, which always posts to its bound channel. |
slack_configs[].title | string | Templated title of the message. Go templates are supported. |
slack_configs[].text | string | Templated text of the message. Go templates are supported. |
Troubleshooting
If you encounter issues:
- Check the Webhook URL: Make sure that the webhook URL is entered correctly in SigNoz.
- Alerts never arrive and the URL contains
/triggers/: That URL is a Workflow Builder webhook, which cannot post a SigNoz alert message. Create an app Incoming Webhook (https://hooks.slack.com/services/...) and paste that URL instead. - Check Slack Permissions: Make sure that the webhook has permission to post to the target channel.
Get Help
If you need help with the steps in this topic, please reach out to us on SigNoz Community Slack. If you are a SigNoz Cloud user, please use in product chat support located at the bottom right corner of your SigNoz instance or contact us at cloud-support@signoz.io.