Skip to main content

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 a createChannel 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.
The channel process holds a persistent connection to the Intelligence gateway, so it needs a long-running host — a serverless request handler cannot own that connection. Your CrewAI server can keep serving the web frontend from the Overview at the same time: the web app and the channel are just two clients of one AG-UI endpoint.

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 a thread you drive with a few methods:
  • channel.onMention fires when a user @-mentions the bot. Call thread.subscribe() to join the thread, then thread.runAgent() to run your CrewAI agent on the mention.
  • channel.onMessage fires on every message in a thread the bot can see. Gate it with thread.isSubscribed() so the agent only responds where it has joined, then thread.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.
Your agent receives an ordinary AG-UI 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, and message.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.

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.