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.

If you pick Slack in the All types dropdown, the title changes to All Slack channels and the create button becomes New Slack Channel. For the other list controls, see Notification Channels.

Create a Notification Channel
To create a new Slack notification channel in SigNoz, follow these steps:
- Navigate to
Alerts > Notification Channelsand click New Channel. From a Slack-filtered list, click New Slack Channel to open the form with Slack already selected. - In the General section, enter a Name and select Slack as the Type. Leave Send resolved alerts on to also get a message when an alert stops firing.
- In the Connection section, paste the Incoming Webhook URL into Webhook URL. Recipient is optional: for an app Incoming Webhook it does not change where the alert lands (see the note below); the webhook always posts to its bound channel.
- In the Message section, keep the default Title and Description templates, or edit them to change the message that SigNoz posts.
- Click Save.

To leave without saving, click Discard. If you changed a field, SigNoz asks you to confirm in a Discard your changes? dialog.

Customize the Message
Beyond the title and description, a Slack channel can set the rest of what Slack calls an attachment. Title link is in the Message section of the form, and the other boxes are in the Advanced section. Every box is optional, and all of them accept Go templates, so they can read values off the alert.

| Option | What Slack does with it |
|---|---|
| Title link | Turns the title into a link. Use it to point at a dashboard or a runbook. |
| Color | The bar down the left of the message. good, warning, danger, or a hex value such as #439FE0. A template lets you colour by status. |
| Pretext | A line above the attachment, outside the coloured block. |
| Fallback text | Plain text shown wherever the attachment cannot render, such as a push notification on a phone. |
| Footer | A small line under the message, usually where the alert came from. |
Fields
Fields are a small table inside the attachment. Click Add field to add one. Each field has a title, which Slack shows in bold, and a value under it.
Short controls the layout. With it on, Slack places the field in a narrow column and can sit two of them side by side. With it off, the field takes the full width of the attachment. Use short for things like a severity or an environment, and leave it off for anything long.

Actions
Actions are buttons Slack renders under the message. Click Add action to add one. There are two kinds.
A link button needs only text and a URL. Slack shows the text and opens the URL when someone clicks it. This is the one most alerts want: a link to the runbook, the dashboard or the trace.
A callback button is handled by a Slack app rather than opening a link. It uses name and value so the app can tell which button was pressed, and it needs an app configured to receive Slack's interactivity payload. Without one, the button does nothing.
Either kind can set style, which is default, primary or danger and decides the button's colour, and confirm, which is the text of a prompt Slack shows before the action runs. Leave confirm empty for no prompt.
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 the channel, or click View in its Actions menu. - You can edit the Slack webhook URL and other parameters. The channel Name and Type cannot change after creation.
- To copy the channel ID, click the copy button next to the channel name.

Turn Off Resolved Alerts
The Send resolved alerts toggle is in the General section. It is on by default for a new channel, and the edit form shows the saved value. To stop receiving resolved alerts for an existing channel, follow these steps:
- Navigate to
Alerts > Notification Channels. - Click the channel to open it.
- In the General section, 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.