Meet your users where they already are
The CrewAI agent you built in the Overview does not have to live behind a web app. The same Crew or Flow can run as a bot inside a messaging platform. No rebuild, no second copy of your agent logic: the agent stays exposed over the AG-UI protocol, and a channel drives it from Slack or Microsoft Teams. CopilotKit’s Channels SDK provides that channel. You declare acreateChannel in a small runtime, point it at your CrewAI agent, and CopilotKit’s managed Intelligence platform brokers the connection to the messaging provider.
Unlike the rest of this section, Channels is not self-hosted. It runs through CopilotKit Intelligence — a required surface for Channels, by design (a free tier is available). Intelligence holds the platform connection and credentials, receives each platform event, and delivers the turn to your channel process; your process runs the agent and streams the reply back. You configure Slack once in the Intelligence dashboard, and platform credentials never enter your process. Your agent, tools, and state stay yours.
How it fits together
Nothing about your CrewAI agent server changes. It keeps serving your Crew or Flow over AG-UI exactly as in the Overview. What you add is a separate long-running Node process built with@copilotkit/channels: it registers a channel on the CopilotRuntime, connects to Intelligence, and runs your agent whenever a message arrives.
Integration guide
1
Install the Channels packages
The Channels SDK is batteries-included — every platform ships in the one package, with no per-platform adapter to install. Add it alongside the runtime that hosts the channel and the CrewAI AG-UI client:
2
Create a Channel in Intelligence
In the CopilotKit dashboard, create a Channel and connect Slack — Intelligence walks you through creating the Slack app and holds its credentials. That leaves two environment variables for your process, both from the dashboard:
3
Define the channel
createChannel declares the channel and attaches your agent. Build the agent as a per-thread factory so each conversation gets its own session, using the same CrewAIAgent the Overview uses in the web runtime, pointed at your AG-UI endpoint. identifyUser: "platform" lets Intelligence map each platform user to a stable identity.4
Register the channel on the runtime
Create a
CopilotRuntime with the Intelligence gateway and your channel, then serve it with createCopilotNodeListener. The agents map stays empty — the channel supplies its own agent. Wait for the channel to be ready so a broken config fails startup loudly.5
Run the channel runtime
Start it alongside your CrewAI agent server:Mention the bot in Slack or Teams and it runs your Crew or Flow, streaming the reply back into the thread. The thread stays subscribed, so follow-up messages run without another mention.
The event model
A channel reacts to platform events with handlers, and each handler receives athread you drive with a few methods:
channel.onMentionfires when a user @-mentions the bot. Callthread.subscribe()to join the thread, thenthread.runAgent()to run your CrewAI agent on the mention.channel.onMessagefires on every message in a thread the bot can see. Gate it withthread.isSubscribed()so the agent only responds where it has joined, thenthread.runAgent().thread.runAgent()runs the attached CrewAI agent for the current turn and streams its output back into the channel. Pass{ prompt }to override the text the agent runs on.
RunAgentInput and emits ordinary AG-UI events; the platform mechanics stay behind the channel, so the same Crew or Flow runs unchanged across every platform. The channel also exposes handlers for welcomes, interrupts, commands, reactions, and modals — see the Channel reference for the full surface.
Platform support
The managed Intelligence path covers Slack and Microsoft Teams today — the same channel code runs on either, andmessage.platform / thread.platform report the native origin. Other platforms (Discord, Telegram, WhatsApp) are reached through developer-operated direct adapters rather than the managed path — your own process holds the platform credentials and transport. Check the CopilotKit Channels documentation for the current platform list and per-platform setup.
Related
Frontend Overview
Serve your Crew or Flow over AG-UI — the foundation every channel builds on.
Human-in-the-Loop
Pause the agent to collect user approval or input mid-run.
