> ## Documentation Index
> Fetch the complete documentation index at: https://docs.amplify.security/llms.txt
> Use this file to discover all available pages before exploring further.

# Slack

> Agents post messages, reply in threads, react, and read channel history — as a bot account you own.

## What it's for

Telling people what an agent found, where they already are. A workflow's last step posts a run summary to a
channel; a chat agent replies in the thread where someone asked about a finding; a triage agent reads the
last day of `#security` to see what's already been discussed.

## How agents appear in Slack

Slack grants Amplify a **user token** for the bot account, not a bot-app token. That has two consequences:

* Messages and reactions appear as the bot account — its name and avatar — not as an app.
* Agents can only read channels and conversations the bot account is a **member** of. Invite it to a channel
  and agents can read and post there; leave it out and that channel doesn't exist as far as agents are
  concerned.

## Before you connect

1. Create the bot Slack account in your workspace and set its display name and avatar. See
   [the bot account](/integrations/connecting#the-bot-account).
2. Invite it to every channel agents should read or post in. It sees nothing else.
3. If your workspace requires admin approval for apps, the connect flow pauses on a Slack approval request.
   A Slack admin can approve it from **Admin → Apps → Requests to install**, or pre-approve ahead of time
   with an app-approval rule for app ID `A0C28V9SYJK` (Amplify Console). Amplify Console isn't listed in
   the Slack Marketplace, so there is no Marketplace page to send them.
4. Sign your browser into the bot account, then follow [the connect flow](/integrations/connecting#connecting).

The authorization screen asks for these user scopes: read public and private channels, direct messages, and
group messages the account belongs to; send messages; add reactions; and read user profiles.

## What agents can do

| Tool                                | What it does                                                                                                            |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `Slack_WhoAmI`                      | Returns the bot account's own profile and workspace details.                                                            |
| `Slack_ListUsers`                   | Lists the users in the workspace.                                                                                       |
| `Slack_GetUsersInfo`                | Looks up users by id, username, or email.                                                                               |
| `Slack_ListConversations`           | Lists the channels, direct messages, and group messages the bot account is a member of.                                 |
| `Slack_GetConversationMetadata`     | Returns a channel's or conversation's details.                                                                          |
| `Slack_GetUsersInConversation`      | Lists the members of a channel or conversation.                                                                         |
| `Slack_GetMessages`                 | Reads messages from a channel or conversation, optionally within a time window.                                         |
| `Slack_GetThreadMessages`           | Reads the replies in a thread.                                                                                          |
| `SlackApi_SendSlackMessage`         | Posts a message to a channel or conversation, optionally as a thread reply. Supports Markdown and Block Kit formatting. |
| `SlackApi_AddSlackReaction`         | Adds an emoji reaction to a message.                                                                                    |
| `SlackApi_GetSlackMessagePermalink` | Returns a permanent link to a message.                                                                                  |

Agents are instructed to post only where they were asked, to reply in a finding's existing thread rather
than starting a new top-level message, to end each post with a note that it was generated by an Amplify
Console agent, and never to direct-message anyone who didn't ask. History reads are for conversations you
ask about, not for sweeping channels.

## What agents can't do

* Delete or edit messages, or remove reactions
* Create channels, invite or remove members, or change any workspace or channel setting
* Read a channel the bot account isn't in
* Post as an app, with a custom name or avatar per message
* Receive events or respond to mentions on their own — agents act only inside a run or chat turn

## Example

A summary step at the end of a workflow:

```markdown theme={null}
---
name: slack-run-summary
description: Posts one message to #security-reports summarizing a workflow run's confirmed findings, or reporting that there were none.
allowed-tools:
  - list_findings
  - Slack_ListConversations
  - SlackApi_SendSlackMessage
consumes:
  - kind: amplify:finding
    mode: all
---

Post exactly one message to #security-reports. Lead with the count of findings
by severity, then one line per finding with its title and a link. If there are
none, say so in one line. Do not post anywhere else.
```

See [using integration tools in an agent](/integrations/using-in-agents#adding-a-delivery-step-to-a-workflow) for
where this fits in a chain.

## Revoking fully

Disconnecting in Console deletes Amplify's stored authorization. To remove Slack's side of the grant too,
open the bot account's Slack settings and go to **Manage apps → Amplify Console → Remove**.
