---
title: "Anomity Integrates with Slack | Anomity Blog"
description: "The Anomity Slack app: install it once, pick channels from a list, and get AI security findings and digests in Slack, with delivery health you can see."
url: "https://anomity.ai/blog/anomity-slack-app-integration/"
source: html
---

Anomity Integrates with Slack

Contents

- Why a Slack app, and why now
- What it sends
- How install works
- A channel that stops delivering now says so
- Bursts arrive as one message
- Since launch
- How Anomity and Slack fit together
- Frequently asked questions

0%

7 min read

Share

- X.com

- LinkedIn

- Email

- Copy URL

- Copy markdown

[← Back to blog](https://anomity.ai/blog/)

- Home

- Blog

- Anomity Integrates with Slack

![Anomity robot illustrating Anomity Integrates with Slack]

Company

# Anomity Integrates with Slack

Anomity Research
Anomity Research
·
Aug 25, 2026
·
7 min read

Share: Copied

TL;DR

- There is now an Anomity Slack app . Install it once into your workspace from the Integrations section of Settings, then pick channels from a list. No incoming webhooks to create and no URLs to paste.
- A picked channel is an ordinary Anomity notification channel, so every existing rule, trigger, filter and digest works with it unchanged: self-modifying agents, exposed secrets, shadow AI accounts, hook blocks, new AI apps and the daily and weekly digests.
- Channels now show whether they are actually delivering , not just whether the last Test worked. Anomity checks the install on its own every few hours, so a removed app shows as Reconnect needed instead of silence.
- Bursts are rolled up : when more than three notices for one rule arrive together, the channel gets one summary message instead of a wall of cards, and posts are paced to stay inside Slack's rate limits.
- The bot asks for four scopes: post messages, post to public channels, and list public and private channels. Private channels need the bot invited first. The pasted-webhook path stays available for workspaces that will not approve a third-party app.
- Since launch, the install can also start from Slack's side, and the channel picker handles very large workspaces and channels it cannot list, by ID or link.

Anomity now has a **Slack app**. Install it once into your workspace, pick channels from a list, and Anomity findings, alerts and digests arrive where your security team already talks. It is available today to every organization, from the Slack card in the Integrations section of Settings in the Anomity console.

This post covers what the app sends, how install works and what it is allowed to do, and the part that took most of the work: making sure a channel that stopped receiving alerts says so.

## Why a Slack app, and why now

Slack notifications already worked. Configuring them did not. To get findings into Slack, an admin had to create an incoming webhook in Slack, copy its URL and paste it into Anomity, once per channel, and repeat that whenever a channel changed. The Integrations catalog had shown a card called Slack App for months. This release makes it true.

It is an install path, not a new notification system. Everything downstream already existed: the notification rules and their seeded templates, the triggers and filters, the daily and weekly digests, and the generic webhook channel the same rules post to. A channel picked through the app becomes one more notification channel, which is why every rule an organization already has works with it on day one.

## What it sends

Whatever your rules match. The seeded templates are a good map of what security teams turn on first:

Rule template What lands in Slack

**Agent modified its own configuration** An agent changed its own settings in the same session, the highest-signal finding Anomity raises.

**Secret or API key exposed** A credential sitting in an agent config, or pasted or uploaded to an AI site. The message names the type and location; the value is redacted on the endpoint and never sent.

**Personal / shadow account on an AI site** Someone using a personal or unmanaged account on an AI service, from the Browser Sensor and the device-side account check.

**Hook blocked an action** An agent hook denied a tool call before it ran.

**MCP supply-chain risk** An MCP server with a known-vulnerable dependency or a command-injection pattern.

**High-risk AI application discovered** A new high- or critical-risk AI app in cloud discovery.

**Daily and weekly digest** New findings by severity, open total, how many are past their SLA, first-seen MCP servers, AI tools and skills, and enrolled devices.

Single events arrive as Block Kit cards with a severity marker, the event name, a one-line description, the device and the rule that matched, and a link back to the finding in the console. Rules can be narrowed by severity, policy type and device tag, so the contractor fleet can page one channel and the platform team's machines another. Templates ship disabled, and the louder ones, such as every new MCP server during a rollout, are left for teams that want them. The same findings can go to [Google Chat](https://anomity.ai/blog/anomity-google-chat-integration/) for teams that work there, and to a tracker such as [Jira](https://anomity.ai/blog/anomity-jira-integration/), [ClickUp](https://anomity.ai/blog/anomity-clickup-integration/) or [Zendesk](https://anomity.ai/blog/anomity-zendesk-integration/) when they need an owner and a due date rather than a ping.

## How install works

- As an Anomity admin, open Settings, go to the Integrations section and choose Connect Slack workspace on the Slack card.
- Slack shows the permissions the app requests. Approve them for your workspace. If your Slack admins review third-party apps, Slack sends them a request instead of connecting straight away.
- Back in Anomity, choose Add Slack channel , pick a channel from the list and add it. Repeat for as many channels as you like.
- Send a test notification to the channel, then select it on any notification rule.

The app asks for four bot scopes: **chat:write** to post, **chat:write.public** to post to public channels without an invite, and **channels:read** and **groups:read** to list public and private channels for the picker. It does not read messages. The bot token is stored encrypted, the install flow is bound to the admin's session so it cannot be completed from someone else's browser, and a Slack workspace can be connected to only one Anomity organization. Private channels need the bot invited first, and the picker says so next to each one. Disconnecting revokes the token at Slack and removes the channels it created.

The pasted incoming-webhook path is still on the same card, under a disclosure, for workspaces whose Slack administrators will not approve a third-party app. Existing webhook channels keep working with nothing to migrate.

## A channel that stops delivering now says so

Building the install surfaced a failure mode we did not like: something stopped working and the console said nothing. A Slack channel the bot had been removed from, or one that had been archived, failed every alert quietly, while the console still showed the last successful Test. On a quiet fleet, no alerts and broken alerts look the same. We fixed that before shipping.

- Real delivery outcomes. Every channel now records the result of actual deliveries, not only of the Test button, so a failing channel shows the failure on its own row.
- The install checks itself. Every six hours Anomity verifies that the app is still installed and its token accepted. If not, the card shows Reconnect needed within hours, rather than you finding out when the next finding never arrives. Only an authorization failure changes that status, so a passing Slack outage does not make the badge flicker.
- A partial grant is recorded, not refused. If an install was approved with fewer scopes than the app needs, Anomity records and audits the shortfall rather than rejecting the install, so whatever was granted keeps working.
- The right fix for the right fault. One archived channel marks that channel, not the workspace, so nobody is sent to reinstall the app to fix a problem reinstalling cannot fix.

The release also fixed a bug that had made scheduled digests fail for channels added through the app while per-finding alerts to the same channel worked, which is exactly why it had been hard to spot.

## Bursts arrive as one message

A machine that comes online with a lot to report used to post one card per finding. Now, when more than three notices for the same rule and channel arrive together, Anomity posts one roll-up instead: the count, the breakdown by severity, the first ten items, and a link to review them in the console. Anything left is paced at roughly one message per second per channel, and a Slack rate-limit response is retried once after the wait Slack asks for. A socket timeout is not retried, because Slack's post API has no idempotency key and a retry could post twice. Roll-ups apply to events that arrive as a batch, such as a burst of hook decisions from one device; violations raised one at a time are still posted one at a time.

## Since launch

Two follow-ups extended the app in September, and both are part of it today:

- Install from Slack. An administrator who finds the Anomity app in Slack can start the install there instead of inside the console, then finish by signing in to Anomity as an admin. Binding a workspace still requires an Anomity admin, whichever side the install starts from.
- Large workspaces. The channel list reads up to 2,000 channels, and it now says so when a workspace has more, instead of showing a tidy alphabetical list that silently lacks the channel you want. A new Add by ID or link field looks up any channel directly, which also reaches Slack Connect and Enterprise Grid shared channels that never appear in a single workspace's list. Archived channels are refused before they can be saved.

Out of scope for now: interactive buttons, slash commands, an App Home and threaded updates to a finding. Each needs Slack to call into Anomity, which is a larger surface than an app that only posts.

## How Anomity and Slack fit together

Slack is where a lot of incident response actually happens, and the first minutes of an [AI agent incident](https://anomity.ai/blog/ai-agent-incident-response-playbook/) are usually a message in a channel. What matters is that the message is right: one card for a self-modifying agent, one summary for a burst, nothing for the noise, and a visible warning when the pipe itself breaks. A pasted key reaching an AI site, the problem we described in [what employees paste into AI tools](https://anomity.ai/blog/shadow-ai-data-exposure-what-employees-paste/), is the kind of finding that should reach a human in minutes, not wait for someone to open a dashboard.

Anomity covers the endpoint, where AI agents run: the Endpoint Sensor inventories agents, MCPs, extensions, plugins, skills, secrets, hooks, CLIs and local LLM runtimes; the Browser Sensor covers AI web services and the accounts used in them; and cloud discovery reads the OAuth grants held by AI applications. On agents that expose a hook, Anomity decides allow, deny or log before a tool call runs. For a durable record alongside the chat, the same events can be forwarded to [Datadog Cloud SIEM](https://anomity.ai/blog/anomity-datadog-cloud-siem-integration/). Anomity complements the network, EDR, DLP, GRC and SIEM stack, collects metadata only, redacts secret values on the endpoint, and is SOC 2 Type II attested. To see it post your own fleet's findings into your own workspace, [book a 30-minute demo](https://anomity.ai/#early-access).

Share: Copied

## Frequently asked questions

What does the Anomity Slack app do?
It delivers Anomity findings, alerts and scheduled digests to the Slack channels you choose. You install one Anomity-owned app into your own workspace, then add channels from a picker. Each channel becomes a notification channel in Anomity, so it can be selected on any notification rule alongside webhooks and other destinations.

What permissions does the Slack app ask for?
Four bot scopes: chat:write to post messages, chat:write.public to post to public channels without being invited, and channels:read and groups:read to list public and private channels for the picker. It does not read message history. Anomity stores the resulting bot token encrypted with AES-256-GCM, and a Slack workspace can be bound to only one Anomity organization.

Can the app post to private channels?
Yes, once the bot has been invited to the channel. The picker marks private channels the bot is not a member of with a reminder to invite it first, because Slack rejects a post to a private channel the bot cannot see, and it answers that case exactly as it answers a channel that does not exist.

What does Anomity send to Slack?
Whatever your notification rules match. Single events arrive as Block Kit cards with a severity marker, the policy or event name, a one-line description, the device and rule, and a link back to the finding in the console. Several events for one rule arriving together are rolled up into a single summary. Scheduled digests summarize new findings by severity, open findings, findings past their SLA, first-seen MCP servers, AI tools and skills, and enrolled device count.

How do I know a Slack channel is still working?
Each channel records the outcome of real deliveries, not only of the Test button, so a channel the bot was removed from, or an archived one, shows the failure on its row. Separately, Anomity re-checks the install every six hours. If the app was removed or its token is no longer accepted, the Slack card shows Reconnect needed. A timeout or a passing Slack outage does not change that status, so it only flips when something is actually wrong.

Do I still need incoming webhooks?
No, but they remain available. The pasted incoming-webhook path is kept on the same card as a fallback for workspaces whose Slack administrators will not approve a third-party app. Existing webhook channels keep working with no migration.

My workspace has thousands of channels and I cannot find mine in the picker. What do I do?
Paste the channel's ID or link into the Add by ID or link field and press Find. The picker lists up to 2,000 channels and says so when a workspace has more, and a direct lookup also reaches channels a single-workspace install never sees in a list, such as Slack Connect or Enterprise Grid shared channels. Archived channels are refused before they can be saved, since Slack rejects messages to them.

What happens when I disconnect Slack?
Anomity revokes the bot token at Slack, deletes the install, and removes the Slack app channels it created for your organization. The connect and disconnect are both recorded in the Anomity audit trail.

## Related posts

[Company ### Anomity Integrates with Google Chat Anomity now posts AI agent findings and digests to Google Chat spaces as cards, linked to your org by a one-time claim code rather than an email domain. Anomity Research · Sep 11, 2026 · 5 min](https://anomity.ai/blog/anomity-google-chat-integration/)

[Company ### Anomity Integrates with Zapier Anomity on Zapier works both ways: findings start Zaps and Zaps can resolve findings, and Anomity finds the Zaps that feed company data to AI. Anomity Research · Oct 21, 2026 · 10 min](https://anomity.ai/blog/anomity-zapier-integration/)

[Company ### Anomity Integrates with Zendesk Anomity now opens Zendesk tickets for AI security findings as internal notes, over OAuth client credentials, and solves or reopens them as findings change. Anomity Research · Sep 10, 2026 · 6 min](https://anomity.ai/blog/anomity-zendesk-integration/)

## Structured data

```json
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "Anomity Integrates with Slack",
  "description": "The Anomity Slack app: install it once, pick channels from a list, and get AI security findings and digests in Slack, with delivery health you can see.",
  "datePublished": "2026-08-25",
  "dateModified": "2026-08-25",
  "author": {
    "@type": "Person",
    "name": "Anomity Research",
    "jobTitle": "Anomity Research"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Anomity",
    "url": "https://anomity.ai/",
    "sameAs": [
      "https://www.linkedin.com/company/anomity",
      "https://github.com/Anomity-ai",
      "https://www.wikidata.org/wiki/Q140763940"
    ],
    "logo": {
      "@type": "ImageObject",
      "url": "https://anomity.ai/anomity-logo.png"
    }
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://anomity.ai/blog/anomity-slack-app-integration/",
    "relatedLink": [
      "https://anomity.ai/blog/anomity-google-chat-integration/",
      "https://anomity.ai/blog/anomity-zapier-integration/",
      "https://anomity.ai/blog/anomity-zendesk-integration/"
    ]
  },
  "image": {
    "@type": "ImageObject",
    "url": "https://anomity.ai/assets/blog/covers/anomity-slack-app-integration.png",
    "width": 1200,
    "height": 630
  },
  "articleSection": "Company",
  "wordCount": 1378,
  "timeRequired": "PT7M",
  "inLanguage": "en",
  "url": "https://anomity.ai/blog/anomity-slack-app-integration/",
  "keywords": "Slack app for AI security alerts, Slack, Integrations, Notifications, Alerting, Security Operations, Agent Governance, Shadow AI"
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What does the Anomity Slack app do?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "It delivers Anomity findings, alerts and scheduled digests to the Slack channels you choose. You install one Anomity-owned app into your own workspace, then add channels from a picker. Each channel becomes a notification channel in Anomity, so it can be selected on any notification rule alongside webhooks and other destinations."
      }
    },
    {
      "@type": "Question",
      "name": "What permissions does the Slack app ask for?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Four bot scopes: chat:write to post messages, chat:write.public to post to public channels without being invited, and channels:read and groups:read to list public and private channels for the picker. It does not read message history. Anomity stores the resulting bot token encrypted with AES-256-GCM, and a Slack workspace can be bound to only one Anomity organization."
      }
    },
    {
      "@type": "Question",
      "name": "Can the app post to private channels?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, once the bot has been invited to the channel. The picker marks private channels the bot is not a member of with a reminder to invite it first, because Slack rejects a post to a private channel the bot cannot see, and it answers that case exactly as it answers a channel that does not exist."
      }
    },
    {
      "@type": "Question",
      "name": "What does Anomity send to Slack?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Whatever your notification rules match. Single events arrive as Block Kit cards with a severity marker, the policy or event name, a one-line description, the device and rule, and a link back to the finding in the console. Several events for one rule arriving together are rolled up into a single summary. Scheduled digests summarize new findings by severity, open findings, findings past their SLA, first-seen MCP servers, AI tools and skills, and enrolled device count."
      }
    },
    {
      "@type": "Question",
      "name": "How do I know a Slack channel is still working?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Each channel records the outcome of real deliveries, not only of the Test button, so a channel the bot was removed from, or an archived one, shows the failure on its row. Separately, Anomity re-checks the install every six hours. If the app was removed or its token is no longer accepted, the Slack card shows Reconnect needed. A timeout or a passing Slack outage does not change that status, so it only flips when something is actually wrong."
      }
    },
    {
      "@type": "Question",
      "name": "Do I still need incoming webhooks?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No, but they remain available. The pasted incoming-webhook path is kept on the same card as a fallback for workspaces whose Slack administrators will not approve a third-party app. Existing webhook channels keep working with no migration."
      }
    },
    {
      "@type": "Question",
      "name": "My workspace has thousands of channels and I cannot find mine in the picker. What do I do?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Paste the channel's ID or link into the Add by ID or link field and press Find. The picker lists up to 2,000 channels and says so when a workspace has more, and a direct lookup also reaches channels a single-workspace install never sees in a list, such as Slack Connect or Enterprise Grid shared channels. Archived channels are refused before they can be saved, since Slack rejects messages to them."
      }
    },
    {
      "@type": "Question",
      "name": "What happens when I disconnect Slack?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Anomity revokes the bot token at Slack, deletes the install, and removes the Slack app channels it created for your organization. The connect and disconnect are both recorded in the Anomity audit trail."
      }
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://anomity.ai/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Blog",
      "item": "https://anomity.ai/blog/"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Anomity Integrates with Slack",
      "item": "https://anomity.ai/blog/anomity-slack-app-integration/"
    }
  ]
}
```
