blog: https://open-claw.me/en/blog/openclaw-feishu-integration-guide
If you're using Feishu (or Lark, its international counterpart), here's how to connect an AI assistant using OpenClaw — without needing a public IP, domain, or any port forwarding.
OpenClaw's built-in Feishu plugin uses WebSocket by default. Your machine connects outbound to Feishu's servers, so NATs and firewalls aren't a problem.
Two Integration Options
| Built-in Plugin | Official Plugin | |
|---|---|---|
| Maintained by | OpenClaw community | ByteDance (Feishu team) |
| Capabilities | Messaging, basic doc reading | Full workspace: docs, calendar, tasks, sheets, wiki |
| Complexity | Moderate | Higher |
| Best for | Quick messaging setup | Teams needing deep workspace access |
This guide covers the built-in plugin, which handles ~90% of use cases.
Setup in 6 Steps
1. Create a Feishu/Lark App
Go to open.feishu.cn (or open.larksuite.com for Lark) → Developer Console → Create Custom App → grab your App ID and App Secret.
2. Configure Permissions
Use batch import — paste this JSON under Permission Management → Batch Enable:
{
"scopes": {
"tenant": [
"im:chat", "im:message", "im:message:send_as_bot",
"im:message.p2p_msg:readonly", "im:message.group_at_msg:readonly",
"im:message.group_msg", "im:message:readonly", "im:resource",
"im:chat.members:bot_access",
"contact:user.employee_id:readonly",
"docs:document.content:read", "sheets:spreadsheet",
"wiki:wiki:readonly"
]
}
}
3. Enable Bot & Event Subscriptions
- App Capabilities → Bot → Enable
- Events & Callbacks → Event Subscriptions → select Long Connection (WebSocket)
- Add event:
im.message.receive_v1(required)
⚠️ Without event subscriptions, the chat input box won't appear when users open a conversation with the bot. This is the #1 cause of "app has not established a long connection" errors.
4. Publish the App
Version Management → Create Version → Submit for Review. For internal enterprise apps, approval is usually instant if you're a tenant admin.
5. Configure OpenClaw
openclaw channels add # Select Feishu, paste credentials
openclaw gateway restart
Or edit ~/.openclaw/openclaw.json directly:
{
channels: {
feishu: {
enabled: true,
domain: "feishu", // "lark" for international
connectionMode: "websocket",
streaming: true,
accounts: {
main: {
appId: "cli_xxx",
appSecret: "your-secret",
botName: "AI Assistant"
}
}
}
}
}
6. Start & Pair
openclaw gateway
openclaw pairing approve feishu <CODE>
Send a message to the bot in Feishu → approve the pairing code → done.
Group Chat Support
Groups work out of the box with groupPolicy: "open". You can restrict to specific groups, control @mention requirements per group, and even route different groups to different AI agents:
{
bindings: [
{ agentId: "main", match: { channel: "feishu", peer: { kind: "direct" } } },
{ agentId: "team-helper", match: { channel: "feishu", peer: { kind: "group", id: "oc_xxx" } } }
]
}
Common Issues
| Problem | Fix |
|---|---|
| No input box in chat | Add im.message.receive_v1 event subscription |
| "App has not established a long connection" | Restart gateway, verify App ID/Secret |
| Bot doesn't respond | Publish the app (drafts don't work), check im:message:send_as_bot permission |
| Slow responses | Enable streaming: true
|
Full Guide
For the complete walkthrough including webhook mode, the official Feishu plugin (full workspace access), multi-agent routing, and detailed troubleshooting:
👉 OpenClaw Feishu/Lark Integration Guide
OpenClaw supports 50+ channels — Feishu, Telegram, Discord, WhatsApp, Slack, and more. Check out the full channel list.
Top comments (0)