DingTalk Channel for OpenClaw connects an OpenClaw agent to a DingTalk enterprise internal bot. It uses DingTalk's Stream mode, so the gateway needs no webhook, public IP, or inbound entry point. The plugin handles direct messages, group chats, and @-mentions, and forwards them into OpenClaw's message processing and outbound capabilities. OpenClaw 2026.3.24 or later is required, and the plugin should be listed in plugins.allow.
Inbound messages can be text, images, voice, video, files, and DingTalk document or file cards, with quoted-message recovery and body extraction for common text attachments. Replies go out as Markdown or as streaming AI cards using the v2 structured block renderer, with taskInfo metadata and inline images. Configuration is done interactively with openclaw onboard or openclaw configure --section channels, or by hand with a clientId, clientSecret, DM and group policies, and a message type.
When the runtime supports tool registration, the plugin exposes a dingtalkaskuserquestion tool. The model can send a native DingTalk interactive card to confirm a choice, offer single or multiple selections, or collect form fields; the user's submission or cancellation is injected back as a new conversation message and the task continues. Two input shapes are accepted: a lightweight questions DSL, and fields using DingTalk's form-variable protocol with types such as TEXTAREA, NUMBER, SELECT, MULTI_SELECT, DATE, TIME, DATETIME, CHECKBOX, SWITCH, and checkbox groups.
Features
- Stream mode: no webhook or public address required
- Chat scopes: private chats, group chats, and @-bot mentions
- Message types: text, image, voice, video, file, and DingTalk document/file cards
- Reply modes: Markdown replies or streaming AI cards with structured blocks and inline images
- Interactive form cards: dingtalkaskuser_question with built-in card templates and no template ID setup
- Multi-agent bindings: multiple agents and bots, plus experimental @-multi-assistant routing
- /btw side questions: a bypass that answers independently of the main session lock
- Device Flow registration: scan-to-authorise credential retrieval without manual copying
- Generation abort: commands such as 停止, stop, /stop, or esc stop the current response
- Feedback learning and docs API: documented features for learning from feedback and calling the DingTalk documents API
