来源:docs/PLATFORM_GAPS_FROM_TEMPLATES.md 第 4 条(P1)。
现象
平台没有 CSV / Excel 导入向导。新客户上线时没有任何把存量数据导进系统的路径:
- 客户的合同清单、供应商库、客户资料、KB 文章、历史工单 —— 全部要么手敲、要么写脚本调 API。
- 模板里的种子数据 ≠ 客户自有数据;客户启用模板后 Day-1 是空的。
这把 ObjectStack 的「上手即用」承诺打得稀碎:客户花 10 分钟看完了 demo,要花 10 周凑数据。
复现
任意模板 + 一份真实客户的 CSV。从 Console / 应用页面试图导入 — 没有入口。
当前 workaround
- 走 REST API:
POST /api/v1/data/<object> 单条循环(无字段映射、无错误恢复、无幂等去重)。
- 写一次性 seed script(只有开发者会做)。
- 把数据塞进模板
src/data/index.ts 然后重发版本(违反「数据 vs 元数据」分离)。
建议范围
M1:导入向导(per-object)
- 入口:每个 list view 顶栏「Import」按钮
- 步骤:上传 CSV / xlsx → 自动检测分隔符 / 编码 → 字段映射(拖拽匹配) → 校验预览(前 20 行红绿提示) → 提交(异步 job)
- 唯一键去重 / Upsert 选项(基于
externalId 或任意字段)
- 失败行下载(带原因列)
M2:关联字段处理
- 通过「lookup-by-business-key」语义:CSV 里写
customer_email,导入时按 customer 对象的 email 字段反查 ID
- 缺失关联时:跳过 / 自动建桩 / 报错三选一
M3:模板预设映射
- 每个对象可在 spec 声明
importPreset: { columns: [...] , defaults: {...} } —— 模板作者预定义好「客户最常导入的字段」一键映射
M4:导出对称
- 同一对象 list view 「Export」按钮,导出 CSV / xlsx,作为反向通道(同时是「先导出 → 编辑 → 再导入」的常用模式)
验收
影响
- 客户冷启动从 10 周缩到 1 天,直接决定 conversion。
- 任何要求「数据迁移」的 RFP 否则零分。
现象
平台没有 CSV / Excel 导入向导。新客户上线时没有任何把存量数据导进系统的路径:
这把 ObjectStack 的「上手即用」承诺打得稀碎:客户花 10 分钟看完了 demo,要花 10 周凑数据。
复现
任意模板 + 一份真实客户的 CSV。从 Console / 应用页面试图导入 — 没有入口。
当前 workaround
POST /api/v1/data/<object>单条循环(无字段映射、无错误恢复、无幂等去重)。src/data/index.ts然后重发版本(违反「数据 vs 元数据」分离)。建议范围
M1:导入向导(per-object)
externalId或任意字段)M2:关联字段处理
customer_email,导入时按 customer 对象的 email 字段反查 IDM3:模板预设映射
importPreset: { columns: [...] , defaults: {...} }—— 模板作者预定义好「客户最常导入的字段」一键映射M4:导出对称
验收
contracts模板:能 CSV 导入 500 条 vendor + 1000 条 contract,关联 vendor 用 vendor.code影响