> ## Documentation Index
> Fetch the complete documentation index at: https://octop.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Set Up IM Channels in Octop

> Connect Octop agents to Feishu, WeCom, DingTalk, QQ, WeChat, Telegram, and more so your team can message AI agents from the platforms they already use.

IM channels let your team talk to Octop agents through the chat tools they already use every day. When someone sends a message on Feishu, WeCom, DingTalk, or Telegram, Octop routes it to the linked agent and replies in the same thread — no need to open the web UI. Each channel belongs to exactly one agent, so you control which agent handles which platform.

## Where to configure channels

Channels are configured per agent:

```text theme={null}
Personalization → Channels
```

Select the agent at the top of the page, then toggle on the platform you want and enter its credentials.

![Channels](https://mintcdn.com/octop/P_aBdthWeK4YndCE/images/ui-channels.png?fit=max\&auto=format\&n=P_aBdthWeK4YndCE\&q=85\&s=46782370c551bd3e6311d0c1693a02dc)

## Platform setup

> [tab] Feishu
>
> Prefer QR registration in the channel drawer: generate a Feishu AI bot QR code, scan it with Feishu **Scan**, then confirm on the phone. Octop fills in and saves the credentials.
>
> Or create a Feishu app in the [Feishu Open Platform](https://open.feishu.cn/) and note down the **App ID** and **App Secret**.
>
> **1. Enable the channel**
>
> Toggle on **Feishu** under **Personalization → Channels**.
>
> **2. Bind the bot**
>
> Click the QR button and scan with Feishu, or fill in the **App ID** and **App Secret** from your Feishu app settings.
>
> **3. Register the webhook**
>
> If you created the app yourself, copy the webhook URL shown by Octop and paste it into the **Event subscription** section of your Feishu app configuration, then save the Feishu app settings.
>
> **4. Verify**
>
> Send a message to the bot to confirm the channel is receiving events. Replies inside a Feishu topic use the topic reply API (`reply_in_thread`).
>
> Octop also ships a guided terminal wizard that walks through the same flow:
>
> ```bash theme={null}
> octop channel feishu-setup
> ```

> [tab] WeCom
>
> Set up a WeCom (企业微信) application and gather the **Corp ID** (企业ID), **Agent ID**, and **Secret**.
>
> **1. Enable the channel**
>
> Toggle on **WeCom** under **Personalization → Channels**.
>
> **2. Enter your credentials**
>
> Fill in the Corp ID, Agent ID, and Secret from your WeCom application settings.
>
> **3. Configure the callback URL**
>
> Add the callback URL Octop shows to your WeCom app so it can receive messages.
>
> For a quicker bind using a QR-code scan, run `octop channel bind` and scan the code with the WeCom mobile app.

> [tab] DingTalk
>
> Prefer QR registration in the channel drawer: generate an authorization QR code, scan it with the DingTalk app while signed in to the same organization, then confirm. Octop creates and enables the channel.
>
> Or create a DingTalk bot in the [DingTalk Open Platform](https://open.dingtalk.com/) and collect the **Client ID** and **Client Secret**.
>
> **1. Enable the channel**
>
> Toggle on **DingTalk** under **Personalization → Channels**.
>
> **2. Bind the bot**
>
> Scan the QR code, or fill in the Client ID and Client Secret from your DingTalk bot configuration.
>
> **3. Configure the webhook**
>
> If you created the app yourself, copy the callback URL provided by Octop into the **Message receive mode** settings of your DingTalk app, enable the relevant event scopes, and save.

> [tab] QQ
>
> Register a QQ Bot on the open platform, or bind one with a QR scan from the channel drawer / CLI.
>
> **1. Enable the channel**
>
> Toggle on **QQ** under **Personalization → Channels**.
>
> **2. Bind credentials**
>
> Prefer **QR bind** in the channel drawer (scan with mobile QQ), or fill in **App ID** and **Client Secret** manually and save.
>
> **3. Configure group context (optional)**
>
> For group chats, set visibility (`auto`, `all`, `mention_recent`, or `mention_only`) and when the agent should reply (`mention` or `always` when visibility is `all`).
>
> **4. Private-chat streaming**
>
> QQ direct chat defaults to official `stream_messages`. Saving the channel writes `c2c_streaming: true`. Set `c2c_streaming: false` only if you want a single static reply. The old keys `streaming` and `response_mode` do nothing for C2C. Group, channel, and channel-DM chats have no stream API and stay static. Tool-progress bubbles use extra passive-reply quota (about four per inbound message).
>
> From the terminal:
>
> ```bash theme={null}
> octop channel bind qq --agent main
> ```

> [tab] Telegram
>
> Create a bot with [@BotFather](https://t.me/BotFather) and copy the **Bot Token**.
>
> **1. Enable the channel**
>
> Toggle on **Telegram** under **Personalization → Channels**.
>
> **2. Enter the bot token**
>
> Paste the Bot Token and save. Octop connects through the Telegram Bot API and supports both direct and group messages.
>
> > [!WARNING]
> >
> > Keep your Bot Token secret. If it is ever exposed, revoke it in BotFather and update the channel in Octop.

> [tab] Others
>
> Octop also ships channels for **WeChat** (personal WeChat via an iLink Bot), **Yuanbao** (Tencent Yuanbao conversations), **Xiaoyi** (Huawei Xiaoyi / OpenClaw over the A2A protocol), and **MQTT** (routing IoT device or robot messages to an agent).
>
> Each follows the same pattern: toggle the channel on under **Personalization → Channels**, then fill in the credentials that platform requires.

## Choose how replies appear

Open a channel's settings drawer and use **Message display → Response mode**:

* **Final only (Recommended)** sends one completed reply after the agent finishes. Progress narration emitted before tool calls is hidden, while generated media is delivered with the final text.
* **Live progress** keeps the staged, streaming updates for workflows where users need to follow execution.

New external IM channels default to **Final only**. **Show thinking** and **Show tool hints** remain separate display controls. QQ private chat ignores this switch and uses `c2c_streaming` instead.

> [!TIP]
>
> To manage channels from the terminal (`list`, `test`, `delete`, `feishu-setup`, `bind`), see [Channel & cron commands](https://octop.mintlify.site/cli/channel-cron-commands.md#octop-channel).

> [!NOTE]
>
> Each agent can have multiple channels active at the same time. All messages are processed by the same underlying agent, so the conversation context stays unified regardless of which platform a user messages from.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.