[Docs index](/docs.md) / [Subagents](/docs/subagents/overview.md) / Routing Channels to a Subagent

---

# 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](./creating-a-subagent.md).
- 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 @YourAssistBotName` before 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:

1. Open Slack in your desktop app or browser.
2. Click the channel name at the top of the channel to open the channel details panel.
3. Scroll to the bottom of the **About** tab.
4. Find **Channel ID** at the very bottom (it starts with `C`).
5. 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.

## Next steps

- [Scheduling a subagent](./scheduling-a-subagent.md)
- [Use cases and playbooks](./use-cases.md)
- [Troubleshooting](./troubleshooting.md)

---

## Navigation

### In this section: Subagents

- [Subagents](/docs/subagents/overview.md)
- [Use Cases and Playbooks](/docs/subagents/use-cases.md)
- [Troubleshooting](/docs/subagents/troubleshooting.md)
- [Adding Tools to a Subagent](/docs/subagents/adding-tools-to-a-subagent.md)
- [Creating a Subagent](/docs/subagents/creating-a-subagent.md)
- [Delegating to a Subagent](/docs/subagents/delegating-to-a-subagent.md)
- [Managing Subagent Access](/docs/subagents/managing-subagent-access.md)
- **Routing Channels to a Subagent** (current)
- [Scheduling a Subagent](/docs/subagents/scheduling-a-subagent.md)

#### Playbooks

- [Playbook: Build a Shared Toolbox for Your Organization](/docs/subagents/playbook-organization-toolbox.md)
- [Playbook: Build a Tier-1 Support Triage Subagent](/docs/subagents/playbook-tier-1-support-triage.md)
- [Playbook: Build a Vendor Intake Coordinator](/docs/subagents/playbook-vendor-intake-coordinator.md)
- [Playbook: Build an Ops Channel Concierge in Slack](/docs/subagents/playbook-ops-channel-concierge.md)
- [Playbook: Build an Overnight Reconciliation Agent](/docs/subagents/playbook-overnight-reconciliation-agent.md)

### Other sections

- [MCP Servers](/docs/mcp-servers/overview.md)
- [Tool Creation](/docs/tool-creation/overview.md)
- [Agent Filesystem](/docs/agent-filesystem/overview.md)
- [Chat Sharing](/docs/chat-sharing/overview.md)
- [Scheduled Triggers](/docs/scheduled-triggers/overview.md)
- [Agent Skills](/docs/agent-skills/overview.md)
- [Sandcastles](/docs/sandcastles/overview.md)
- [Workspace Permissions](/docs/workspace-permissions/overview.md)

[Back to docs index](/docs.md)
