Channel Capabilities
Feature and permission support across Feishu, WeCom, DingTalk, and WhatsApp channels.
Mopheus connects Feishu, WeCom, DingTalk, and WhatsApp through a shared channel engine. All channels support chatting with agents through a bot or linked account, account binding, and sending ticket status changes and comments back to the originating conversation. Message context and presentation capabilities vary by platform.
Installation Records And Outbound Management
Workspace members can view installed channel records from the integrations list. The list shows only the channel, assigned agent or team, installation display name, and connection status. Credentials, external-user bindings, and message content are not exposed there.
Management capabilities depend on the installation and workspace permissions:
- The installer can rename, view details, disconnect, and delete the installation.
- Members with
channel:bindcan configure an installation and rename its display name. - Members with
channel:deletecan view details, disconnect, and delete the installation. - Members with
channel:unbind-usercan remove channel account bindings;self_onlyremoves only their own binding, whileanyremoves any binding in the installation. The defaultanyrule is assigned to owners and admins. - Members without management permission can still see the installation record, but cannot open its details or perform management actions.
Installation details show bound users, pending users, outbound messages, and inbound audit entries. Inbound audits contain only the channel type, external chat and message identifiers, event type, drop reason, and timestamp; raw message bodies and credentials are not exposed.
Agent replies, ticket status changes, and ticket comments are first recorded as outbound delivery entries and then sent by the service instance that currently maintains the channel connection. Failed entries retain their status and error details; only unexpired failed entries can be retried manually. Binding prompts also expire and are not sent after expiration.
Disconnecting an installation cancels outbound entries that have not been sent. Deleting an installation also removes its outbound records, inbound audits, and binding data. The original external conversation can no longer send through that installation after deletion.
Custom HTTP Bridge
Create an installation under Settings → Integrations → Custom applications, select an agent or team, and save the Bridge Token and stream URL shown once after creation. The installation list and details show status and messages, but never display the token again.
Custom applications connect with an installation token and a long-lived HTTP NDJSON stream. The external runner opens GET /api/v1/channel/bridge/stream, posts inbound messages to /api/v1/channel/bridge/messages, and posts delivery results to /api/v1/channel/bridge/deliveries/{deliveryId}/result. Mopheus does not call a runner callback URL. Images and files use the bridge asset upload and delivery download endpoints. A reference runner and test script are included under examples/channel-bridge/ and scripts/test-channel-bridge.sh.
An external user binds through the one-time /channel/bind link sent by the application. Each custom installation has separate user bindings. V1 handles new messages; edits and recalls are not supported. Delivery is at least once, and the runner should persist platform send results by deliveryId and partId to avoid duplicate sends on retry.
Capability Matrix
| Capability | Feishu | WeCom | DingTalk | Notes | |
|---|---|---|---|---|---|
| Direct and group text messages | Yes | Yes | Yes | Yes | Group messages must satisfy the platform's bot-mention rules (bot mode for WhatsApp Linked Device). |
| Group bot-mention filtering | Yes | Yes | Yes | Yes | WeCom only forwards addressed group messages; DingTalk and WhatsApp (bot mode) use mention/reply rules. |
| Interactive card replies | Yes | No | No | No | Feishu uses an interactive card containing Markdown; WeCom, DingTalk, and WhatsApp send formatted text messages. |
| Thread replies | Yes | No | No | No | Feishu preserves topic and thread identifiers. |
| Quoted and forwarded-message expansion | Yes | No | No | Quoted only | Feishu expands quoted and forwarded content; WhatsApp Linked Device includes quoted message text and cached media. |
| Recent group-context prefetch | Yes, permission required | No | No | No | Triggered only when a group message mentions the bot; currently up to 10 messages. |
| Live provider message history | Yes | No | No | No | Only Feishu currently uses the provider message-list API. |
| Inbound images and files | Yes | Yes | Yes | Yes | Media is downloaded and stored as Mopheus attachments. |
| Processing indicator | Yes | No | Yes | Yes | Provided by the platform adapter. |
| Message editing | Yes | No | No | No | Not every channel can update an already-sent message. |
| Streaming updates to the same card | No | No | No | No | The final message is sent once after the task completes; cards are not updated continuously. |
| Account binding and ticket notifications | Yes | Yes | Yes | Yes | Uses the shared account-binding and ticket-source flow. |
Feishu Recent Group Context
When Feishu receives a group message that mentions the bot, Mopheus attempts to fetch messages immediately before the trigger message from Feishu's message list and provides them to the agent as context. The current production fetch limit is 10 messages; the trigger message and its directly quoted parent are not duplicated in the recent-context block.
This capability requires the following permission in the Feishu app:
im:message.group_msgWithout this permission, the Feishu message is still received and processed, but recent context is skipped. This prefetch is a live provider API request; it does not read the conversation messages already stored by Mopheus.
Quoted replies, merged forwards, and recent group context are separate capabilities. The first two are triggered by an explicit quote or forward on the current message. Recent context is triggered only for a group message that mentions the bot.
See Feishu (Lark) Integration, WeCom Integration, DingTalk Integration, and WhatsApp Integration for platform-specific setup.