Feishu / Lark
Feishu (Lark) bot integration via WebSocket long connection with DMs, group chats, streaming card output, and multi-agent routing.
Tags: workspace, china, enterprise, lark
Category: Workspace
Use Cases
- Enterprise AI assistant for Chinese companies using Feishu
- Global team AI bot via Lark for international organizations
- Behind-firewall corporate deployment (WebSocket outbound-only connectivity)
- Department-specific agents using multi-agent routing
- Streaming AI assistant with Feishu card-based progressive responses
- Private conversational AI for individual team members via DM
Tips
- Use the onboarding wizard (openclaw onboard) for guided Feishu setup — it walks through credential collection
- Set domain: 'lark' in config if you're on the global Lark platform instead of China Feishu
- WebSocket mode means no public URL needed — perfect for behind-firewall corporate environments
- Use the streaming card output for better UX — responses appear progressively like ChatGPT
- Start with a single-user DM setup before expanding to group chats
- Check gateway logs (openclaw logs --follow) immediately after setup to catch permission errors early
- Multi-agent routing lets different groups get different agent personalities — useful for department-specific bots
Known Issues & Gotchas
- Feishu (China) and Lark (global) use different API domains — set domain: 'lark' for Lark tenants or API calls will fail
- Permissions must be batch-imported using the exact JSON format — missing even one scope causes silent failures
- The app must be published (or in development mode with your test users added) before the bot receives messages
- WebSocket mode must be explicitly selected in Event Subscription — HTTP webhook mode is the default
- App Secret is shown only once during creation — save it immediately
- Group chat support requires adding the bot to groups manually — it doesn't auto-join
- The bot is recommended as a private conversational assistant — avoid adding to large group chats for security
- Feishu tenant admins can restrict which apps are installable — check organization policies
Alternatives
- Slack
- Google Chat
- Microsoft Teams
- Discord
Community Feedback
I ended up using OpenClaw on ClawCloud. OpenClaw uses Feishu's WebSocket long connection option instead of webhooks — the connection is outbound, so no public URL headache.
— Reddit r/OpenClawCloud
Feishu and Lark support added — WebSocket long connection. This came up often enough in questions that it felt worth a proper write-up. OpenClaw now runs on Feishu and Lark through ClawCloud.
— GitHub Discussions
The plugin offers several configuration options to tailor its behavior. All settings are located under the channels.feishu key in your OpenClaw config.
— NPM @larksuiteoapi/feishu-openclaw-plugin
Frequently Asked Questions
Do I need a public URL for Feishu?
No. Feishu uses WebSocket long connections, which are outbound from your server. This works behind NAT, firewalls, and corporate networks without any public URL configuration. This is one of Feishu's biggest advantages over Google Chat.
What's the difference between Feishu and Lark?
Feishu (飞书) is ByteDance's collaboration platform for the China market. Lark is the international version. They're functionally identical but use different API domains and account systems. Set domain: 'lark' in your OpenClaw config for Lark tenants.
Does the Feishu plugin need to be installed separately?
No, for current OpenClaw releases. The Feishu plugin ships bundled. Older builds or custom installations may need: openclaw plugins install @openclaw/feishu
Can I use Feishu in group chats?
Yes, but the bot must be manually added to groups. For security, OpenClaw recommends using the bot as a private conversational assistant rather than in large group chats where anyone can prompt it.
What are the streaming cards in Feishu?
Feishu supports interactive cards that can be updated in real time. OpenClaw uses this feature to deliver streaming responses — you see the AI's reply being composed progressively, similar to the ChatGPT interface. This provides much better UX than waiting for a complete response.
Configuration Examples
Basic Feishu setup (China)
channels:
feishu:
enabled: true
appId: "cli_a1234567890b"
appSecret: "your-app-secret"Lark global setup
channels:
feishu:
enabled: true
appId: "cli_a1234567890b"
appSecret: "your-app-secret"
domain: larkMulti-account setup
channels:
feishu:
enabled: true
appId: "cli_default_app"
appSecret: "default-secret"
accounts:
hr-bot:
appId: "cli_hr_bot_app"
appSecret: "hr-secret"
eng-bot:
appId: "cli_eng_bot_app"
appSecret: "eng-secret"Installation
Built-in (bundled with OpenClaw)