Skip to content
S.space

Docs / Integrations / Slack

Connect Slack

Connect your Sutando to your Slack workspace so it can DM you, reply to @mentions in channels, and exchange files. Plan on about 15 minutes: a few of Slack's defaults silently block the bridge, so every toggle is in here.

Before you start

  • A Slack workspace you're a member of. Personal workspaces work.
  • Permission to install an app there. Strict workspaces may need an admin to approve.
  • The S.space desktop app, signed in (download it). Bot tokens are set there, where the engine runs.
1

Create the Slack app

Open api.slack.com/apps and click Create New App → From scratch. Name it and pick your workspace.

2

Enable Socket Mode and generate the App-Level Token

In the sidebar, open Socket Mode and enable it. Slack asks you to generate an App-Level Token: name it anything and give it the scope connections:write.

Pick connections:write, not app_configurations:write near the top of the list. With the wrong scope the bridge stops with missing_scope.

Copy the token. It starts with xapp-.

3

Add bot scopes

Sidebar → OAuth & Permissions. Under Bot Token Scopes (leave User Token Scopes empty) add:

bot token scopes
chat:write
im:history
im:write
app_mentions:read
channels:history
groups:history
files:read
files:write
users:read
4

Enable Event Subscriptions

Sidebar → Event Subscriptions. Turn Enable Events on; it is off by default, and until it is on no message reaches the bridge. Leave Request URL blank: Socket Mode delivers events without one.

Under Subscribe to bot events, add message.im and app_mention. Click Save Changes.

If Save Changes is greyed out, hard-refresh the page (⌘⇧R). Still greyed? Type any placeholder into Request URL (for example https://example.com/x); Socket Mode overrides it.
5

Enable the Messages tab

New Slack apps have DMs turned off. Sidebar → App Home → Show Tabs → Messages Tab, and check Allow users to send Slash commands and messages from the messages tab. Without it, the bot's DM screen says "Sending messages to this app has been turned off".

6

Install the app to your workspace

Sidebar → Install App → Install to Workspace, and approve. Copy the Bot User OAuth Token; it starts with xoxb-.

Keep both tokens private: together they give full access to your bot.
7

Paste both tokens into S.space

In the desktop app, click your name, pick Agent, and choose Connections under Agents. On the Slack card under Bridge Channels:

  • SLACK_BOT_TOKEN ← the xoxb- token from step 6.
  • SLACK_APP_TOKEN ← the xapp- token from step 2.

Click Save. Both pills change to · set and a green dot appears. Then restart.

8

Check the bridge from S.space

Have your Sutando confirm the bridge is up before you go to Slack. Its health check knows the Slack failures: Event Subscriptions off, nobody enrolled, an empty allowlist.

Ask your Sutando to verify Slack

I added my Slack tokens. Please check the Slack bridge and tell me plainly whether Slack is connected and what is still missing.
9

Enrol yourself from Slack

In Slack, find your bot by the app's name and DM it (enrollment is DM-only).

The first reply is Enrollment code required. Check the bridge startup log for your code and send it here. When the bridge starts with no owner enrolled, it prints a six-character code so nobody else can claim the bot first. Use the newest one.

Ask for the enrollment code

My Slack bot asked for an enrollment code. Read the latest one from the Slack bridge log and give it to me.

Send the code in the Slack DM. You are now the bot's owner. DM it, or invite it into a channel with /invite @yourbot and @mention it there. DMs get a top-level reply; @mentions get a threaded reply.

Files and voice

Files go both ways: attach one to a DM or @mention and your Sutando gets it; results can come back as uploads. Audio you attach, such as a voice clip, is transcribed for your Sutando (this uses your Gemini API key; without one it arrives as a plain file). Slash commands (/sutando …) are not supported.

Letting others in

Anyone else who DMs or @mentions the bot is not acted on. They get a one-line notice, at most once an hour: "I got your message, but you're not on this Sutando's allowlist yet, so I can't act on it. Ask the owner to add you." To let someone in, ask your Sutando to add their Slack member ID (their profile → ⋯ → Copy member ID). Only the owner has full access; others run in a read-only sandbox.

Troubleshooting

The bot never replies, even to a DM

  • Event Subscriptions is off (step 4). The bridge log then shows [Slack] HINT: 60s elapsed with zero events received.
  • Scopes changed without a reinstall. Click Slack's yellow "reinstall your app" banner and re-authorize.
  • A token is missing. The Slack card must show SLACK_BOT_TOKEN · set and SLACK_APP_TOKEN · set.

"Sending messages to this app has been turned off"

See step 5.

"missing_scope" in the bridge log

The App-Level Token has the wrong scope. In Basic Information → App-Level Tokens, delete it and generate a new one as in step 2. Paste the new xapp- token, save, and restart.

The bot replies in DMs but not to channel @mentions

Check that app_mention is subscribed (step 4) and that the bot is in the channel: /invite @yourbot. Bots can't join private channels on their own.

Stuck?

See Get support.

What's next