Integrations

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:bind can configure an installation and rename its display name.
  • Members with channel:delete can view details, disconnect, and delete the installation.
  • Members with channel:unbind-user can remove channel account bindings; self_only removes only their own binding, while any removes any binding in the installation. The default any rule 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

CapabilityFeishuWeComDingTalkWhatsAppNotes
Direct and group text messagesYesYesYesYesGroup messages must satisfy the platform's bot-mention rules (bot mode for WhatsApp Linked Device).
Group bot-mention filteringYesYesYesYesWeCom only forwards addressed group messages; DingTalk and WhatsApp (bot mode) use mention/reply rules.
Interactive card repliesYesNoNoNoFeishu uses an interactive card containing Markdown; WeCom, DingTalk, and WhatsApp send formatted text messages.
Thread repliesYesNoNoNoFeishu preserves topic and thread identifiers.
Quoted and forwarded-message expansionYesNoNoQuoted onlyFeishu expands quoted and forwarded content; WhatsApp Linked Device includes quoted message text and cached media.
Recent group-context prefetchYes, permission requiredNoNoNoTriggered only when a group message mentions the bot; currently up to 10 messages.
Live provider message historyYesNoNoNoOnly Feishu currently uses the provider message-list API.
Inbound images and filesYesYesYesYesMedia is downloaded and stored as Mopheus attachments.
Processing indicatorYesNoYesYesProvided by the platform adapter.
Message editingYesNoNoNoNot every channel can update an already-sent message.
Streaming updates to the same cardNoNoNoNoThe final message is sent once after the task completes; cards are not updated continuously.
Account binding and ticket notificationsYesYesYesYesUses 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_msg

Without 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.