Connect Slack
Install the ThreadBridge Slack app, the scopes it requests, and how to bridge private channels.
Connecting Slack installs the ThreadBridge app into your workspace and gives ThreadBridge a bot token for it. One workspace belongs to one ThreadBridge account; the same workspace can be used by as many bridges in that account as you like.
Connecting
- From the dashboard (or the "Continue with Slack" button if you don't have a ThreadBridge account yet), choose Connect Slack.
- Slack shows the permission screen. Pick the workspace at the top right if you belong to more than one.
- Approve. You're returned to ThreadBridge with the workspace connected and sent straight to the new-bridge form.
If you weren't signed in when you started, this step also creates your ThreadBridge account, using the name and email Slack provides, rather than asking you to fill in a separate sign-up form first. If you're already signed in, it just connects the workspace to the account you're using.
If someone else should connect it
Connecting requires being a member of the workspace, which isn't always you: a client's workspace, for instance. Slack workspace approval covers sending a no-account-required approval link to whoever is.
Permissions ThreadBridge asks for
| Scope | Why |
|---|---|
channels:read, groups:read |
List channels so you can pick them in the channel map. |
channels:history, groups:history |
Receive messages posted in the channels you mapped. |
chat:write |
Post messages arriving from the other platform. |
chat:write.customize |
Post relayed messages under the original author's name instead of a generic bot name. |
users:read |
Turn the user ID on an incoming message into the author's display name, so it can be shown on the relayed copy. |
If you aren't signed in to ThreadBridge yet, the same screen also asks for two user-level
permissions, separate from the app's own: users:read and
users:read.email, which Slack describes as viewing people and their email
addresses. ThreadBridge uses them once, to read your own name and email and create your
account, and doesn't keep the token that carries them.
chat:write.customize is what lets a message arriving from Teams appear
under its original author's name rather than a generic app name. The groups:*
pair is what makes private channels work. Nothing is read from a
channel the app hasn't been invited to, regardless of scope.
Inviting the app to a channel
Slack only delivers events from channels the app belongs to. For each channel you plan to map, run:
/invite @ThreadBridge
For private channels, someone already in the channel has to run it; the app can't add itself. A bridge that starts cleanly but never relays anything is nearly always a channel the app was never invited to.
If the workspace is already connected
A Slack workspace can be claimed by exactly one ThreadBridge account. This is a correctness rule, not a licensing one: inbound Slack events are routed by workspace, so two accounts holding the same workspace would deliver each other's messages. If you see already connected, find the colleague who set it up and get invited to that account instead.
Disconnecting
Disconnecting revokes the token on Slack's side and removes it here. Bridges that used the workspace stay in place but stop relaying; reconnect to bring them back rather than rebuilding their channel maps.