Answer in Slack with your AI agent
Add your intoCHAT agent to a Slack workspace so it answers @mentions in channels and direct messages in threads: plans, connecting, threads, human takeover from the inbox, limits and privacy.
Your agent can answer in Slack: mention it in a channel, or send it a direct message, and it replies in the thread with the same knowledge, instructions, actions and rules as in the widget. Each Slack thread is one conversation on the agent's Conversations tab, with a Slack badge, and your team can take it over from the inbox.
Plan
The Slack agent is available on Starter and up. On Free, the Slack card shows an upgrade note and no workspace can be connected. After a downgrade to Free, a connected workspace stays saved but the agent stops answering in it, and your team can't reply in its threads from intoCHAT, until you upgrade again.
Each AI reply in Slack counts on your plan exactly as in the widget: one message with the default model, more with a larger model. Your team's replies don't count. When your messages run out, the agent posts the widget's own notice in the thread ("Message limit reached…"), at most once every 10 minutes per thread; an agent at its monthly cap posts "This chat has reached its limit for now". See Plans and limits.
Connect Slack
You need permission to install apps in your Slack workspace. Some workspaces ask an admin to approve new apps first.
- Open your agent, go to the Share tab and find the Slack card.
- Click Add to Slack. Slack's install screen opens.
- Pick your workspace if you belong to several, review what intoCHAT may do, and click Allow.
- You return to the Share tab, which shows "Slack connected" and the workspace's name.
Then try it:
- Direct message: open the intoCHAT app in Slack (under Apps in the sidebar) and send it a question.
- Channel: invite the app to a channel with
/invite @intochat, then mention it:@intochat what are your opening hours?
If you cancel on Slack's screen, nothing is connected. If you take longer than 10 minutes there, start again from Add to Slack.
Connecting and disconnecting need the Manage level for integrations, so the owner and admins can do it. Everyone in the account sees which workspace is connected. See Team members and roles.
One workspace, one agent. A Slack workspace answers for one agent at a time, and an agent has at most one workspace. Connecting a workspace that already answers for another intoCHAT agent is refused with "This Slack workspace is already connected to another intoCHAT agent"; disconnect it there first. If you can't, because that agent belongs to someone else's account, remove the intoCHAT app in Slack under Manage apps and then click Add to Slack again: a workspace whose app was removed is no longer held by the other agent. To move an agent to another workspace, disconnect the first one.
What it answers
- Direct messages to the app: every message.
- Channels: only messages that mention the app (
@intochat …), in public and private channels the app was invited to. Inside a thread, mention it again for each question; messages without a mention aren't read. - Messages from other apps and bots, the app's own messages, edited and deleted messages, and a message that is only the mention, without a question, get no answer.
The mention is removed before the agent reads the message. Other mentions, channel names and links are passed on as readable text.
The agent writes text:
- Replies use Slack's formatting: bold, bullet lists, code and links you can click.
- Buttons and product cards from your actions are posted as links under the reply, and rich replies as plain text.
- Forms, the lead form, carts, booking times, follow-up questions and source links can't be shown in Slack, so the agent doesn't offer them there. Server-side API actions, procedures, hand-off by email and order lookups work as in the widget. Client actions, which run on a web page, aren't offered.
- The agent reads the text of a message only. Files and images in Slack messages are ignored.
Threads
The agent always answers in a thread: under the message it was asked in, or in the thread the question was asked in.
- One thread is one conversation. Follow-up questions in the same thread are answered with the earlier messages of that thread in mind, as in the widget. A new top-level message (a new direct message or a new mention in the channel) starts a new conversation.
- The person who started the thread is the conversation's visitor; the inbox shows their Slack display name. When someone else writes in the thread, their message is saved with their name in front of it.
Hand-off and human takeover
When someone asks for a person and hand-off by email is on, the agent passes the conversation to your team as in the widget, and the conversation enters the inbox. You can also move any Slack conversation to the inbox yourself.
Open a Slack conversation in the inbox or on the Conversations tab. Below the transcript:
- The reply box posts your message in the Slack thread as the intoCHAT app, with your first name in bold in front of it, for example "Anna: I've refunded your order." It is saved in the transcript with your name and "team, Slack", and it pauses the AI.
- Pause AI stops the agent from answering this thread. New messages are still saved, so your team sees them, but get no AI reply. Resume AI hands it back.
- The AI resumes by itself 24 hours after the last pause or reply from your team, on the next message in the thread.
Pausing, resuming and replying are for everyone who may handle conversations: the owner, admins and editors. Slack has no reply window, so your team can answer a thread at any time while Slack is connected.
Limits
- A workspace can send the agent up to 300 messages per hour. Further messages that hour are saved for your team without an AI reply. Your agent's overall limits still apply.
- Messages are answered as they arrive, usually within a few seconds; a slow action or a larger model can make it longer. Long replies are split into several messages.
- A private agent doesn't answer in Slack; the Slack card shows a note saying so after the first message.
- If the app is removed from the workspace or its access is revoked in Slack, the card shows Needs attention with Slack's reason. Disconnect and click Add to Slack again.
- Slack conversations show
channelasslackin the REST API, the MCP server, the inbox's channel filter and Ask your conversations.
Privacy
- intoCHAT reads only what Slack sends it: messages that mention the app and direct messages to the app. It doesn't read other channel messages, and it doesn't import your Slack history.
- For each conversation intoCHAT stores the messages it answered or received, the Slack user ID of the person who started the thread and their display name (looked up with Slack's
users.info). These are kept and deleted like any other conversation. - The messages go to the AI model to write the reply, as widget messages do. See How answers work.
- The app's Slack token is stored encrypted, is never shown in the dashboard, and is only used to post replies and look up display names.
- Disconnect in the Slack card revokes the token at Slack and deletes it. The agent stops answering in that workspace; earlier conversations stay on the Conversations tab. You can also remove the app in Slack under Manage apps.
For the platform owner: the Slack app
This section is for whoever runs the intoCHAT server, not for agent owners. The app is created from the manifest in integrations/slack/manifest.json; integrations/slack/README.md has the steps.
Environment variables (names only; never put the values in code):
| Variable | What it is |
|---|---|
SLACK_CLIENT_ID | The Slack app's client ID (OAuth) |
SLACK_CLIENT_SECRET | The client secret: exchanges the install code for the bot token |
SLACK_SIGNING_SECRET | Checks the X-Slack-Signature of every event Slack sends |
TOKEN_ENCRYPTION_KEY | Encrypts the stored tokens (falls back to NEXTAUTH_SECRET) |
Without the three SLACK_ variables, the Slack card isn't shown and the events URL answers 404. The OAuth redirect URL is built from NEXT_PUBLIC_APP_URL and must match the one in the app: https://<your domain>/api/integrations/slack/callback. Events go to https://<your domain>/api/integrations/slack/events.
The app installs from intoCHAT's own Add to Slack button once public distribution is turned on in the app's settings. Listing it in the Slack Marketplace, and Slack's review for that, isn't needed.