# Slack

> Let an agent read Slack channels and threads, search the workspace, and post — with your approval.

The Slack connector lets an agent read what happened in your workspace and, with your [approval](/docs/work/approvals/), post to it.

## When to use it

Slack is where decisions get made and then lost. An agent that can search it turns *"someone posted the deploy checklist a month ago"* into a working answer, and can summarize a channel you were away from.

If you want the opposite direction — asking an agent something *from inside Slack* — see [Channels](/docs/automate/channels/).

## Connect it

<Steps>

1. **Open Connectors** in [Agent Builder](/docs/build/agent-builder/) and choose Slack.

2. **Sign in and approve the workspace.** Access is per workspace.

3. **Invite the app to the channels it should read.** This is the step people miss — see below.

4. **Bind the connection to the agent.**

</Steps>

<Aside type="caution" title="A channel the app is not in cannot be read">
  Reading a channel's history requires the Slack app to be a member of that
  channel. If an agent reports that it is not in the channel, invite it there in
  Slack and try again. Workspace search does not have this requirement.
</Aside>

## What an agent can do

| Operation | Gated |
| --- | --- |
| List channels | No |
| Read a channel's recent history | No |
| Search the workspace | No |
| Read a thread's replies | No |
| **Post a message** | **Yes** |

Search uses Slack's own syntax — `from:@user`, `in:#channel`, quoted phrases — and is the right starting point when you do not know which channel something is in.

## Posting

Posting is gated, like every outbound action. You see the channel and the exact text before it goes out, and approving sends precisely that.

In an unattended run — a [routine](/docs/automate/routines/), for example — a post is refused rather than held. A scheduled Slack digest should write an [artifact](/docs/capabilities/artifacts/) and notify you, or you should post it yourself once you have read it.

## Limits

- One Slack workspace per connection.
- Reading history requires the app to be in the channel. Private channels it has not been invited to are invisible.
- Direct messages are not covered.
- Posting always requires approval, including replies in a thread.
- The agent posts as the Endue app, not as you.

## Related

<CardGrid>
  <LinkCard
    title="Channels"
    href="/docs/automate/channels/"
    description="Reaching an agent from inside Slack, rather than the reverse."
  />
  <LinkCard
    title="Approvals"
    href="/docs/work/approvals/"
    description="What you see before a message is posted."
  />
  <LinkCard
    title="Available connectors"
    href="/docs/connect/available-connectors/"
    description="Mattermost, Telegram, and everything else."
  />
</CardGrid>
