Slack is a chat app: a place the team talks to a workspace's own AI, and
GBrain answers there from the workspace's memory. This page is for whoever
sets it up. It covers adding GBrain to Slack, what each setting on the Slack
page does, what GBrain keeps from Slack and who can read it, and how to take
GBrain out again.

```gbrain-figure
slack-clients
```

## Slack comes with Team

A workspace on Team has Slack. Personal has no Slack, because a workspace on
Personal has no AI of its own to answer there: people use its memory from
their own AI instead. [Compare the plans](/pricing).

## An admin adds GBrain to Slack in one click

Only an admin of the workspace's organization adds GBrain to Slack or changes
its settings. Everyone else in the workspace can open the Slack page and see
every setting.

1. In the workspace, open **Integrations** in the sidebar, then **Messaging**,
   and choose **Slack**.
2. Choose how much GBrain reads. Slack's own screen grants everything at once,
   so GBrain asks first:
   - **Only where it's invited.** GBrain sees and answers in the channels
     @GBrain is added to, and nothing else. The right choice when the Slack
     has a channel per client or team.
   - **Everything you can see.** GBrain also reads every channel and message
     the person adding it can see, as that person, to build memory. GBrain
     never posts as them, and this reading stops on its own when a second
     workspace joins the same Slack.
3. Press **Add to Slack**, pick the Slack on Slack's screen, and approve.
4. Back in GBrain, the workspace's Slack page opens. In Slack, invite
   **@GBrain** to each channel it should be in, then press **Refresh** on the
   Slack page.

There is nothing to build in Slack and no key to copy. The first workspace added
to a Slack answers in every channel @GBrain is in. A workspace added after it
starts with no channels.

## Each channel is Off, Read, or Read and write

The **Channels** section of the Slack page lists every channel @GBrain is in,
each with three levels:

- **Off.** GBrain ignores the channel.
- **Read.** GBrain can look the channel up when someone asks about it, and
  never posts there.
- **Read and write.** GBrain also answers there, and what people say there
  goes to the workspace's memory.

The top row, **All channels the Slack bot @GBrain is in**, sets every channel
at once, and decides the level of channels @GBrain joins later. Setting one
channel below it changes that channel alone. Each channel has one workspace
that answers in it: a channel another workspace answers in says so, and
offers only Off and Read.

## GBrain answers when it is mentioned or addressed

In a channel set to Read and write, **When it replies in channels** decides
when GBrain answers:

- **Only when mentioned.** GBrain answers only when someone @-mentions it.
- **Mentioned or addressed.** GBrain answers an @-mention, and a reply to it
  in a conversation it's part of. Every new connection starts here.
- **When it can add value.** GBrain also joins in when a quick check says it
  has something material to add, and stays quiet when unsure. The check is a
  short call to a small model, billed to the workspace.

One setting covers every channel, and a channel can have its own. The setting
decides only when GBrain answers: every message in those channels still goes
to memory. Under it, **Recent decisions** lists why GBrain answered or stayed
quiet, newest first, for 30 days, without what anyone wrote.

A question asked in a thread is answered in that thread. A question at the top
of a channel is answered in the channel. GBrain puts 👀 on the message as soon
as it has it, and the answer appears as it is written.

## One workspace per client or team, all in one Slack

An agency can run one workspace for itself and one per client, all in the
agency's Slack. A company can do the same with a workspace per team. Each
workspace answers only in its own channels, from its own memory.

There are two ways to add the next workspace:

- **In the same organization.** On the new workspace's Slack page,
  **Already connected here** lists the Slack the organization already added.
  An admin presses **Join**, with no trip through Slack, then picks the new
  workspace's channels.
- **In another organization**, when each client or team has its own members
  and billing. An admin of that organization presses **Add to Slack** on its
  workspace's Slack page. They have to be in the Slack too, and the workspace
  can take only channels they are in. It never answers direct messages and
  never reads beyond its own channels, and neither organization's pages name
  the other's workspaces.

**The main workspace can read every channel.** A workspace of the organization
that owns the Slack can set a channel another workspace answers in to Read. It
looks that channel up when someone asks, and never posts there. It can read
only channels the person who connected it is in, and the workspace that
answers in the channel sees a note under it saying the main workspace can read
it too. A Read channel isn't saved to memory as messages arrive: GBrain reads
it when asked.

Anyone who can message GBrain in a channel can be told anything that
workspace knows. That is the reason for a workspace per client or team: each
one's channels only ever hear from that one's memory.

## What GBrain keeps from Slack, and who can see it

**What people say in its channels goes to memory.** In a channel set to Read
and write, GBrain saves what people say to the workspace's memory, whether or
not it answers. Direct messages it receives are saved too. Posts by bots,
GBrain's own included, are not.

**The memory belongs to the workspace.** Everyone who can open the workspace
can read what GBrain learned from Slack in **Memory**, and ask about it in
**Chats**. GBrain draws on the same memory in every channel it answers in, so
people there can hear what it learned elsewhere in the workspace.

**A conversation can keep to itself.** GBrain can also keep each Slack
conversation to what was said in it, so what a private channel discussed never
comes up in a public channel or a direct message. It is off until we turn it
on for a workspace, so [ask us](/support) if a team needs it.

**Slack use is the workspace's use.** Anyone who can message GBrain in Slack
is using the workspace, and what that costs is billed to the workspace.

## Direct messages, for the people an admin picks

One workspace answers every direct message to @GBrain in a Slack. When a Slack
has more than one workspace, the **Direct messages** row on the Slack page
picks which.

An admin chooses who may message GBrain directly: **Off**, **Selected
people**, picked from the Slack's own directory, or **Everyone in this Slack
workspace**. A new connection starts at Off. Off and Selected people also
turn off group DMs, and searching Slack as the person who added GBrain.
Anyone allowed can be told anything the workspace knows, and
a direct message from them always gets an answer.

## Removing GBrain from Slack

At the bottom of the workspace's Slack page, press **Disconnect** with the
Slack's name, and confirm on the page that follows. GBrain stops answering in
that Slack straight away, in every channel and every direct message. The
workspace keeps its memory, chats and other connections.

Other workspaces in the same Slack keep it, and if this one answered direct
messages, the next one takes over. When the last workspace leaves, GBrain
forgets its sign-in to that Slack, and @GBrain stays in Slack until someone
removes it in Slack's own settings. If GBrain is removed in Slack first, the
Slack page says the connection is no longer active: disconnect it there, and
add Slack again whenever the team wants it back.

## Slack is a chat app for the workspace's own AI

Connectors are what an AI uses: Gmail, Linear, GitHub. Slack is where people
talk to the workspace's own AI, so ChatGPT, Claude or another AI connected to
GBrain doesn't read or post in Slack through it, and Personal, where people
use the memory from their own AI, has no Slack. `gbrainio` refuses Slack too,
and prints the page in each workspace that connects it.

To start, open the workspace, choose **Integrations**, then **Messaging**,
then **Slack**.