OpenClaw Feishu Base
Use this plugin when working with Feishu Base / Bitable in OpenClaw.
What it provides
A unified tool:
feishu_base
Recommended actions include:
resolve_linklist_basesdiscover_tablesfind_tablelist_tablesget_tableget_recordquery_recordscreate_recordsupdate_recordsupsert_recordsdelete_recordscreate_tablerename_tabledelete_tablecreate_field(including linked fields vialink.table_id/link.table_name, plus duplex links vialink.back_field_name)rename_fieldupdate_fielddelete_fieldlist_folder
Best-use guidance
- Prefer direct Base links or explicit identifiers (
app_token,table_id) when available. - Discovery helpers are convenience features; direct link/token workflows are more reliable.
- Use
discover_tablesfor broad, self-discoverable scans when you do not know the app token. - Inspect schema before writing when field names are uncertain.
- Query/list before update when locating existing records.
- Avoid hardcoding a fixed app/table in workflow logic; derive the target from the current user request (link, base, table name, or explicit IDs).
Workflow: add customer record (dynamic, non-hardcoded)
Use this when user asks to “add customer”.
-
Resolve target table first.
- If user provides a Base link, run
resolve_linkand use returnedapp_token+table_id. - If no table is specified, run
list_tables/find_tableand choose best match (Customers,Customer,客户). - If multiple likely matches exist, ask one concise disambiguation question.
- If user provides a Base link, run
-
Inspect schema before write.
- Run
get_tableand read writable fields. - Map by field names (for example:
Customer Name,Company Name,City,State,Country,Phone,Email,Status).
- Run
-
Build minimal safe payload.
- Fill only fields provided by user.
- If user says location only (e.g., “Jiji at Penang”), map
Customer Name=Jiji,City/State=Penangwhen present. - For select fields, only use valid options; otherwise ask or write to a text fallback field.
-
Create and verify.
- Run
create_recordswith one record first. - Confirm success by returned
record_id(and optionallyget_record/query_recordsif needed). - Report exact fields written.
- Run
-
Handle blockers explicitly.
- If
FEISHU_NOT_CONFIGUREDor permission errors occur, stop and ask user to reconnect/authorize Feishu; do not loop retries.
- If
Safety
Destructive operations are supported but should be disabled by default unless explicitly needed.
Config flag:
allowDelete: false(recommended default)
When deletion is disabled, destructive actions should be blocked:
delete_recordsdelete_fielddelete_table
Requirements
- OpenClaw with Feishu channel configured
- valid Feishu credentials already present in OpenClaw config
- access to the target Base/Bitable resources
Notes
- This plugin works best as a link-first / token-first Feishu Base tool.
- Some discovery flows depend on what Feishu APIs expose in the current tenant/account context.
- For field creation and schema mutation, prefer serialized one-by-one writes. Parallel field creation can hit Feishu-side limits and cause intermittent
400failures. - Credential resolution prefers explicit
account_id, then active runtime/session account context when available, then runtime-injectedchannels.feishu, and finally persisted OpenClaw config fromOPENCLAW_CONFIG_PATHor~/.openclaw/openclaw.jsonwhen some runtime paths do not inject Feishu config consistently.
