Routing Channels to a Subagent
A channel mapping connects a Slack channel to a subagent, so that any message posted in that channel is handled by the agent automatically. Instead of opening Assist and starting a new chat, your team just posts in the channel they already use, and the agent responds there.
This is the right pattern when you have a channel that already exists for a specific purpose — #support-ops, #wms-alerts, #finance-questions — and you want a specialized agent to be on call there.
Before you begin
- The subagent must already exist. See Creating a subagent.
- Your workspace must have the Slack connection configured. If it is not, ask your workspace admin to set it up.
- The Slack bot must be a member of the channel you want to route from. Invite the bot in Slack with
/invite @YourAssistBotNamebefore you map the channel. - You need permission to edit the subagent (owner, edit role, or workspace admin).
Steps
1. Find the Slack channel ID
Slack channel IDs are not the same as the #channel-name you see in the sidebar. They look like C0123ABC456 and are stable even if the channel is renamed.
To copy a channel ID from Slack:
- Open Slack in your desktop app or browser.
- Click the channel name at the top of the channel to open the channel details panel.
- Scroll to the bottom of the About tab.
- Find Channel ID at the very bottom (it starts with
C). - Click the copy icon next to it.
Alternatively, in the Slack web app, the channel ID is the last segment of the URL: https://app.slack.com/client/T01ABCDEF/C0123ABC456 — C0123ABC456 is the channel ID.
For private channels and DMs the ID may start with G or D. For public channels it starts with C.
2. Open the subagent's edit page
Go to Subagents, find the agent you want to wire up, and click the pencil icon on its card.
3. Find the Channel Mappings section
Scroll down to the Channel Mappings section. If you have not added any mappings yet, you will see an empty state with a message about routing messages from channels to this subagent.
4. Click Add
The Add button is on the right side of the Channel Mappings header. This opens the Add Channel Mapping dialog.
5. Pick a platform
Select Slack from the Platform dropdown.
6. Paste the channel ID
Paste the channel ID you copied in step 1 into the Channel ID field. The helper text reminds you that the Slack channel ID starts with C.
If you paste a #channel-name instead of an ID, the mapping will not work — Slack messages from the bot use IDs, not display names.
7. Click Add Mapping
The dialog closes and the new mapping appears in the list, showing the platform badge (slack) and the channel ID in monospace.
8. Test it
Go to the Slack channel and post a message that the agent should respond to. The agent runs with its system prompt and tool whitelist and replies in the channel.
If nothing happens, check:
- The Assist Slack bot is a member of the channel.
- The channel ID in Assist exactly matches the one in Slack (no leading
#, no whitespace). - The agent has at least one tool that lets it post back to Slack (typically a tool from
slack_v1).
Removing a mapping
Open the agent's edit page, find the Channel Mappings section, and click the trash icon next to the mapping you want to remove. Once removed, messages in that channel go back to default behavior — the agent stops responding to that channel.
Notes and limitations
- Slack only today. The data model supports Telegram, Discord, and other platforms, but the Assist UI currently only lets you add Slack mappings. New platforms will appear in the Platform dropdown as they are released.
- One channel, one agent. A given channel can only be mapped to one subagent at a time. Mapping a channel that is already in use to a different agent replaces the previous mapping.
- The agent runs with its own configuration. Channel routing does not change the agent's system prompt, model, or tool whitelist. If the agent should behave differently in a channel context, encode that in the agent's system prompt.
- The bot needs access. A mapped channel still requires the bot to be a member. Removing the bot from the channel breaks routing without removing the mapping.