Chuyển đến nội dung

Data Boards

Boards là kho dữ liệu cốt lõi cho các pipeline CRM — khách hàng tiềm năng, giao dịch, nhiệm vụ, hoặc bất kỳ dữ liệu có cấu trúc nào. Truyền ID board trong board_ids khi tạo AI agent để cấp cho nó quyền truy cập vào dữ liệu đó — xem Hướng dẫn toàn diện §4.

Khởi tạo client trước (xem Cài đặt hoặc Quick Start).


Board CRUD

const { data: boards } = await client.boards.list();
const board = await client.boards.get("board_id");
const newBoard = await client.boards.create({ name: "Enterprise Leads" });
await client.boards.update("board_id", { name: "Enterprise Leads 2025" });
await client.boards.delete("board_id");

Sắp xếp lại

await client.boards.reorder({ order: ["board_id_1", "board_id_2", "board_id_3"] });

Nhập / Xuất

// Nhập CSV (multipart/form-data)
const formData = new FormData();
formData.append("file", csvFile);
const result = await client.boards.importCsv("board_id", formData);
// Nhập Excel
const excelForm = new FormData();
excelForm.append("file", excelFile);
await client.boards.importExcel("board_id", excelForm);
// Tiến trình nhập
const progress = await client.boards.getImportProgress("board_id");
// Xuất CSV
const csv = await client.boards.exportCsv("board_id");
// Xuất CSV qua email
await client.boards.exportCsvViaMail("board_id", { email: "user@example.com" });

Lưu ý: exportCsvViaMail chỉ dành cho TypeScript.


Mục

const { data: items } = await client.boards.listItems("board_id", { limit: 100 });
const item = await client.boards.getItem("board_id", "item_id");
// createItem sử dụng { fields: [{ board_field_id, value }] }
const lead = await client.boards.createItem("board_id", {
fields: [
{ board_field_id: "name_field_id", value: "Acme Corp" },
{ board_field_id: "status_field_id", value: "new" },
{ board_field_id: "value_field_id", value: 50000 },
],
});
// updateItem sử dụng { data: [{ key, value }] } — lưu ý `key`, không phải `board_field_id`
await client.boards.updateItem("board_id", lead._id, {
data: [{ key: "status_field_id", value: "qualified" }],
});
await client.boards.deleteItem("board_id", "item_id");
await client.boards.bulkDeleteItems("board_id", { ids: ["item_1", "item_2", "item_3"] });

Phát hiện xung đột

const { is_conflicted } = await client.boards.checkConflict("board_id", "item_id", { version: 2 });

Mục liên kết (board liên quan)

// Lấy mục liên quan từ board khác
const related = await client.boards.getRelatedItems("board_id", "item_id", "related_board_id");
// Lấy mục board liên kết theo loại (Opportunities / Tasks)
const linked = await client.boards.getLinkedBoardItems("contact_board_id", "item_id", "Opportunities");
// Liên kết và hủy liên kết
await client.boards.linkItems("board_id", "item_id", "related_board_id", { related_item_ids: ["other_item_id"] });
await client.boards.unlinkItems("board_id", "item_id", "related_board_id", { related_item_ids: ["other_item_id"] });

Tìm kiếm

const results = await client.boards.search("board_id", { q: "enterprise" });

Trường

const field = await client.boards.createField("board_id", {
name: "Deal Value",
type: "Number",
});
await client.boards.updateField("board_id", field._id, { name: "Contract Value" });
await client.boards.deleteField("board_id", field._id);
// Sắp xếp lại và cập nhật hàng loạt
await client.boards.reorderFields("board_id", { fields: ["field_id_1", "field_id_2"] });
await client.boards.bulkUpdateFields("board_id", { fields: [{ _id: "field_1", name: "Updated" }] });

Phân đoạn

// listSegments trả về BoardSegment[] trực tiếp (không có wrapper { data })
const segments = await client.boards.listSegments("board_id");
const segment = await client.boards.createSegment("board_id", {
name: "High Value Leads",
filter: {},
});
await client.boards.updateSegment("board_id", segment._id, { name: "VIP Leads" });
await client.boards.deleteSegment("board_id", segment._id);

Knowledge Hub — Thư mục

// Tìm kiếm
const folders = await client.boards.searchFolders({ q: "contracts" });
// CRUD
const folder = await client.boards.getFolder("folder_id", { recursive: true });
const newFolder = await client.boards.createFolder({ name: "Contracts", parent_id: "parent_id" });
await client.boards.updateFolder("folder_id", { name: "Renamed" });
await client.boards.deleteFolders({ ids: ["folder_id_1", "folder_id_2"] });
// Nội dung (metadata thư mục + thư mục con + tệp)
const contents = await client.boards.getFolderContents("folder_id");

Knowledge Hub — Tệp

// Tìm kiếm và CRUD
const files = await client.boards.searchFiles({ folderId: "folder_id" });
const file = await client.boards.getFile("file_id");
const newFile = await client.boards.createFile({ name: "report.pdf", folder_id: "folder_id" });
await client.boards.updateFile("file_id", { name: "renamed.pdf" });
await client.boards.deleteFiles({ ids: ["file_id_1", "file_id_2"] });
// Tải lên và tải xuống
const uploaded = await client.boards.uploadFile(formData);
const response = await client.boards.downloadFile("file_id");

Tệp Board

Tải lên tệp đính kèm vào bản ghi board (không phải Knowledge Hub).

const formData = new FormData();
formData.append("file", file);
const { url } = await client.boards.uploadBoardFile(formData);
// Endpoint thay thế
const { url: url2 } = await client.boards.uploadBoardFileV2(formData);

Tính năng AI

// Thẻ do AI tạo
const { tags } = await client.boards.generateAiTags({ text: "Enterprise deal with Acme Corp" });
// Xem trước liên kết
const preview = await client.boards.getLinkPreview("https://example.com");

Ổ đĩa ngoài

Tích hợp OneDrive / Google Drive cho Knowledge Hub.

// Bắt đầu luồng OAuth
const { auth_url } = await client.boards.initiateDriveAuth("onedrive");
// Liệt kê thư mục và tệp từ xa
const folders = await client.boards.listDriveFolders("onedrive");
const files = await client.boards.listDriveFiles("onedrive", { folder_id: "remote_folder_id" });
// Tải xuống tệp từ xa
const response = await client.boards.downloadDriveFile("onedrive", { file_id: "remote_file_id" });
// Trạng thái phiên (chỉ OneDrive)
const { status } = await client.boards.getOneDriveSessionStatus();