BIORI BIOTECH
BIORI BIOTECH宝锐生物
营销中心 · 销售管理守护生命健康,缔造美好生活

销售活动录入 · 产品说明

营销中心 · 销售管理 供 IT 评估与实现参考 | 版本 v1.0 | 2026-10-08 | 现状:已有可用实现(宝锐销售工作台「拜访与活动 → ✍️ 录」)
这份文档是什么:「销售活动录入」页的完整产品规格 —— 字段、校验、业务规则、数据模型、接口。 配套 可点 Demo(销售活动录入_Demo.html,独立打开、无需后端)可把流程走一遍。 文中示例均为虚构数据,不含真实客户名与销售员姓名。

一、定位与使用场景

一句话:销售在客户现场 / 电话后,用一页把「这次做了什么、客户要什么、下一步谁跟进」结构化录下来,顺带把待办生成掉。

场景说明
拜访后即时录入从「拜访与活动」页的「✍️ 录」进入,提交后自动回到「看」并计入统计
客户页发起带 ?customer= 参数进入,客户字段预填
补录支持改活动日期(默认今天)
草稿续填中途离开不丢,重开出现「恢复草稿」

二、角色与权限

角色能做什么数据可见范围
销售(sales)新建 / 提交活动;检索并关联自己的订单与商机仅本人提交的活动与订单
部门经理 / 总监 / 管理员查看下属活动、按部门/销售下钻统计管辖范围;admin·gm 全量
未登录不可进入(提示未登录,不出任何数据)—
权限在服务端过滤,前端过滤只作纵深防御。越权访问活动详情返回 403。

三、页面结构与流程

① 入口「拜访与活动」Tab 的「✍️ 录」/ 客户页发起
▶
② 基本信息客户 · 联系人 · 日期 · 活动形式 · 活动类型 · 细分
▶
③ 关联订单/商机检索订单→带出货号;关联商机→每商机一套跟进
▶
④ 填跟进内容需求 / 参数 / 问题现象 / 竞对 / 价格 / 决策链
▶
⑤ 自动生成待办由「问题现象 / 下一步计划」派生,可改可删
▶
⑥ 人工确认逐条 confirmed,未确认不入库
▶
⑦ 提交POST /api/activity/submit
▶
⑧ 落库与统计本地 JSON + CloudBase;计入拜访统计
页面为单页表单(客户 → 关系 → 跟进内容 → 待办确认 → 提交),提交前一次性校验;不做实时校验(与现网实现一致)。

四、字段说明

分组字段类型 必填校验 / 说明取值来源
基本信息客户单选检索是必填;从客户工作项检索选择(仅本人可见范围)飞书「客户」工作项
基本信息拜访对象 / 联系人文本否—手工填写
基本信息活动日期日期否默认今天手工 / 默认
基本信息活动形式下拉单选是线下拜访 / 线上跟进 / 陌拜 / 协同拜访;与飞书「活动类型」字段同口径,拜访统计按此计数字典
基本信息活动类型下拉单选是项目跟进 / 采购跟进 / 客户档案完善;决定下方跟进内容的必填项字典
基本信息采购跟进细分下拉单选是拜访采购 / 跟进下单 / 催款(提交时校验)字典
关联关系关联商机多选否可关联多个;每关联一个,下方自动增一套跟进内容飞书「商机」工作项
关联关系订单编号检索多选否按单号或客户名检索,仅显示本人有权限的订单;选中后可带出该单货号ERP 订单 / /api/activity/orders
跟进内容(每套)客户需求多行文本条件必填项目跟进:与「技术参数 / 问题现象」至少填一项手工
跟进内容(每套)技术参数结构化列表条件必填货号 + 描述,可多行手工 / 订单带出
跟进内容(每套)问题现象多行文本条件必填填写后系统自动派生待办,需人工确认手工
跟进内容(每套)下一步计划结构化列表条件必填至少一套必须填;同样派生待办手工
跟进内容(每套)竞对 / 竞品价格结构化列表否勾选「已获取价格」则至少填一条(品牌 / 货号 / 单价)手工
跟进内容(每套)决策链(决策人)结构化列表否姓名 / 职务 / 角色 / 影响力 / 态度 / 关注点等手工
跟进内容(每套)主营业务 / 营收 / TOP3 供应商结构化条件必填「客户档案完善」类型下:与决策链等至少填一项手工
跟进内容(每套)我司当前份额 / 主要竞对数值 / 文本否—手工
档案类成立时间 / 注册资本 / 融资情况 / 人员规模 / 注册证数 / 客户行业 / 公司类型 / 资质文本否客户档案完善类字段手工 / 外部查询
系统字段提交人 / 归属销售 / 创建时间 / id / 附件数 / 商机数 / 区块数系统生成自动提交后由服务端写入,不可编辑服务端

五、校验规则(提交时执行)

分组校验项规则
通用客户必填
通用活动形式必填
通用采购跟进细分必填
通用跟进内容至少一套
通用下一步计划至少一套填了;部分未填时按商机名逐条提示
通用价格信息勾选「已获取价格」的区块,至少填一条(品牌 / 货号 / 单价)
按类型:项目跟进客户需求 / 技术参数 / 问题现象每个区块至少填一项
按类型:客户档案完善档案完善内容决策链 / 主营业务 / 营收 / TOP3 供应商 至少填一项
按类型:采购跟进采购跟进细分必填(拜访采购 / 跟进下单 / 催款)
校验失败时一次性列出全部缺失项(如「客户、活动形式、下一步计划」),并禁用提交按钮至通过。

六、业务规则

主题规则
待办生成自动生成 + 提交前人工确认:由「问题现象」「下一步计划」派生,每条带稳定 uid;销售可改措辞、可标记删除、可勾选确认。提交时只提交 confirmed 且未 removed 的条目。手工新建的待办永不被活动覆盖(靠指纹 upsert)。
订单关联只能检索到本人有权限的订单(服务端过滤);选中订单后可带出该单货号,用于技术参数/测试关联。
技术支持只留入口:活动可标记「需技术支持跟进」,落库并打标,不派单、不跨人镜像。
草稿填写过程自动存草稿(浏览器本地),重开页面出现「恢复草稿」条,可选择恢复或丢弃。
附件支持上传附件;对外用短时有效的下载地址。
归属提交人 = 登录人;活动计入「拜访与活动」统计(按 部门 → 销售 → 客户 下钻)。

七、数据模型

{
  "id": "ACT20261008143012",
  "created": "2026-10-08 14:30:12",
  "submitted_by": "(登录人姓名)",
  "sales": "(登录人姓名)",
  "customer": "(客户名)",
  "contact": "(联系人)",
  "date": "2026-10-08",
  "channel": "offline | online | cold | joint",
  "type": "项目跟进 | 采购跟进 | 客户档案完善",
  "subtype": "拜访采购 | 跟进下单 | 催款",
  "order_refs": ["ZHBR26xxxxxxx"],
  "order_ref_nos": ["ZHBR26xxxxxxx"],
  "order_no": "(主订单号)",
  "blocks": [
    {
      "opp": "(关联商机名) / 空",
      "opp_status": "", "opp_url": "",
      "need": "(客户需求)",
      "params":  [{"sku": "(货号)", "desc": "(描述)"}],
      "issue":   "(问题现象)",
      "feedback": "", "plan": [{"text": "(下一步计划)", "uid": "(稳定uid)"}],
      "competitors": [{"brand": "", "sku": "", "note": ""}],
      "prices":  [{"brand": "", "sku": "", "spec": "", "qty": "", "price": "", "source": ""}],
      "price_on": false,
      "decision": [{"name": "", "title": "", "role": "", "power": "", "phone": "", "note": ""}],
      "biz_desc": "", "revenues": [{"year": "", "amt": "", "source": ""}],
      "suppliers": [{"name": "", "project": ""}],
      "self_share": "", "main_rival": ""
    }
  ],
  "todos": [{"text": "", "due": "", "type": "", "scope": "", "tech_support": false}],
  "feishu_text": "(渲染后的飞书可读文本)",
  "_idx": {"sku_count": 0, "att_count": 0, "opp_count": 0, "block_count": 1}
}
服务端对 blocks[] 做逐字段白名单清洗(未列字段静默丢弃);空块整块丢弃。 索引 _index.json 只保留轻字段(id / created / submitted_by / type / customer / date / channel / 各类计数),统计与列表读索引,不读全量。

八、接口清单

方法路径说明权限
GET/api/activity/options活动类型 / 细分 / 下拉选项字典登录用户
GET/api/activity/orders?q=&limit=订单检索(服务端按权限过滤)登录用户(仅本人可见订单)
GET/api/activity/order_skus?no=按订单号取货号明细登录用户
POST/api/activity/submit提交活动:落库(本地 JSON + CloudBase)+ 待办 upsert登录用户
GET/api/activity/list活动列表(按权限过滤)登录用户
GET/api/activity/detail?id=活动详情(含飞书可读文本)登录用户(越权 403)
POST/api/activity/attachment上传附件登录用户
GET/api/activity/attachment_url?id=取附件短时下载地址登录用户
GET/api/users/roster人员名册(用于归属展示)登录用户
GET/POST/api/todos待办读写(活动派生的待办落此)登录用户

九、与其它模块的关系

关联模块关系
待办活动派生的待办写入待办模块(对内 / 对外分层);按指纹 upsert,只更新变动项,绝不动完成状态与结论
拜访与活动(看板)活动是统计来源;按活动形式分桶(线下拜访 / 线上跟进 / 陌拜 / 协同拜访),支持 部门→销售→客户 下钻
客户 / 商机 / 订单分别取自飞书「客户」「商机」与 ERP 订单;订单金额口径以 ERP 为准
技术支持仅标记 + 留入口,不做派单

十、交付现状与待 IT 决策

现状:已有可用实现(本机服务 + 工作台页面),不是从零开始。IT 可选用「直接对接现网接口」或「参照本规格自研复刻」两条路径。
#待决策项可选方案
1录入入口放在哪里沿用现网工作台 / 并入飞书 / 并入 ERP —— 影响登录态与权限来源
2活动形式字典是否与飞书对齐建议对齐(线下拜访 / 线上跟进 / 陌拜 / 协同拜访),否则按形式统计会对不上
3待办的确认动作是否保留现网为「自动生成 → 人工确认」,建议保留(避免误派活)
4订单/商机数据来源订单取 ERP、客户/商机取飞书;两边靠单号与工作项 id 关联
5附件与移动端是否需要拍照上传 / 移动端适配

附:配套文件

① 销售活动录入_Demo.html —— 独立可点的流程 Demo(mock 数据、无需后端、不写本机存储)
② 现网实现:工作台「拜访与活动」页 →「✍️ 录」
③ 本规格依据现网代码抽取,字段名、校验分支、接口路径均与实现一致。
本文件供内部与 IT 评估使用。