Reach Them on Slack
Bring your AI employee into the Slack workspace your team already lives in. Mention them, DM them, run /alice, or open the assistant container in the top bar. They reply in the same thread, remember every channel they sit in, and read history when invited somewhere new.
TL;DR
Connect Slack from the Channels page, pick the employee who answers, then invite the bot to a channel or open a DM. Mentions, DMs, slash commands, and the top-bar assistant container all reach the same employee. Memory is shared with web chat, so a conversation that starts on Slack continues anywhere else.
How It Works
The AI employee is a real bot user inside your workspace. Slack delivers events to a signed webhook when someone mentions the bot, opens a DM, invites the bot to a channel, fires a slash command, or clicks an approval button. We hand the message to the employee, the employee replies, the response posts back into the same Slack thread.
- Same employee, every surface. Memory, tasks, skills, and tools are shared across web chat, Slack, mailbox, and every other channel.
- Threaded conversations. Each Slack thread becomes a continuous conversation. Once the employee has replied in a thread, you can keep typing in it without re-mentioning them.
- Cross-channel awareness. A conversation started in web chat is in the employee's memory when you message them on Slack.
- Silent unless invited. The bot only replies to direct mentions, DMs, the assistant container, and threads it is already in. It never auto-replies to other channel traffic.
What You Can Do
| Action | How it looks in Slack |
|---|---|
| DM the employee | Open a direct message with Alice and type. Conversation continues with full memory. |
| Mention in a channel | @Alice what is the latest revenue number? after the bot is invited. Reply lands in-thread. |
| Continue a thread | After the employee has replied in a thread, keep typing in that thread without re-mentioning. |
| Run a slash command | /alice summarize this channel. You get an instant ephemeral confirmation, the real reply lands in the channel. |
| Open the assistant container | Click the Alice icon in the Slack top bar to open the split-pane. Four suggested prompts appear. Live "Thinking..." status shows while she works. |
| Invite to a new channel | /invite @Alice. She reads the last 50 messages once, posts a warm acknowledgement, saves a 3 to 5 line channel summary in her notebook so future replies skip the re-read. |
| Summarise channel history | Ask "summarize this channel" or "when did we first discuss X". She pulls recent messages on demand. |
| Approve or reject from Slack | When the employee asks for a sign-off, you get a DM with Approve and Reject buttons. Clicking either resolves the request the same way the webapp button does. |
| Receive proactive updates | When any employee on your team finishes work or hits something worth surfacing, you get a Slack DM from Alice naming who said what. |
| Hand off from web chat | Start the conversation on the web app, finish it on your phone in Slack. Memory carries over. |
| Disconnect | Click Disconnect on the Channels page. The bot stops responding immediately. |
How to Set It Up
The first part is a one-time platform setup the workspace owner does. After that, every team member can use the bot.
1. Pick which employee answers, then add to Slack
Open Settings > Technical > Channels and select Slack. First choose the employee who handles inbound Slack messages, that employee is the bot's brain. Then click Add to Slack. You are sent to slack.com to approve the install on your workspace, and bounced back here when you approve. The channel flips on automatically and the bot's @-handle appears on that employee's Profile.
A workspace is connected to one employee at a time. If you pick a different employee later and click Add to Slack again, the new employee takes over and the previous one stops answering in that workspace.
2. Open the assistant container
Click the Alice icon in your Slack top bar. You see four suggested prompts ("Summarize this channel", "What is on my plate today", "Bring in a specialist", "Draft a message"). Click one or type your own.
3. Invite the bot into channels
In any channel, type /invite @Alice. From then on, anyone in that channel who mentions Alice gets a reply. The first time she joins a channel, she reads the recent history and writes a short summary in her notebook so she does not re-fetch on every later turn.
4. Or just DM her
DMs work without inviting. Open a direct message with the bot user and start typing.
The Inbound Ack
Every inbound message gets an instant hourglass reaction within about 200ms while the employee runs. The reaction is removed when the reply posts, so you always know whether your message landed.
In the assistant container, the same signal appears as a live "Thinking..." status above the composer, matching Slack's native AI UX. Either way, you never wonder if the message was received.
Tips and Tricks
- Threads keep context. Replying inside a thread keeps the employee in that conversation. A new top-level message starts a fresh one.
- Be specific in channels. In a public channel the employee is one of many voices. Concrete asks like
@Alice summarize the deal pipeline for Q3work better than vague ones. - DMs are private. A DM stays between you and the employee, the same way Slack DMs work between people.
- Approve in Slack, not the webapp. When you get an Approve or Reject card, click in Slack. The card replaces itself with a confirmation and the underlying request resolves on the same path the webapp uses.
- Use the web app for big work. Long-running tasks, file uploads, and the full execution timeline are still best in the web workspace. Slack is for quick interactions, approvals, and progress updates.
Behind the Scene
| Layer | What happens |
|---|---|
| Inbound events | Slack Events API delivers mentions, DMs, in-thread replies, assistant thread starts, channel joins, and slash commands to a signed webhook. |
| Outbound replies | The bot posts via the Slack Web API into the same thread. Block Kit cards are used for approvals. |
| Identity | One connected employee answers inbound messages per workspace at a time. Proactive updates from every employee always route through Alice's own bot and name the real sender, even when a different employee is the one currently connected for inbound Slack messages. |
| Per-workspace state | An install row holds the bot identity, the encrypted bot token, the installer's Slack user id, the chosen employee, and the workspace team id. |
| Tokens | Per-workspace bot token, encrypted at rest. Decrypted only at the moment of a call. |
| Signature | Every inbound payload is HMAC-checked against the App's signing secret before the dispatch fires. |
| Dedup | Slack retries are filtered by event_id, so the employee only sees a message once. |
| Per-channel memory | First time the bot is invited to a channel, it reads the last 50 messages and writes a short summary into its notebook. Future turns read the summary instead of re-fetching. |
| Approvals | Approve and Reject buttons land on the same internal resolution path the webapp button uses. The Slack card swaps to a confirmation, the request resolves once. |
What It Costs
| Cost | What it covers |
|---|---|
| Token credits | Same as web chat. Billed per LLM call the employee makes. |
Slack is free on every plan, with no extra runtime or per-message fee. You pay only for the LLM calls the employee actually makes, exactly the same as a conversation in the web app.
Is It Safe
- Signature verification. Every inbound event is HMAC-verified against the App's signing secret before any agent runs. Forged requests are rejected.
- Tenant isolation. A Slack install is bound to one tenant. Messages from one workspace never reach another tenant's employee.
- Token encryption. Each workspace's bot token is encrypted at rest with a Fernet key generated per environment. Decrypted only at the moment of a reply.
- Installer-only approvals. Only the person who installed the Slack App can resolve Approve or Reject from inside Slack. Clicks from other members are logged and ignored.
- Channel gate. The Channels page toggle is the master switch. Disable it and the bot stops responding immediately.
- Soft uninstall. Disconnecting keeps the audit row but revokes the bot's ability to post anything.
Good to Know
- One employee answers per workspace. Connecting a different employee replaces the one currently connected, it does not add a second bot alongside it.
- Proactive updates always come from Alice. Even when a different employee is the one connected for inbound Slack messages, a proactive DM about any employee's work is delivered through Alice's bot and names the real sender.
- History summary, not full transcript. On a fresh channel invite the bot writes a brief summary, not a full message dump. For specific past-message questions she pulls history on demand.
- No file uploads yet. Sending a file in Slack does not upload it to the employee. File uploads work in the web app.
- Disconnects are reversible. Disconnect, then reconnect later. The same workspace re-binds to the same employee with memory intact.
Frequently Asked Questions
Q: Does the bot read every message in a channel? A: No. By default Slack only delivers messages that mention the bot or land in a thread the bot is already in. The one exception is the first time you invite the bot to a channel, when she reads the recent history once, writes a short summary into her notebook, and uses that summary from then on.
Q: How do I trigger Alice without typing the full mention?
A: Three ways. Run /alice <prompt> from any channel for a quick trigger. Open the assistant container from the top bar for a split-pane chat. DM her directly for private one-to-one conversation.
Q: I clicked Approve in Slack. Does that count, or do I still need to confirm on the webapp? A: Clicking Approve or Reject in Slack resolves the request on the same internal path the webapp button uses. The Slack card immediately replaces itself with a confirmation, the request status updates everywhere, the workflow continues. No double-confirmation.
Q: Will the employee remember Slack conversations later in web chat? A: Yes. Memory is shared across channels for the same employee. Anything important from Slack is in her memory the next time you talk on the web app.
Q: A teammate sent a message in a channel Alice is in. Did she see it? A: She gets the event, but unless your teammate mentioned her or replied inside a thread she is already in, she stays silent. If you want her to weigh in, mention her or invite her into the thread.
Q: What happens if I uninstall the bot from Slack? A: The Slack channel goes quiet. The conversation history stays in the database. Reconnecting restores full functionality without losing memory.
Q: Can two different employees both answer in the same Slack workspace? A: Not at the same time. A workspace is connected to one employee for inbound messages at a time. Connecting a different employee replaces the current one rather than adding a second bot.