#10347: DingTalk: add channel support
docs
size: XL
Cluster:
Messaging Channel Integrations
## Summary
This PR adds DingTalk channel support to OpenClaw with a plugin-focused implementation and minimal impact on existing channels.
## What’s included
- Added DingTalk extension and channel wiring needed to enable DingTalk messaging.
- Implemented DingTalk inbound/outbound handling, including recipient normalization and channel-specific delivery behavior.
- Added DingTalk onboarding/config/docs updates.
## Scope and safety
- Changes are scoped to DingTalk and required channel entry integration.
- No functional changes intended for non-DingTalk channels.
## User-facing behavior
- Users can send/receive messages through DingTalk.
- Scheduled DingTalk reminders confirm in simple natural language (without internal terms like session mode, delivery fields, or tool parameters).
## Validation
- Manually verified key DingTalk flows:
- inbound message reply
- proactive send
- scheduled reminder creation and delivery
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
- Adds a new DingTalk channel implemented as an extension/plugin, plus core runtime support under `src/dingtalk/**` for stream (WebSocket) inbound handling and proactive outbound sends.
- Wires DingTalk into the channel plugin system: config types, target normalization/resolution, outbound adapter, and outbound session routing for `dingtalk:` targets.
- Introduces DingTalk-specific onboarding/docs and exports via `src/plugin-sdk/index.ts` so the extension can access shared helpers.
- Includes media/AI Card streaming support and pairing/allowlist integration for inbound message authorization.
<h3>Confidence Score: 2/5</h3>
- This PR adds substantial new DingTalk functionality but has a few correctness issues that can break multi-account setups and group mention gating.
- Main concerns are (1) global access-token caching shared across accounts, which will mis-authenticate in multi-account configs, and (2) group mention gating appears to check the sender rather than the bot, causing dropped group messages. Remaining changes look generally consistent with the plugin/channel architecture but should be re-verified once these are fixed.
- src/dingtalk/auth.ts, src/dingtalk/message.ts
<!-- greptile_other_comments_section -->
<sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub>
<!-- /greptile_comment -->
Most Similar PRs
#9444: feat(channels): add DingTalk channel
by sm-yjr · 2026-02-05
92.7%
#13291: feat(ddingtalk): add DingTalk(dingtalk) channel extension
by largezhou · 2026-02-10
84.0%
#22260: feat(extensions/deltachat): add Delta.Chat channel extension
by alanz · 2026-02-20
80.9%
#12619: Add Synology Chat channel integration
by MikeWang0316tw · 2026-02-09
77.6%
#9199: feat: Add Cisco Webex Teams channel plugin
by chrharri · 2026-02-05
75.8%
#17361: feat(channels): add Tuitui (推推) channel support
by haomehaode · 2026-02-15
75.7%
#15051: feat: Zulip channel plugin with concurrent message processing
by FtlC-ian · 2026-02-12
74.6%
#9594: feat: add SimpleX messaging channel
by dangoldbj · 2026-02-05
74.5%
#23464: feat(synology-chat): add group/channel support
by druide67 · 2026-02-22
74.5%
#20348: Add support for Keybase as a channel
by xgess · 2026-02-18
74.5%