logo Mr.Robota 具身智能学习手册 中文
Chapter 16: Damo Institute & Datawhale Online Team Learning

Inventory and Multidimensional Table Synchronization

This chapter synchronizes the inventory status of the household supply assistant with Lark Multi-dimensional Table. Readers do not need to understand the entire robotic arm process; they only need to know how the inventory snapshot is generated, how it is written into Lark tables, and which configurations to check first in case of failure.

After completing this chapter

Readers should be able to:

  1. Understand the data structure of the household inventory snapshot.
  2. Create a Lark multi-dimensional table for synchronization.
  3. Configure appToken and tableId.
  4. Manually trigger a sync and check the result.

Table Fields

It is recommended that the multi-dimensional table includes the following fields:

Field Meaning
SKU Unique material identifier
物品 Display name
剩余数量 Current inventory quantity
阈值 Low inventory threshold
建议补货 Recommended restock quantity
单位 Pieces, bottles, blocks, etc.
位置 Home storage location
状态 Normal or low inventory
购买链接 Purchase entry
下单链接 Order entry generated by OpenClaw
更新时间 Latest update time

Configuration Location

Two values are required for multi-dimensional table synchronization:

envOPENCLAW_FEISHU_BITABLE_APP_TOKEN=
OPENCLAW_FEISHU_BITABLE_TABLE_ID=

If you don’t want to write environment variables, you can also place them in channels.feishu.inventoryBitable of ~/.openclaw/openclaw.json.

Synchronization Entry

This topic has provided the tuntunclaw code in the same directory. The inventory synchronization entry corresponds to:

Common Questions

  • feishu bitable sync not configured: Usually indicates that appToken/tableId is not configured, or the configuration file is not read by the program.
  • Access denied: Usually means that the Feishu app does not have multi-dimensional table permissions.
  • openclaw.json cannot be read in Python: Check if the file contains a UTF-8 BOM. On Windows, it is recommended to write it as UTF-8 without BOM.