> For the complete documentation index, see [llms.txt](https://docs.flxbl.io/flxbl/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flxbl.io/flxbl/codev/integrations/notifications/slack.md).

# Slack

The Slack notifications integration posts build and release events to a Slack channel. When a build completes on merge, a build fails, or a release is deployed, codev sends a message to the channel behind a Slack **incoming webhook** — with the repository, commit, release candidates, work items, and a button linking back to the run.

You configure it under **Settings > Organization > Integrations > Slack**. Only organization owners can manage it.

## What gets posted

codev sends a message for three events:

| Event                | When it fires                   | Message                                                        |
| -------------------- | ------------------------------- | -------------------------------------------------------------- |
| **Build succeeded**  | A build completes after a merge | ✅ Commit, release candidates, work items, **View build**       |
| **Build failed**     | A build fails                   | ❌ The same fields, **View failed build**                       |
| **Release deployed** | A release finishes deploying    | 🚀 Release name, environment, domain, status, **View release** |

The **Notify on** setting controls which of these are delivered:

* **All builds & releases** — every event above.
* **Failures only** — only failed builds. Successful builds and successful deployments are skipped.

<figure><img src="/files/Z8K3fFRySzzTCU2QLeFf" alt="Build and release notifications posted to a Slack channel"><figcaption><p>Build and release events posted to the configured Slack channel — each message carries the commit, release candidates, work items, and a link back to the run.</p></figcaption></figure>

## Create the incoming webhook in Slack

1. In Slack, open your workspace's app directory and create (or open) an app with **Incoming Webhooks** enabled.
2. On the app's **Incoming Webhooks** page, click **Add New Webhook to Workspace**.
3. Pick the channel the notifications should post to and click **Allow**.
4. Copy the generated webhook URL (`https://hooks.slack.com/services/…`).

The webhook URL is a channel-posting credential — anyone holding it can post to that channel. codev stores it encrypted in the integrations credential store; it is never written into project configuration or returned by project reads.

## Configure the integration in codev

1. Go to **Settings > Organization > Integrations** and open the **Slack** tile.
2. Paste the **Webhook URL**.
3. Leave **Enable notifications** on, and pick a **Notify on** mode — **All builds & releases** or **Failures only**.
4. Under **Availability**, select **Specific project** and choose the project. Notification settings are per project, so a project must be selected.
5. Click **Add Integration**.

Saving stores the webhook URL as an encrypted credential and writes the enable flag and mode to the selected project's configuration (`notifications.slack`).

<figure><img src="/files/9TS1IBqBPM8XNjf8oX0L" alt="The Slack Webhook (Notifications) integration form"><figcaption><p>The Slack integration form — webhook URL, enable toggle, notify-on mode, and the project the settings apply to.</p></figcaption></figure>

## Changing the mode later

The enable flag and mode live in the project's configuration under `notifications.slack`:

```json
{
  "notifications": {
    "slack": {
      "enabled": true,
      "mode": "failures"
    }
  }
}
```

Edit them from the project's **Update Project** dialog (the configuration editor), or re-add the integration with the new mode. Setting `enabled` to `false` stops deliveries without removing the stored webhook credential.

## Troubleshooting

* **No messages arrive** — check that the project's configuration has `notifications.slack.enabled: true` and that the integration is scoped to that project. In **Failures only** mode, successful builds and deployments are skipped by design.
* **The webhook was rotated in Slack** — re-add the integration with the new URL; the old credential is replaced.

{% content-ref url="/pages/4VSBqVSVLTcDV9wYI8lQ" %}
[Microsoft Teams](/flxbl/codev/integrations/notifications/teams.md)
{% endcontent-ref %}

{% content-ref url="/pages/GQ9RQsUxYj0j0ZcBrGUq" %}
[Integrations](/flxbl/codev/integrations/overview.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.flxbl.io/flxbl/codev/integrations/notifications/slack.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
