数据面板
client.boards 是 CRM 管道的核心数据存储 — 潜在客户、交易、任务或任何结构化数据。每个面板都有自定义字段和条目。面板也可以链接到知识中心以进行 AI 驱动的搜索。
如需逐步指南,请参阅 SDK 指南中的数据面板。
Schema
Board
| 字段 | 类型 | 说明 |
|---|---|---|
object_name | string? | 对象类型标识符 |
id | string | 唯一面板 ID |
organization_id | string | 所属组织 |
name | string | 面板显示名称 |
description | string? | 可选描述 |
workflow_id | string? | 关联的工作流 ID |
hidden | boolean? | 面板是否隐藏 |
team_ids | string[]? | 有访问权限的团队 |
created_at | string | ISO 8601 创建时间戳 |
updated_at | string | ISO 8601 更新时间戳 |
BoardField
| 字段 | 类型 | 说明 |
|---|---|---|
_id | string | 唯一字段 ID |
name | string | 字段显示名称 |
type | string | 字段类型(text, number, date, select 等) |
options | object[]? | 类型特定配置 |
required | boolean? | 字段是否必填 |
CreateBoardInput
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | ✓ | 面板名称 |
description | string | 可选描述 | |
type | string | 面板类型 | |
fields | object[] | 初始字段定义 | |
team_ids | string[] | 有访问权限的团队 ID | |
show_id | boolean | 显示 ID 列 |
方法
面板增删改查
| 方法 | TypeScript | Python | 说明 |
|---|---|---|---|
| 列出面板 | list | list | 列出所有面板 |
| 获取面板 | get | get | 按 ID 获取面板 |
| 创建面板 | create | create | 创建新面板 |
| 更新面板 | update | update | 更新面板名称/描述 |
| 删除面板 | delete | delete | 删除面板 |
| 重新排序面板 | reorder | reorder | 更改显示顺序 |
导入 / 导出
| 方法 | TypeScript | Python | 说明 |
|---|---|---|---|
| 导出 CSV | exportCsv | export_csv | 将所有条目导出为 CSV |
| 导入 CSV | importCsv | import_csv | 从 CSV 文件导入条目 |
| 导入 Excel | importExcel | import_excel | 从 Excel 文件导入条目 |
| 获取导入进度 | getImportProgress | get_import_progress | 轮询进行中导入的状态 |
字段
| 方法 | TypeScript | Python | 说明 |
|---|---|---|---|
| 创建字段 | createField | create_field | 向面板添加列 |
| 更新字段 | updateField | update_field | 修改字段配置 |
| 删除字段 | deleteField | delete_field | 移除字段 |
| 重新排序字段 | reorderFields | reorder_fields | 更改列顺序 |
| 批量更新字段 | bulkUpdateFields | bulk_update_fields | 同时更新多个字段 |
条目
| 方法 | TypeScript | Python | 说明 |
|---|---|---|---|
| 列出条目 | listItems | list_items | 分页的面板条目列表 |
| 获取条目 | getItem | get_item | 获取单个条目 |
| 创建条目 | createItem | create_item | 向面板添加条目 |
| 更新条目 | updateItem | update_item | 更新条目字段值 |
| 删除条目 | deleteItem | delete_item | 移除条目 |
| 批量删除 | bulkDeleteItems | bulk_delete_items | 按 ID 删除多个条目 |
| 搜索 | search | search | 在面板内进行全文搜索 |
| 链接条目 | linkItems | link_items | 将条目链接到相关面板条目 |
| 取消链接条目 | unlinkItems | unlink_items | 移除条目间的链接 |
分段
| 方法 | TypeScript | Python | 说明 |
|---|---|---|---|
| 列出分段 | listSegments | list_segments | 列出已保存的筛选视图 |
| 创建分段 | createSegment | create_segment | 将筛选保存为分段 |
| 更新分段 | updateSegment | update_segment | 更新分段的筛选条件 |
| 删除分段 | deleteSegment | delete_segment | 移除分段 |
list / list
const { data: boards } = await client.boards.list({ limit: 20 });for (const board of boards) { console.log(board.id, board.name);}result = client.boards.list(limit=20)for board in result.get("data", []): print(board["id"], board["name"])create / create
const board = await client.boards.create({ name: "Enterprise Leads", description: "Leads from the enterprise segment", fields: [ { name: "Company", type: "text" }, { name: "Deal Size", type: "number" }, { name: "Stage", type: "select", options: { choices: ["Prospect", "Qualified", "Closed"] } }, ],});board = client.boards.create( "Enterprise Leads", description="Leads from the enterprise segment", fields=[ {"name": "Company", "type": "text"}, {"name": "Deal Size", "type": "number"}, {"name": "Stage", "type": "select", "options": {"choices": ["Prospect", "Qualified", "Closed"]}}, ],)createItem / create_item
传递一个 fields 数组,每个条目包含 board_field_id(BoardField 的 _id)和对应的 value。
const item = await client.boards.createItem("board_id", { fields: [ { board_field_id: "field_id_company", value: "Acme Corp" }, { board_field_id: "field_id_deal_size", value: 50000 }, { board_field_id: "field_id_stage", value: "Qualified" }, ],});item = client.boards.create_item("board_id", { "fields": [ {"board_field_id": "field_id_company", "value": "Acme Corp"}, {"board_field_id": "field_id_deal_size", "value": 50000}, {"board_field_id": "field_id_stage", "value": "Qualified"}, ],})listItems / list_items
const page = await client.boards.listItems("board_id", { limit: 50, skip: 0 });console.log(`${page.data.length} of ${page.total} items`);page = client.boards.list_items("board_id", limit=50, skip=0)print(f"{len(page['data'])} of {page['total']} items")search
在面板的条目中进行全文搜索。
const results = await client.boards.search("board_id", { q: "Acme", limit: 20, offset: 0,});results = client.boards.search("board_id", q="Acme", limit=20, offset=0)importCsv / import_csv
const formData = new FormData();formData.append("file", csvBlob, "leads.csv");const result = await client.boards.importCsv("board_id", formData);console.log(`Imported: ${result.imported}, Errors: ${result.errors}`);with open("leads.csv", "rb") as f: result = client.boards.import_csv("board_id", files={"file": f})print(result)createField / create_field
const field = await client.boards.createField("board_id", { name: "Priority", type: "select", options: { choices: ["Low", "Medium", "High"] },});field = client.boards.create_field("board_id", { "name": "Priority", "type": "select", "options": {"choices": ["Low", "Medium", "High"]},})