刘欣的《客户画像》框架里有 23 个维度工作台完全没采集(工商/资质/战略方向 0 字段;项目级量纲全散在自由文本)。本草图给出把这些维度塞进「活动录入」页的具体形态 —— 因为它是工作台唯一的人工采集入口(「三表一书」字段虽全但不落库,是打印模板)。
脚本/销售工作台服务.py 的 _clean_block(b) 是硬编码白名单:它用 20 个 b.get('…') 逐字段重建一个新 dict,不在表内的 key 全部被丢弃。新字段若只改前端,提交后静默消失。_block_empty(bb) 会检查那 20 个旧字段是否全空 —— 如果销售只填了新卡片、旧字段没动,整个块会被判定为「空块」直接丢弃。verify_activity_block_whitelist.py 可复跑:
| 场景 | 实测结果 |
|---|---|
| A. 只填旧字段(基线) | ✅ 块保留(证明抽取逻辑正确) |
| B. 只填 22 个新字段 | 存活 0 / 22 且 _block_empty → True 整块被丢弃 |
C. decision[] 新增 5 个子字段 | 存活 0 / 5 |
| 落点 | 函数 / 脚本 | 加什么 |
|---|---|---|
活动录入工具/活动录入.html | custBlockHtml()「客户档案完善」卡组,现有 5 张 | 新增 2 张卡(工商与资质 / 决策模式 + 痛点),现有「决策链」行内加 4 个字段。卡号顺延为 1/2/3/4/5/6/7。 |
projBlockHtml()「项目跟进」卡组,按商机分块 | 新增 1 张卡(项目画像 9 维),每块一份。 | |
作战地图聚合build_customer_dossier.py位于 脚本/ 目录 | DIM_LABEL / score() | 打分维度 5 → 12 维,把新字段纳入完善度评分。(该脚本当前 count=0,扩容不会影响任何已有渲染) |
| 数据包 | merge_workbench_data.py位于 脚本/ 目录 | 无需改 —— 前端按客户名取数,新 key 自动进 workbench_data.json。 |
后端(必改)销售工作台服务.py位于 脚本/ 目录 · L1849 起 | _clean_block(b) | 把 20 个新 key 加进白名单。现有硬编码 20 个块级 key(opp/need/params/issue/feedback/competitors/prices/decision/biz_desc/revenues/suppliers/self_share/main_rival/visit_goal/visit_content/plan/test_order…),新字段不加进来 提交即丢。同时 decision[] 子字段(现仅 name/title/role/power/phone/note)也要补 influence_tier/reports_to/attitude/comm_pref/focus_point。 |
_block_empty(bb) | 把新 key 也纳入「非空」判断。现有逻辑只看旧 20 个字段 —— 销售只填新卡片时整块会被判空直接丢弃。这是最隐蔽的丢数据路径。 |
f_regStage 档位)就不新造。f_regStage 档位,不必新造reports_to 建树(可渲染组织架构图);「性格」不采,拆成沟通偏好与关注点两个客观字段。top_products 是「我司卖给客户的量」,不是「客户成品项目的年出货量」,两者完全不同。| 字段 | 我的建议值 | 来源 / 需你确认的点 |
|---|---|---|
corp_nature企业属性 |
人医 / 动保 / NGS / 其他类 | 框架原话,建议直接采用。⚠️ 但注意这是"客户类型"还是"客户所服务市场"?框架未明说。 |
strategy_focus战略方向 |
综合类 / 呼吸道感染为主 / 肿瘤为主 / HPV / NGS / 法医 / 动保 / 宠物 | 框架原话。⚠️ 需确认:要不要加"科研试剂/高校"?(工作台有整条生命科学业务线,框架里没有对应项) |
financing_status融资上市 |
未融资 / 天使~A轮 / B轮及以后 / 已上市(科创·创业)/ 已上市(主板·新三板)/ 其他 | 框架只说"融资上市情况",未给档位 —— 我按 IVD 行业惯例拟的,请确认颗粒度。 |
headcount_scale人员规模 |
<50 / 50~200 / 200~500 / 500~1000 / >1000 人 | 框架只说"人员规模",未给档位。档位若过细会误填,过粗没区分度。 |
segment板块归属 |
IVD注册 / 公卫 / 国外 / 宠物 / 动物 / 科研 | 框架给了前 5 个,"科研"是我加的(生命科学业务线需要)。⚠️ 这几个板块是否互斥?一个项目能否跨板? |
influence_tier决策层级 |
决策人 / 技术把关 / 采购执行 / 影响者 / 使用者 | 框架描述的是"研发总监→经理→人员"的组织树,我加的是角色功能分类。两者可以并存(树用 reports_to 建,功能用此字段)——请确认是否都要。 |
test_status测试状态 |
未测试 / 测试中 / 已通过 / 未通过 / 曾测试已停用 | 框架说"过往测试情况",未给状态机。⚠️ 要不要跟工作台已有的「测试反馈」模块对齐口径?(避免同一件事两套说法) |
| 框架中的项 | 结论 | 理由 |
|---|---|---|
| 是否接受礼品 | 不建字段 | 商业贿赂红线。写进公司系统即形成"可检索的行贿风险清单",对内审/合规/客户审计都是负资产;销售也会因抗拒而不再填整张卡(污染整表可达性)。客户礼品往来走已有的礼品台账即可。 |
| 家庭情况 (已婚 · 2孩 · 养猫) | 不建字段 | 属《个人信息保护法》下的个人信息,婚姻/家庭属敏感个人信息,处理需单独同意且须"必要"。采集无任何可举证的业务必要性。⚠️ 其出处是 AI 知识库里的华为《客户关系规划工具包》 —— 华为能采 ≠ 宝锐能采(体量、法务资源、行业惯例都不同)。 |
| 性格特点 (进取型 · 稳健型 · 开朗) | 不建字段 | 主观人格评价,写进系统等于留下难以撤回的人格评价记录;且同一人不同销售评价会互相矛盾,聚合出来是噪声,没有决策价值。 |
comm_pref 沟通偏好(如"只认可量化数据,需提前发对比表")· focus_point 关注点(性能/价格/账期/技术支持)· decision_style_personal 决策习惯(如"先看数据再谈价,不走人情")| 步 | 动作 | 验收 / 风险 |
|---|---|---|
| 1 | 你先定版第四节的 7 个枚举 | 不定版就动手 → 销售各填各的,一个月后统计口径就飘了,返工代价远大于等一天。 |
| 2 | ⚠️ 先改后端 _clean_block() + _block_empty()必须在第 3 步之前 | 顺序不能反。若前端先上、后端白名单没加,销售填的一切当场静默消失且无人报错 —— 等一周后看数据是空的才发现,白填一周。 验收:脚本直接 POST 一个含新 key 的 payload,读回 数据/activities/ACT*.json 确认新 key 原样存在。 |
| 3 | 改 custBlockHtml() 加 2 张卡 + 决策链行内 4 字段 | 验收:只填新卡片、旧字段全留空提交一条 → 确认该块没有被丢弃(专门验 _block_empty 那条路径)。 |
| 4 | 改 projBlockHtml() 加项目画像卡 | 多商机时每块一份,注意别让页面过长(建议卡片默认折叠)。 |
| 5 | 扩 build_customer_dossier.py 5 → 12 维 | 该脚本当前 count=0,扩容零回归风险。改完跑一次确认 JSON 结构正常。 |
| 6 | (可选)灰度给 3~5 个销售试填一周 | ⚠️ 技术之外的最大风险是填写率。加卡不加必填,且建议折叠,否则销售会绕过这张卡。 |