[{"data":1,"prerenderedAt":16},["ShallowReactive",2],{"docs-post-tutorial-ep04-feishu-en":3},{"slug":4,"title":5,"description":6,"date":7,"author":8,"tags":9,"lang":11,"image":11,"ogImage":11,"thumbnail":11,"featured":12,"featuredOrder":13,"content":14,"html":15},"tutorial-ep04-feishu-en","EP04 · Let Lobster Take Over Your Feishu","OpenClaw Feishu integration tutorial. 15 minutes to turn your AI lobster into a Feishu\u002FLark colleague — replies to messages, manages calendars, reads docs.","2026-03-06T17:39:00","Yuki & Claw",[10],"Tutorial","",false,99,"\n\n> 15 minutes to turn your AI lobster into the most capable colleague in Feishu\u002FLark — replying to messages, managing calendars, reading docs, sending images.\n\n## 📖 Why Feishu\u002FLark?\n\nIn EP01-03, your lobster got a home, a brain, and skills. But it lives in the terminal — you need to open your computer and type commands to talk to it.\n\nConnect it to Feishu\u002FLark, and your lobster becomes a **Feishu colleague**. @it from your phone anytime, and it gets to work. That's how our team uses it every day: just say \"Claw, look something up for me\" in a group chat, and it's on it.\n\n## What Can It Do After Connecting?\n\nHere's what our team's lobster \"Claw\" does in Feishu\u002FLark every day:\n\n| Capability | Description |\n|---|---|\n| 💬 **DMs & Group Chats** | Chat directly in Feishu\u002FLark, @it in groups — handles multiple people simultaneously |\n| 📅 **Schedule Management** | \"Book a meeting tomorrow at 3 PM\" — writes it into Feishu\u002FLark calendar, checks availability |\n| 📄 **Read & Write Docs** | Reads Feishu\u002FLark docs, fills Bitable spreadsheets, drafts meeting summaries |\n| 🔍 **Search Knowledge Base** | \"Find last week's competitor analysis\" — pulls it from Feishu\u002FLark wiki |\n| 🎨 **AI Creation** | \"Draw me a picture\" or \"Generate a video\" — creates and sends it right to chat |\n| 📎 **Send Files** | Images, PDFs, spreadsheets — generated files sent directly, no download-and-forward |\n| 📰 **Scheduled Pushes** | Daily AI news, project reminders — automated, no babysitting required |\n| 🤖 **Task Management** | Integrates with Feishu\u002FLark Tasks — create, track, and remind on to-dos |\n\n## Step 1: Create a Feishu\u002FLark App\n\n### ① Open the Feishu Developer Platform\n\nGo to [open.feishu.cn\u002Fapp](https:\u002F\u002Fopen.feishu.cn\u002Fapp\u002F) (or [open.larksuite.com\u002Fapp](https:\u002F\u002Fopen.larksuite.com\u002Fapp\u002F) for Lark) and log in with your account.\n\nClick **\"Create Custom App\"**, give it a name (like \"My Lobster\" 🦞), and upload an avatar.\n\n### ② Get App ID and App Secret\n\nAfter creation, on the **\"Credentials & Basic Info\"** page, you'll see:\n\n```\nApp ID:     cli_xxxxxxxxxx\nApp Secret: xxxxxxxxxxxxxxxxxxxxxx\n```\n\nSave these two values — you'll need them in the next step.\n\n### ③ Enable Bot Capability\n\nFind **\"App Capabilities\" → \"Bot\"** in the left menu and enable it. This lets your app send and receive messages in Feishu\u002FLark chats.\n\n> 💡 Stop here for now — **don't configure permissions or event subscriptions yet**. First, give the ID and Secret to OpenClaw and get it running, then come back to finish the setup.\n\n## Step 2: Configure OpenClaw\n\nGive your lobster the App ID and App Secret you just got:\n\n### ① Edit Configuration\n\n```bash\nopenclaw config edit\n```\n\nAdd the Feishu\u002FLark config under `channels`:\n\n```yaml\nchannels:\n  feishu:\n    appId: \"your-app-id\"\n    appSecret: \"your-app-secret\"\n```\n\n### ② Restart OpenClaw\n\n```bash\nopenclaw gateway restart\n# ✓ Gateway restarted\n# Feishu channel listening on :3121\n```\n\nWhen you see `Feishu channel listening`, your lobster is online and ready to receive messages.\n\n> 💡 **Tip:** If using Webhook mode, set up Nginx to reverse-proxy `https:\u002F\u002Fyour-domain\u002Fwebhook\u002Ffeishu` to `localhost:3121` for HTTPS. Long connection mode doesn't need this.\n\n## Step 3: Go Back to Feishu and Finish Setup\n\nWith OpenClaw running, return to the Feishu Developer Platform to complete the remaining steps.\n\n### ① Configure Event Subscriptions\n\nGo to **\"Events & Callbacks\"** in the left menu:\n\n**Recommended: Long Connection (WebSocket)**\n\n1. Click the **\"Long Connection\"** tab and enable it\n2. Feishu\u002FLark pushes messages to your lobster automatically — no public IP required\n\n**Alternative: Webhook**\n\nIf long connection isn't available:\n1. Set the **Request URL** to: `https:\u002F\u002Fyour-domain\u002Fwebhook\u002Ffeishu`\n2. Feishu\u002FLark sends a verification request — OpenClaw handles it automatically since it's already running\n\n**Add Events:**\n\nSearch for `im` in the event list and enable all IM-related events. The corresponding IM permissions (messaging, group chat, reactions, etc.) will be **automatically granted** — no need to add them separately in Permission Management.\n\nKey events include:\n- `im.message.receive_v1` — Receive messages (required)\n- `im.message.reaction.created_v1` — Message reactions added\n- `im.message.reaction.deleted_v1` — Message reactions removed\n- `im.chat.member.bot.added_v1` — Bot added to group\n- `im.chat.member.bot.deleted_v1` — Bot removed from group\n\n> ⚠️ **Why configure OpenClaw before event subscriptions?** Feishu\u002FLark sends a verification request when you set up events. If OpenClaw isn't running, verification fails. Long connection mode also needs the app to establish the connection first.\n\n### ② Configure Permissions\n\nGo to **\"Permission Management\"** and add permissions not covered by event subscriptions:\n\n**🔵 Resources (Required):**\n- `im:resource` — Send images and files (not auto-granted by event subscriptions)\n\n**🔵 Card Messages (Recommended):**\n- `cardkit:card:write` — Send rich card messages (buttons, colors, columns)\n- `cardkit:card:read` — Read card messages\n\n> ⚠️ Without Card permissions, your lobster can only send plain text. Add these two for nice-looking card messages.\n\n**🔵 Contacts (Recommended):**\n- `contact:user.base:readonly` — User info\n- `contact:user.email:readonly` — Email\n- `contact:user.phone:readonly` — Phone number\n- `contact:user.department:readonly` — User's department\n- `contact:user.employee_id:readonly` — Employee ID\n- `contact:contact.base:readonly` — Directory\n- `contact:department.base:readonly` — Department info\n\n> 💡 Enable all contacts permissions — otherwise your lobster may not be able to read colleagues' full info.\n\n**🟢 Docs & Drive (Optional):**\n- `docx:document` — Read and write docs\n- `docx:document:readonly` — Read-only docs\n- `docx:document:create` — Create docs\n- `docx:document:write_only` — Write docs\n- `docx:document.block:convert` — Block conversion\n- `drive:drive` — Cloud drive operations\n- `drive:drive:readonly` — Read-only drive\n- `drive:drive.metadata:readonly` — Read file info\n- `drive:drive.search:readonly` — Search drive\n\n**🟢 Bitable (Optional):**\n- `bitable:app` — Read and write Bitable\n- `bitable:app:readonly` — Read-only Bitable\n\n> 💡 For fine-grained Bitable permissions (`base:record`, `base:field`, `base:table`, etc.), search `base` in Permission Management and enable all to ensure full access.\n\n**🟢 Calendar (Optional):**\n- `calendar:calendar` — Manage calendars\n- `calendar:calendar.event:read` — Read events\n- `calendar:calendar.event:create` — Create events\n- `calendar:calendar.event:update` — Update events\n- `calendar:calendar.event:delete` — Delete events\n- `calendar:calendar.free_busy:read` — Check availability\n\n> 💡 Enable all calendar permissions including `calendar:calendar:read`, `calendar:calendar.acl`, etc. for full calendar functionality.\n\n**🟢 Wiki (Optional):**\n- `wiki:wiki` — Search and read knowledge base\n- `wiki:wiki:readonly` — Read-only wiki\n\n**🟢 Tasks (Optional):**\n- `task:task` — Manage tasks\n- `task:task:read` — Read tasks\n- `task:task:write` — Write tasks\n- `task:tasklist:read` — Read task lists\n- `task:tasklist:write` — Write task lists\n\n> 💡 For task-related permissions (`task:comment`, `task:section`, `task:attachment`, etc.), search `task` and enable all.\n\n> 💡 **Recommendation:** Messaging + Cards + Contacts are the basics — always enable them. Docs, Calendar, Tasks, etc. can be added later as needed.\n\n### ③ Publish the App\n\nClick **\"Version Management & Publishing\" → \"Create Version\"**, add release notes, and submit for review. For internal enterprise use, it's ready once your admin approves.\n\n> ⚠️ **Note:** Except for review-exempt permissions, every change to permissions or event subscriptions requires **submitting a new version for review**. Recommended: add all needed permissions at once to avoid repeated reviews.\n\n## Step 4: Test It Out!\n\nFind your bot in Feishu\u002FLark and start chatting:\n\n```\nYou: Hey! Who are you?\n🦞: Hi! I'm your AI lobster assistant, just moved into Feishu 🏠 What can I help with?\n\nYou: Draw me a surfing lobster\n🦞: 🎨 On it! Generating... [image sent directly to chat]\n\nYou: What's on my calendar tomorrow?\n🦞: 📅 Tomorrow you have 2 events:\n  10:00 Product Weekly\n  15:00 Client Meeting\n```\n\n## Advanced: Using in Group Chats\n\nYour lobster isn't just for DMs — add it to groups as an \"AI colleague\":\n\n1. In group settings, **add a bot** and search for your app name\n2. **@your lobster's name** in the group to chat with it\n3. The lobster only responds when @mentioned — no spam\n\n> 💡 **Real example:** Our team's lobster \"Claw\" does this in Feishu every day: manages the boss's calendar, generates images and videos for colleagues, auto-pushes AI industry news, answers all kinds of questions. Today it helped 6 people simultaneously — zero complaints.\n\n## FAQ\n\n**💥 Added contacts permission but still can't read colleague info?**\n- This is a **contacts scope restriction** in the Feishu\u002FLark admin console. Ask your company's Feishu admin to go to **Admin Console → App Permissions** and set \"Contacts Access Scope\" to **\"All Employees\"**. Otherwise the bot can only see a limited subset of users.\n\n**💥 Not receiving messages?**\n- Event subscription not verified → Is OpenClaw running? Re-save event config on the platform\n- Permissions not approved → Admin needs to approve in Feishu management console\n- Changed permissions\u002Fevents but didn't republish → Create a new version and publish\n\n**💥 Lobster can only send plain text, not cards?**\n- Missing `cardkit:card:write` permission → Add it in Permission Management and republish\n\n**💥 Lobster says \"no permission\"?**\n- Required permission not requested or approved → Add it in Permission Management, get admin approval\n\n**💥 Can't send images?**\n- Missing `im:resource` permission, or image is too large (Feishu limits ~20MB)\n\n## 📌 Key Takeaways\n\n- **Step 1** Create app on Feishu Developer Platform → Get App ID + Secret → Enable bot\n- **Step 2** Configure OpenClaw with ID\u002FSecret → Start the lobster\n- **Step 3** Go back to Feishu → Set up event subscriptions + permissions → Publish\n- **Step 4** Test: DM directly, @lobster in groups\n\n---\n\n**Next Episode: EP05 · Teaching Your Lobster to Remember You** — Give your lobster memory of who you are, your preferences, and habits — making it a true \"personal assistant.\"\n","\u003Cblockquote>\n\u003Cp>15 minutes to turn your AI lobster into the most capable colleague in Feishu\u002FLark — replying to messages, managing calendars, reading docs, sending images.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2>📖 Why Feishu\u002FLark?\u003C\u002Fh2>\n\u003Cp>In EP01-03, your lobster got a home, a brain, and skills. But it lives in the terminal — you need to open your computer and type commands to talk to it.\u003C\u002Fp>\n\u003Cp>Connect it to Feishu\u002FLark, and your lobster becomes a \u003Cstrong>Feishu colleague\u003C\u002Fstrong>. @it from your phone anytime, and it gets to work. That&#39;s how our team uses it every day: just say &quot;Claw, look something up for me&quot; in a group chat, and it&#39;s on it.\u003C\u002Fp>\n\u003Ch2>What Can It Do After Connecting?\u003C\u002Fh2>\n\u003Cp>Here&#39;s what our team&#39;s lobster &quot;Claw&quot; does in Feishu\u002FLark every day:\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Capability\u003C\u002Fth>\n\u003Cth>Description\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>💬 \u003Cstrong>DMs &amp; Group Chats\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>Chat directly in Feishu\u002FLark, @it in groups — handles multiple people simultaneously\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>📅 \u003Cstrong>Schedule Management\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>&quot;Book a meeting tomorrow at 3 PM&quot; — writes it into Feishu\u002FLark calendar, checks availability\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>📄 \u003Cstrong>Read &amp; Write Docs\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>Reads Feishu\u002FLark docs, fills Bitable spreadsheets, drafts meeting summaries\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>🔍 \u003Cstrong>Search Knowledge Base\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>&quot;Find last week&#39;s competitor analysis&quot; — pulls it from Feishu\u002FLark wiki\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>🎨 \u003Cstrong>AI Creation\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>&quot;Draw me a picture&quot; or &quot;Generate a video&quot; — creates and sends it right to chat\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>📎 \u003Cstrong>Send Files\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>Images, PDFs, spreadsheets — generated files sent directly, no download-and-forward\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>📰 \u003Cstrong>Scheduled Pushes\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>Daily AI news, project reminders — automated, no babysitting required\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>🤖 \u003Cstrong>Task Management\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>Integrates with Feishu\u002FLark Tasks — create, track, and remind on to-dos\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch2>Step 1: Create a Feishu\u002FLark App\u003C\u002Fh2>\n\u003Ch3>① Open the Feishu Developer Platform\u003C\u002Fh3>\n\u003Cp>Go to \u003Ca href=\"https:\u002F\u002Fopen.feishu.cn\u002Fapp\u002F\">open.feishu.cn\u002Fapp\u003C\u002Fa> (or \u003Ca href=\"https:\u002F\u002Fopen.larksuite.com\u002Fapp\u002F\">open.larksuite.com\u002Fapp\u003C\u002Fa> for Lark) and log in with your account.\u003C\u002Fp>\n\u003Cp>Click \u003Cstrong>&quot;Create Custom App&quot;\u003C\u002Fstrong>, give it a name (like &quot;My Lobster&quot; 🦞), and upload an avatar.\u003C\u002Fp>\n\u003Ch3>② Get App ID and App Secret\u003C\u002Fh3>\n\u003Cp>After creation, on the \u003Cstrong>&quot;Credentials &amp; Basic Info&quot;\u003C\u002Fstrong> page, you&#39;ll see:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>App ID:     cli_xxxxxxxxxx\nApp Secret: xxxxxxxxxxxxxxxxxxxxxx\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Save these two values — you&#39;ll need them in the next step.\u003C\u002Fp>\n\u003Ch3>③ Enable Bot Capability\u003C\u002Fh3>\n\u003Cp>Find \u003Cstrong>&quot;App Capabilities&quot; → &quot;Bot&quot;\u003C\u002Fstrong> in the left menu and enable it. This lets your app send and receive messages in Feishu\u002FLark chats.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>💡 Stop here for now — \u003Cstrong>don&#39;t configure permissions or event subscriptions yet\u003C\u002Fstrong>. First, give the ID and Secret to OpenClaw and get it running, then come back to finish the setup.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2>Step 2: Configure OpenClaw\u003C\u002Fh2>\n\u003Cp>Give your lobster the App ID and App Secret you just got:\u003C\u002Fp>\n\u003Ch3>① Edit Configuration\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-bash\">openclaw config edit\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Add the Feishu\u002FLark config under \u003Ccode>channels\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-yaml\">channels:\n  feishu:\n    appId: &quot;your-app-id&quot;\n    appSecret: &quot;your-app-secret&quot;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>② Restart OpenClaw\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-bash\">openclaw gateway restart\n# ✓ Gateway restarted\n# Feishu channel listening on :3121\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>When you see \u003Ccode>Feishu channel listening\u003C\u002Fcode>, your lobster is online and ready to receive messages.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>💡 \u003Cstrong>Tip:\u003C\u002Fstrong> If using Webhook mode, set up Nginx to reverse-proxy \u003Ccode>https:\u002F\u002Fyour-domain\u002Fwebhook\u002Ffeishu\u003C\u002Fcode> to \u003Ccode>localhost:3121\u003C\u002Fcode> for HTTPS. Long connection mode doesn&#39;t need this.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2>Step 3: Go Back to Feishu and Finish Setup\u003C\u002Fh2>\n\u003Cp>With OpenClaw running, return to the Feishu Developer Platform to complete the remaining steps.\u003C\u002Fp>\n\u003Ch3>① Configure Event Subscriptions\u003C\u002Fh3>\n\u003Cp>Go to \u003Cstrong>&quot;Events &amp; Callbacks&quot;\u003C\u002Fstrong> in the left menu:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Recommended: Long Connection (WebSocket)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Click the \u003Cstrong>&quot;Long Connection&quot;\u003C\u002Fstrong> tab and enable it\u003C\u002Fli>\n\u003Cli>Feishu\u002FLark pushes messages to your lobster automatically — no public IP required\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Alternative: Webhook\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>If long connection isn&#39;t available:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Set the \u003Cstrong>Request URL\u003C\u002Fstrong> to: \u003Ccode>https:\u002F\u002Fyour-domain\u002Fwebhook\u002Ffeishu\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Feishu\u002FLark sends a verification request — OpenClaw handles it automatically since it&#39;s already running\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Add Events:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Search for \u003Ccode>im\u003C\u002Fcode> in the event list and enable all IM-related events. The corresponding IM permissions (messaging, group chat, reactions, etc.) will be \u003Cstrong>automatically granted\u003C\u002Fstrong> — no need to add them separately in Permission Management.\u003C\u002Fp>\n\u003Cp>Key events include:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>im.message.receive_v1\u003C\u002Fcode> — Receive messages (required)\u003C\u002Fli>\n\u003Cli>\u003Ccode>im.message.reaction.created_v1\u003C\u002Fcode> — Message reactions added\u003C\u002Fli>\n\u003Cli>\u003Ccode>im.message.reaction.deleted_v1\u003C\u002Fcode> — Message reactions removed\u003C\u002Fli>\n\u003Cli>\u003Ccode>im.chat.member.bot.added_v1\u003C\u002Fcode> — Bot added to group\u003C\u002Fli>\n\u003Cli>\u003Ccode>im.chat.member.bot.deleted_v1\u003C\u002Fcode> — Bot removed from group\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>⚠️ \u003Cstrong>Why configure OpenClaw before event subscriptions?\u003C\u002Fstrong> Feishu\u002FLark sends a verification request when you set up events. If OpenClaw isn&#39;t running, verification fails. Long connection mode also needs the app to establish the connection first.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3>② Configure Permissions\u003C\u002Fh3>\n\u003Cp>Go to \u003Cstrong>&quot;Permission Management&quot;\u003C\u002Fstrong> and add permissions not covered by event subscriptions:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>🔵 Resources (Required):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>im:resource\u003C\u002Fcode> — Send images and files (not auto-granted by event subscriptions)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>🔵 Card Messages (Recommended):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>cardkit:card:write\u003C\u002Fcode> — Send rich card messages (buttons, colors, columns)\u003C\u002Fli>\n\u003Cli>\u003Ccode>cardkit:card:read\u003C\u002Fcode> — Read card messages\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>⚠️ Without Card permissions, your lobster can only send plain text. Add these two for nice-looking card messages.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cstrong>🔵 Contacts (Recommended):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>contact:user.base:readonly\u003C\u002Fcode> — User info\u003C\u002Fli>\n\u003Cli>\u003Ccode>contact:user.email:readonly\u003C\u002Fcode> — Email\u003C\u002Fli>\n\u003Cli>\u003Ccode>contact:user.phone:readonly\u003C\u002Fcode> — Phone number\u003C\u002Fli>\n\u003Cli>\u003Ccode>contact:user.department:readonly\u003C\u002Fcode> — User&#39;s department\u003C\u002Fli>\n\u003Cli>\u003Ccode>contact:user.employee_id:readonly\u003C\u002Fcode> — Employee ID\u003C\u002Fli>\n\u003Cli>\u003Ccode>contact:contact.base:readonly\u003C\u002Fcode> — Directory\u003C\u002Fli>\n\u003Cli>\u003Ccode>contact:department.base:readonly\u003C\u002Fcode> — Department info\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>💡 Enable all contacts permissions — otherwise your lobster may not be able to read colleagues&#39; full info.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cstrong>🟢 Docs &amp; Drive (Optional):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>docx:document\u003C\u002Fcode> — Read and write docs\u003C\u002Fli>\n\u003Cli>\u003Ccode>docx:document:readonly\u003C\u002Fcode> — Read-only docs\u003C\u002Fli>\n\u003Cli>\u003Ccode>docx:document:create\u003C\u002Fcode> — Create docs\u003C\u002Fli>\n\u003Cli>\u003Ccode>docx:document:write_only\u003C\u002Fcode> — Write docs\u003C\u002Fli>\n\u003Cli>\u003Ccode>docx:document.block:convert\u003C\u002Fcode> — Block conversion\u003C\u002Fli>\n\u003Cli>\u003Ccode>drive:drive\u003C\u002Fcode> — Cloud drive operations\u003C\u002Fli>\n\u003Cli>\u003Ccode>drive:drive:readonly\u003C\u002Fcode> — Read-only drive\u003C\u002Fli>\n\u003Cli>\u003Ccode>drive:drive.metadata:readonly\u003C\u002Fcode> — Read file info\u003C\u002Fli>\n\u003Cli>\u003Ccode>drive:drive.search:readonly\u003C\u002Fcode> — Search drive\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>🟢 Bitable (Optional):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>bitable:app\u003C\u002Fcode> — Read and write Bitable\u003C\u002Fli>\n\u003Cli>\u003Ccode>bitable:app:readonly\u003C\u002Fcode> — Read-only Bitable\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>💡 For fine-grained Bitable permissions (\u003Ccode>base:record\u003C\u002Fcode>, \u003Ccode>base:field\u003C\u002Fcode>, \u003Ccode>base:table\u003C\u002Fcode>, etc.), search \u003Ccode>base\u003C\u002Fcode> in Permission Management and enable all to ensure full access.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cstrong>🟢 Calendar (Optional):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>calendar:calendar\u003C\u002Fcode> — Manage calendars\u003C\u002Fli>\n\u003Cli>\u003Ccode>calendar:calendar.event:read\u003C\u002Fcode> — Read events\u003C\u002Fli>\n\u003Cli>\u003Ccode>calendar:calendar.event:create\u003C\u002Fcode> — Create events\u003C\u002Fli>\n\u003Cli>\u003Ccode>calendar:calendar.event:update\u003C\u002Fcode> — Update events\u003C\u002Fli>\n\u003Cli>\u003Ccode>calendar:calendar.event:delete\u003C\u002Fcode> — Delete events\u003C\u002Fli>\n\u003Cli>\u003Ccode>calendar:calendar.free_busy:read\u003C\u002Fcode> — Check availability\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>💡 Enable all calendar permissions including \u003Ccode>calendar:calendar:read\u003C\u002Fcode>, \u003Ccode>calendar:calendar.acl\u003C\u002Fcode>, etc. for full calendar functionality.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cstrong>🟢 Wiki (Optional):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>wiki:wiki\u003C\u002Fcode> — Search and read knowledge base\u003C\u002Fli>\n\u003Cli>\u003Ccode>wiki:wiki:readonly\u003C\u002Fcode> — Read-only wiki\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>🟢 Tasks (Optional):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>task:task\u003C\u002Fcode> — Manage tasks\u003C\u002Fli>\n\u003Cli>\u003Ccode>task:task:read\u003C\u002Fcode> — Read tasks\u003C\u002Fli>\n\u003Cli>\u003Ccode>task:task:write\u003C\u002Fcode> — Write tasks\u003C\u002Fli>\n\u003Cli>\u003Ccode>task:tasklist:read\u003C\u002Fcode> — Read task lists\u003C\u002Fli>\n\u003Cli>\u003Ccode>task:tasklist:write\u003C\u002Fcode> — Write task lists\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>💡 For task-related permissions (\u003Ccode>task:comment\u003C\u002Fcode>, \u003Ccode>task:section\u003C\u002Fcode>, \u003Ccode>task:attachment\u003C\u002Fcode>, etc.), search \u003Ccode>task\u003C\u002Fcode> and enable all.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cblockquote>\n\u003Cp>💡 \u003Cstrong>Recommendation:\u003C\u002Fstrong> Messaging + Cards + Contacts are the basics — always enable them. Docs, Calendar, Tasks, etc. can be added later as needed.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3>③ Publish the App\u003C\u002Fh3>\n\u003Cp>Click \u003Cstrong>&quot;Version Management &amp; Publishing&quot; → &quot;Create Version&quot;\u003C\u002Fstrong>, add release notes, and submit for review. For internal enterprise use, it&#39;s ready once your admin approves.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>⚠️ \u003Cstrong>Note:\u003C\u002Fstrong> Except for review-exempt permissions, every change to permissions or event subscriptions requires \u003Cstrong>submitting a new version for review\u003C\u002Fstrong>. Recommended: add all needed permissions at once to avoid repeated reviews.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2>Step 4: Test It Out!\u003C\u002Fh2>\n\u003Cp>Find your bot in Feishu\u002FLark and start chatting:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>You: Hey! Who are you?\n🦞: Hi! I&#39;m your AI lobster assistant, just moved into Feishu 🏠 What can I help with?\n\nYou: Draw me a surfing lobster\n🦞: 🎨 On it! Generating... [image sent directly to chat]\n\nYou: What&#39;s on my calendar tomorrow?\n🦞: 📅 Tomorrow you have 2 events:\n  10:00 Product Weekly\n  15:00 Client Meeting\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Advanced: Using in Group Chats\u003C\u002Fh2>\n\u003Cp>Your lobster isn&#39;t just for DMs — add it to groups as an &quot;AI colleague&quot;:\u003C\u002Fp>\n\u003Col>\n\u003Cli>In group settings, \u003Cstrong>add a bot\u003C\u002Fstrong> and search for your app name\u003C\u002Fli>\n\u003Cli>\u003Cstrong>@your lobster&#39;s name\u003C\u002Fstrong> in the group to chat with it\u003C\u002Fli>\n\u003Cli>The lobster only responds when @mentioned — no spam\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cblockquote>\n\u003Cp>💡 \u003Cstrong>Real example:\u003C\u002Fstrong> Our team&#39;s lobster &quot;Claw&quot; does this in Feishu every day: manages the boss&#39;s calendar, generates images and videos for colleagues, auto-pushes AI industry news, answers all kinds of questions. Today it helped 6 people simultaneously — zero complaints.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2>FAQ\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>💥 Added contacts permission but still can&#39;t read colleague info?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>This is a \u003Cstrong>contacts scope restriction\u003C\u002Fstrong> in the Feishu\u002FLark admin console. Ask your company&#39;s Feishu admin to go to \u003Cstrong>Admin Console → App Permissions\u003C\u002Fstrong> and set &quot;Contacts Access Scope&quot; to \u003Cstrong>&quot;All Employees&quot;\u003C\u002Fstrong>. Otherwise the bot can only see a limited subset of users.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>💥 Not receiving messages?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Event subscription not verified → Is OpenClaw running? Re-save event config on the platform\u003C\u002Fli>\n\u003Cli>Permissions not approved → Admin needs to approve in Feishu management console\u003C\u002Fli>\n\u003Cli>Changed permissions\u002Fevents but didn&#39;t republish → Create a new version and publish\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>💥 Lobster can only send plain text, not cards?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Missing \u003Ccode>cardkit:card:write\u003C\u002Fcode> permission → Add it in Permission Management and republish\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>💥 Lobster says &quot;no permission&quot;?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Required permission not requested or approved → Add it in Permission Management, get admin approval\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>💥 Can&#39;t send images?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Missing \u003Ccode>im:resource\u003C\u002Fcode> permission, or image is too large (Feishu limits ~20MB)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>📌 Key Takeaways\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Step 1\u003C\u002Fstrong> Create app on Feishu Developer Platform → Get App ID + Secret → Enable bot\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Step 2\u003C\u002Fstrong> Configure OpenClaw with ID\u002FSecret → Start the lobster\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Step 3\u003C\u002Fstrong> Go back to Feishu → Set up event subscriptions + permissions → Publish\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Step 4\u003C\u002Fstrong> Test: DM directly, @lobster in groups\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Chr>\n\u003Cp>\u003Cstrong>Next Episode: EP05 · Teaching Your Lobster to Remember You\u003C\u002Fstrong> — Give your lobster memory of who you are, your preferences, and habits — making it a true &quot;personal assistant.&quot;\u003C\u002Fp>\n",1775543780284]