在线客服系统(客服云)开发需求文档
基于设计稿的 SaaS 多租户客服平台产品需求规格说明书
1 项目概述
客服云是一款面向中小企业及大型组织的 SaaS 多租户在线客服平台,帮助企业通过网页聊天窗口、微信公众号、APP 内嵌、电话工单、邮件等统一渠道接待访客,并配套客服工作台、客户管理、知识库、数据统计与平台运营管理能力。
1.1 产品定位
产品采用 多租户隔离 架构,每个租户拥有独立的客服团队、客户数据、知识库、渠道配置和统计报表。平台运营方通过管理端进行租户开通、套餐定价、系统运维监控和运营数据分析。客服端与管理端共享同一套账号与权限体系,但功能入口和数据范围完全不同。
1.2 业务目标
- 为租户提供 全渠道、实时、可配置 的客户服务能力,缩短访客等待时间并提升首次解决率。
- 为客服主管提供可视化的 服务数据与绩效报表,支持基于数据的团队管理与流程优化。
- 为平台运营方提供 租户生命周期管理、订阅计费与系统运维 能力,支撑 SaaS 商业化运转。
1.3 范围边界
范围内
- 客服工作台实时会话
- 访客端聊天 Widget
- 客户管理与标签体系
- 对话记录查询与审计
- 知识库与快捷回复
- 客服数据统计
- 渠道与系统设置
- 租户管理、套餐定价
- 运营概览与系统运维
范围外(本期不做)
- AI 机器人自动回复(预留接口)
- 电话呼叫实时软交换
- 第三方支付对接
- 移动端原生 App
- 多语言国际化(仅中文)
- 私有化部署安装包
2 用户角色与使用场景
2.1 角色定义
| 角色 | 使用端 | 主要职责 | 数据范围 |
|---|---|---|---|
| 平台管理员 | 运营管理端 | 租户开通、套餐管理、系统运维、平台公告、运营监控 | 全平台租户与系统级数据 |
| 租户管理员 | 客服工作台 + 设置 | 渠道配置、客服账号管理、分配规则、工作时间、权限配置 | 本租户全部数据 |
| 客服主管 | 客服工作台 + 统计 | 实时监控会话、查看团队绩效、处理升级投诉、管理知识库 | 本租户全部客服数据 |
| 一线客服 | 客服工作台 | 接待访客、回复消息、标记客户、使用知识库、结束会话 | 自己被分配的会话与客户 |
| 网站访客 | 访客聊天窗口 | 发起咨询、查看欢迎语、选择快捷问题、收发文本/图片消息 | 个人会话数据 |
2.2 核心场景
- 访客咨询:访客在租户网站点击聊天按钮 → Widget 加载欢迎语与快捷问题 → 访客发送消息 → 系统按分配规则转接给在线客服 → 客服回复并解决问题 → 访客收到满意度评价邀请。
- 客服接待:客服登录工作台 → 在会话列表查看待处理/进行中的会话 → 点击会话进入聊天区 → 查看右侧客户资料 → 使用知识库/快捷回复回复 → 标记会话优先级 → 结束会话并填写备注。
- 主管复盘:主管进入数据统计 → 查看总会话量、平均响应时长、满意度、首次解决率 → 下钻到客服绩效排行 → 针对响应慢的客服进行培训或调整排班。
- 租户开通:平台管理员在租户管理点击「开通新账号」→ 填写公司、联系人、套餐、坐席数、时长 → 系统自动创建租户并发送登录信息 → 租户管理员登录后配置渠道与客服。
3 系统架构概览
系统由四个逻辑端组成:访客端 Widget、客服工作台、运营管理端 和 平台服务层。所有业务数据按租户隔离,平台管理员可跨租户查看运营汇总数据。
flowchart TB
subgraph 访客端
W[网页聊天 Widget]
WX[微信公众号]
APP[APP 内嵌 SDK]
end
subgraph 客服端
A[客服工作台]
S[系统设置]
ST[数据统计]
end
subgraph 管理端
OV[运营概览]
TN[租户管理]
PL[套餐定价]
OP[系统运维]
end
subgraph 平台服务层
GW[接入网关]
IM[实时消息服务]
CS[客服业务服务]
KB[知识库服务]
AN[分析服务]
DB[(租户隔离数据库)]
end
W --> GW
WX --> GW
APP --> GW
GW --> IM
IM --> CS
A --> IM
A --> CS
S --> CS
ST --> AN
OV --> AN
TN --> CS
PL --> CS
OP --> CS
CS --> DB
AN --> DB
3.1 关键设计约束
- 租户隔离:每个租户拥有独立的数据空间,客服只能看到本租户的访客、客户和会话。
- 实时消息:访客与客服之间的消息通过 WebSocket 长连接推送,断线后支持消息补发与重连。
- 渠道抽象:网页、微信、APP 等渠道统一抽象为「会话来源」,客服工作台以一致界面接待。
- 套餐配额:租户可用的坐席数、知识库容量、对话记录保存时长、报表功能受套餐限制。
4 功能需求总览
下表汇总了本期需要实现的全部功能模块。每个模块在后续章节中给出详细的业务逻辑、交互规则、字段约束与边界说明。
| # | 模块 | 功能描述 | 优先级 |
|---|---|---|---|
| 1 | 客服工作台 | 三栏式工作台:左侧会话列表(按紧急/等待/进行中分组并显示未读数)、中间聊天区(文本/图片消息、输入状态、工具栏)、右侧客户信息面板(资料、标签、备注、活跃数据)。支持会话优先级标记、转接、结束会话与内部备注。 | P0 |
| 2 | 访客聊天窗口 | 可嵌入任意网页的浮动聊天组件,尺寸约 400×600 px,支持欢迎语、快捷问题、文本/图片输入、客服头像与名称展示、正在输入提示、满意度评价入口。通过一行脚本代码接入。 | P0 |
| 3 | 客户管理 | 客户列表支持按标签、状态、来源筛选与搜索;列表展示客户名称、联系方式、标签、对话次数、满意度、待处理数;右侧 360 px 抽屉展示客户详情、会话历史、备注与标签编辑。 | P1 |
| 4 | 对话记录 | 按渠道、客服、状态、日期筛选历史会话;左侧会话卡片展示访客摘要、最后消息、状态;右侧详情面板展示完整消息流、客服操作记录、满意度评分与文字评价。 | P1 |
| 5 | 知识库 | 左侧分类树(产品常见问题、售后服务、技术支持、政策条款、快捷回复模板),右侧知识条目列表展示标题、状态、使用频率、更新时间;支持新建/编辑/发布/草稿/删除。 | P1 |
| 6 | 数据统计 | 首页展示 4 个 KPI 卡片(总会话量、平均响应时长、客户满意度、首次解决率)与 4 个图表(会话量趋势折线图、响应时长分布柱状图、渠道来源占比环形图、客服绩效排行条形图)。支持时间范围切换。 | P1 |
| 7 | 系统设置 | 左侧设置分类导航,包含基本设置、渠道管理、客服分配规则、权限管理、自动回复、工作时间、通知设置。渠道管理展示渠道类型、状态、接入代码与配置入口。 | P1 |
| 8 | 运营概览 | 平台级首页,展示租户总数、活跃租户、平台月收入、系统可用率 4 个 KPI;租户增长趋势图、套餐分布图、最近操作记录列表。 | P2 |
| 9 | 租户管理 | 租户列表展示公司名称、联系人、套餐、坐席数、开通/到期日期、状态;支持按状态筛选、搜索、查看、编辑、续费、暂停;右侧抽屉开通新账号表单。 | P2 |
| 10 | 套餐定价 | 展示基础版、专业版、企业版三类套餐卡片,列明坐席数量、对话记录保存、知识库容量、报表、API、渠道、自定义品牌、专属客服等权益;支持上下架与定价规则配置。 | P2 |
| 11 | 系统运维 | 服务状态看板(API、WebSocket、数据库、消息队列、CDN)、系统负载(CPU/内存/磁盘)、API 请求量与错误率折线图、操作日志、平台公告管理。 | P2 |
5 功能模块详细说明
本章按模块给出业务逻辑、交互规则、字段约束与边界说明。每个模块均对应设计稿中的具体页面,页面布局与信息结构以设计稿为准。
5.1 客服工作台
flowchart LR
subgraph 左侧会话列表
A[紧急会话] --> B[等待中会话]
B --> C[进行中会话]
end
subgraph 中间聊天区
D[消息流] --> E[输入框/工具栏]
end
subgraph 右侧客户面板
F[客户资料] --> G[标签/备注]
G --> H[活跃数据]
end
A --> D
D --> F
业务逻辑
客服登录后,工作台默认展示「我的会话」列表。会话按优先级分为 紧急、等待中、进行中 三类。系统根据分配规则将会话推送给客服;客服可手动领取等待中的会话,或将当前会话转接给其他在线客服。
会话状态流转:等待中 → 进行中 → 已结束。客服结束会话时需选择结束原因(已解决、无人回复、访客离开、转接等)。会话结束后,访客端仍可重新发起新会话。
交互规则
- 点击左侧会话卡片,中间聊天区加载该会话的消息流,并滚动至最新消息。
- 新消息到达时,会话卡片显示未读数并高亮;当前选中的会话自动标记已读。
- 输入框支持 Enter 发送、Shift+Enter 换行;支持粘贴图片与点击上传图片。
- 右侧客户面板展示客户名称、联系方式、来源渠道、标签、备注、对话次数、满意度、待处理数。
- 工具栏提供快捷回复、知识库搜索、转接、结束会话、优先级标记。
字段与约束
- 文本消息:单条最多 2000 字符,支持换行。
- 图片消息:单张不超过 5 MB,支持 jpg/png/gif,发前压缩预览。
- 内部备注:仅客服可见,每条最多 500 字符,按时间倒序展示。
- 会话优先级:紧急(红色)、等待中(黄色)、进行中(蓝色),客服可手动调整。
5.2 访客聊天窗口
访客端 Widget 是一段可嵌入任意网页的脚本,通过 script 标签加载,传入租户渠道 ID 即可初始化。Widget 采用浮动窗口形态,默认右下角展开/收起。
业务逻辑
Widget 加载后首先展示欢迎语与一组快捷问题。访客点击快捷问题或输入消息后,系统根据当前在线客服与分配规则建立会话。若当前无客服在线,展示「当前无客服在线,请留言」提示并收集联系方式。
交互规则
- 展开尺寸约 400×600 px,收起状态为圆形悬浮按钮。
- 访客消息右侧蓝色气泡,客服消息左侧灰色气泡。
- 客服输入时,访客端显示「正在输入…」动画。
- 会话结束后弹出满意度评分(1–5 星)与文字评价输入框。
- 支持发送文本与图片,图片预览支持点击查看大图。
接入示例
<script src="https://cs.example.com/widget.js" data-id="WK_8a3f2e"></script>
5.3 客户管理
客户管理用于沉淀访客信息,将匿名访客转化为可识别的客户资产。列表与详情抽屉组合展示,便于客服快速了解客户背景。
业务逻辑
当访客在 Widget 中留下联系方式(手机/邮箱/微信)或客服手动完善资料后,系统自动创建或更新客户记录。客户状态包括 在线、离线、忙碌。系统根据最近一次交互时间自动计算沉默/活跃标签。
交互规则
- 列表支持按客户名称、手机号、邮箱搜索。
- 筛选条件:标签(VIP、新客户、活跃、沉默、企业客户)、状态、来源渠道。
- 点击行进入右侧 360 px 详情抽屉,展示客户资料、历史会话、标签编辑、备注。
- 客服可在抽屉中为客户添加/移除标签,填写跟进备注。
字段与约束
- 客户名称:2–50 字符,必填。
- 手机号:中国大陆 11 位手机号格式校验。
- 邮箱:标准邮箱格式,非必填。
- 标签:多选,每个客户最多 10 个标签。
- 备注:最多 1000 字符,支持换行。
5.4 对话记录
对话记录用于会话审计、质量抽检与纠纷追溯。所有客服与访客的往来消息、系统事件、客服操作均需持久化。
业务逻辑
会话结束后,记录进入历史会话库。历史会话状态包括 进行中、已结束、已归档。主管可对重要会话进行归档,归档后不可再修改。
交互规则
- 左侧会话卡片展示访客头像、昵称、最后消息、时间、状态标签。
- 筛选维度:渠道、客服、状态、日期范围。
- 右侧详情面板展示完整消息时间轴、客服转接/结束/备注等操作记录。
- 满意度评分与文字评价在详情底部展示。
5.5 知识库
知识库为客服提供标准答案与快捷回复模板,降低培训成本并保证回复一致性。
业务逻辑
知识条目归属一个分类,状态为 已发布 或 草稿。已发布条目可在客服工作台被搜索并一键插入聊天输入框。快捷回复模板是特殊的知识条目分类,用于高频话术。
交互规则
- 左侧分类树支持展开/折叠,点击分类右侧展示该分类下条目。
- 条目列表展示标题、状态、使用频率进度条、更新时间。
- 支持新建/编辑/发布/撤回草稿/删除。
- 客服在工作台输入框敲击
/可快速搜索快捷回复。
字段与约束
- 分类名称:2–30 字符,必填,不可重复。
- 条目标题:2–100 字符,必填。
- 条目内容:最多 5000 字符,支持富文本(本期先支持纯文本)。
- 使用频率:按客服插入次数统计,按日/周/月更新。
5.6 数据统计
数据统计面向客服主管与租户管理员,帮助其掌握服务负荷、团队绩效与访客满意度。
业务逻辑
系统在会话生命周期中实时采集指标:会话量按小时/天聚合;首次响应时长取客服首次回复与访客首条消息的时间差;满意度取访客评价平均值;首次解决率取单次会话内即被解决且未再次发起的会话占比。
图表与下钻
- 会话量趋势折线图:X 轴为时间,Y 轴为会话数,支持按日/周/月切换。
- 响应时长分布柱状图:分桶展示 0–10s、10–30s、30–60s、1–3min、>3min 的会话占比。
- 渠道来源占比环形图:网页、微信、APP、电话工单、邮件的会话占比。
- 客服绩效排行条形图:按接待量、平均响应时长、满意度排序。
5.7 系统设置
系统设置是租户管理员配置服务规则与接入渠道的入口。
设置分类
- 基本设置:租户名称、Logo、客服昵称、时区、语言(本期仅中文)。
- 渠道管理:网页聊天、微信公众号、APP 内嵌、电话客服、邮件工单的启用/禁用与接入配置。
- 客服分配规则:轮询、负载均衡、熟客优先、指定客服。
- 权限管理:角色创建、菜单权限、数据权限、操作权限。
- 自动回复:欢迎语、离线留言提示、关键词自动回复(预留机器人扩展)。
- 工作时间:每周工作时段、节假日设置、非工作时间提示语。
- 通知设置:新会话提醒、离线消息通知、日报/周报推送。
渠道管理规则
每个渠道生成唯一渠道 ID 与接入代码。网页聊天渠道提供一段 script 代码,租户将其复制到网站模板中即可生效。渠道启用/禁用即时生效,禁用后访客端提示「当前渠道已关闭」。
5.8 运营概览(管理端)
运营概览是平台管理员登录后的首页,展示平台级核心指标与趋势。
展示内容
- 租户增长趋势折线图:近 30 天新增/累计租户数。
- 套餐分布图:各套餐租户占比。
- 最近操作记录:平台管理员的关键操作审计日志。
5.9 租户管理
租户管理是 SaaS 平台运营的核心模块,覆盖租户从开通到续费、暂停、恢复的全生命周期。
业务逻辑
租户状态包括 正常、即将到期、已暂停、已过期。系统根据到期日期自动切换状态,并在到期前 7 天向租户管理员发送提醒。暂停/过期的租户无法登录客服端,但数据保留。
开通新账号表单字段
- 公司名称:2–100 字符,必填,租户维度唯一。
- 联系人:2–30 字符,必填。
- 手机号:11 位手机号,必填,用于接收登录信息。
- 邮箱:标准邮箱格式,必填。
- 套餐:单选,来源套餐管理配置。
- 坐席数量:正整数,不得超过套餐上限,可额外购买。
- 开通时长:1–36 个月。
- 自动续费:开关,默认关闭。
- 备注:最多 500 字符,非必填。
操作权限
- 查看:打开租户详情抽屉,展示基本信息、套餐、到期时间、登录链接。
- 编辑:修改联系人、坐席数、备注,不可修改套餐与到期时间。
- 续费:延长到期时间或升级套餐,记录续费流水。
- 暂停/恢复:暂停后租户所有账号无法登录;恢复后即时生效。
5.10 套餐定价
套餐定价定义租户可购买的商业化方案,不同套餐在功能权益与资源配额上存在差异。
| 权益项 | 基础版 | 专业版 | 企业版 |
|---|---|---|---|
| 月费参考 | ¥299/月 | ¥699/月 | ¥1999/月 |
| 坐席数量 | 2 | 10 | 50(可扩展) |
| 对话记录保存 | 30 天 | 180 天 | 永久 |
| 知识库容量 | 50 条 | 500 条 | 不限 |
| 数据统计 | 基础报表 | 高级报表 | 自定义报表 |
| API | 不支持 | 基础 API | 完整 API |
| 渠道 | 网页 | 网页+微信+APP | 全渠道 |
| 自定义品牌 | 不支持 | 支持 | 支持 |
| 专属客服 | 不支持 | 不支持 | 支持 |
定价规则
- 按月订阅,年付享受 8 折优惠。
- 超出套餐坐席按 ¥49/月/坐席 计费。
- 套餐支持上架/下架,下架后新租户不可购买,已购买租户可续费。
- 企业版可由平台管理员根据客户需求自定义报价。
5.11 系统运维
系统运维面向平台技术团队,提供实时健康度监控、日志审计与平台公告能力。
服务状态看板
- 监控项:API 服务、WebSocket 服务、数据库、消息队列、CDN。
- 状态:正常(绿色)、告警(黄色)、故障(红色)。
- 刷新频率:默认 30 秒,支持手动刷新。
系统负载与请求监控
- CPU / 内存 / 磁盘使用率,超过阈值标红并触发告警。
- API 请求量与错误率折线图,时间粒度 1 分钟/5 分钟/1 小时。
操作日志与公告
- 操作日志记录平台管理员的关键操作:租户开通、套餐修改、公告发布等。
- 平台公告支持发布、编辑、撤回;登录后首页弹窗展示最新未读公告。
6 数据模型概览
数据模型以租户 ID 作为全局隔离字段,所有业务表均包含 tenant_id。平台级管理表(套餐、平台管理员、系统运维)不包含租户字段。
erDiagram
TENANT ||--o{ USER : has
TENANT ||--o{ CHANNEL : owns
TENANT ||--o{ CUSTOMER : owns
TENANT ||--o{ SESSION : owns
TENANT ||--o{ KNOWLEDGE : owns
USER ||--o{ SESSION : serves
CUSTOMER ||--o{ SESSION : initiates
SESSION ||--o{ MESSAGE : contains
SESSION ||--o{ SESSION_EVENT : records
6.1 核心实体说明
| 实体 | 关键字段 | 说明 |
|---|---|---|
| 租户 Tenant | id, name, plan_id, seat_count, expire_at, status, contact_name, contact_phone, contact_email | SaaS 租户主表,决定数据隔离范围与套餐配额。 |
| 用户 User | id, tenant_id, role, username, password_hash, nickname, status, last_online_at | 客服账号与平台管理员账号,通过 role 区分。 |
| 渠道 Channel | id, tenant_id, type, name, status, config, script_code | 网页、微信、APP 等接入渠道配置。 |
| 客户 Customer | id, tenant_id, name, phone, email, tags, source, status, last_contact_at | 访客沉淀后的客户资产。 |
| 会话 Session | id, tenant_id, channel_id, customer_id, agent_id, status, priority, satisfaction_score, created_at, ended_at | 一次完整的客服接待过程。 |
| 消息 Message | id, session_id, sender_type, content, type, sent_at, seq | 会话中的文本/图片/系统消息,seq 保证时序。 |
| 知识库 Knowledge | id, tenant_id, category_id, title, content, status, usage_count, created_at | 知识条目与快捷回复模板。 |
| 套餐 Plan | id, name, price_monthly, seats, storage_days, kb_limit, features, status | 平台级套餐定义。 |
6.2 租户隔离规则
- 所有客服端查询必须携带
tenant_id过滤,禁止跨租户访问。 - 平台管理员查询运营数据时,可按租户聚合,但不暴露单笔客户/会话明细。
- 租户删除为软删除,数据保留 180 天后按合规策略清理。
7 接口需求概览
接口按端划分为:访客端 SDK 接口、客服端业务接口、管理端运营接口、通用文件/消息接口。所有接口需鉴权并校验租户权限。
7.1 接口分组
| 分组 | 典型接口 | 说明 |
|---|---|---|
| 访客 Widget | 初始化、发送消息、接收消息、上传图片、提交满意度 | 通过渠道 ID 鉴权,无需登录。 |
| 实时消息 | WebSocket 连接、心跳、消息推送、已读回执、输入状态 | 使用 room 或 user 维度广播,按租户隔离。 |
| 会话管理 | 会话列表、会话详情、分配、转接、结束、备注 | 客服只能操作自己被分配的会话,主管可查看全部。 |
| 客户管理 | 客户 CRUD、标签管理、搜索筛选 | 手机号与邮箱格式校验。 |
| 知识库 | 分类 CRUD、条目 CRUD、搜索、插入统计 | 发布/草稿状态控制。 |
| 数据统计 | KPI 查询、趋势图、分布图、绩效排行 | 支持按时间范围与维度聚合。 |
| 系统设置 | 租户配置、渠道配置、分配规则、权限角色 | 仅租户管理员及以上可操作。 |
| 租户管理 | 租户 CRUD、续费、暂停、恢复 | 仅平台管理员可操作。 |
| 系统运维 | 健康检查、负载查询、日志查询、公告管理 | 平台级接口。 |
7.2 通用要求
- 所有接口统一返回格式
{ code, message, data },分页列表返回{ list, total, page, pageSize }。 - 接口响应时间:P99 ≤ 500ms(不涉及大数据聚合的场景)。
- 文件上传接口返回 CDN 访问 URL,支持图片预览。
- WebSocket 消息采用 JSON 格式,包含
tenant_id、session_id、seq等字段。
8 数据统计与埋点
埋点服务于运营决策与产品优化,每个事件需明确触发时机与用途。
8.1 核心指标定义
| 指标 | 定义 | 用途 |
|---|---|---|
| 总会话量 | 选定时间范围内创建的会话总数 | 衡量租户服务负荷 |
| 平均响应时长 | 客服首次回复时间 − 访客首条消息时间,取平均值 | 衡量客服响应速度 |
| 客户满意度 | 访客评分总和 / 评分会话数,1–5 星 | 衡量服务质量 |
| 首次解决率 | 单次会话内解决且 24h 内未再次发起的会话占比 | 衡量一次解决能力 |
| 活跃租户数 | 当月产生过会话的租户数 | 衡量平台活跃度 |
| 系统可用率 | (总时间 − 故障时间)/ 总时间 | 衡量平台稳定性 |
8.2 埋点事件
widget_open:访客点击展开 Widget,用于分析入口转化。message_sent:访客/客服发送消息,携带消息类型与渠道。session_assigned:会话被分配,携带分配规则与等待时长。session_ended:会话结束,携带结束原因与满意度。knowledge_used:客服插入知识库条目,用于优化知识库内容。tenant_created/tenant_renewed:租户开通/续费,用于收入统计。
9 非功能性需求
9.1 性能
- 客服工作台首屏加载时间 ≤ 2 秒(千兆网络)。
- 访客 Widget 初始化时间 ≤ 1 秒,不影响宿主页面加载。
- 消息端到端延迟 ≤ 300ms(正常网络)。
- 单租户并发在线客服 ≥ 200 人,同时在线会话 ≥ 1000 个。
9.2 可用性与可靠性
- 平台级可用率目标 99.9%(月度)。
- 消息持久化后再推送,确保不丢消息。
- 支持 WebSocket 断线重连与消息补发。
- 核心数据每日备份,备份保留 30 天。
9.3 安全
- 所有接口使用 HTTPS/WSS,敏感字段传输加密。
- 账号密码加盐哈希存储,支持登录失败锁定。
- 租户数据严格隔离,接口层强制校验
tenant_id。 - 文件上传限制类型与大小,防止恶意文件。
- 操作日志完整记录管理员与客服的关键操作。
9.4 兼容性
- 客服工作台支持 Chrome、Firefox、Safari、Edge 最新两个主版本。
- 访客 Widget 支持 IE11 及以上现代浏览器。
- 响应式布局适配 1366×768 及以上分辨率。
10 风险、依赖与里程碑
10.1 主要风险
| 风险 | 影响 | 缓解措施 |
|---|---|---|
| WebSocket 高并发稳定性 | 消息延迟或掉线 | 使用成熟消息中间件,做压测与限流。 |
| 租户隔离逻辑遗漏 | 数据泄露 | 代码审查 + 自动化接口测试覆盖跨租户访问。 |
| 设计稿与实现偏差 | 返工 | UI 还原检查清单,关键页面走查。 |
| 套餐配额校验遗漏 | 超卖或功能越权 | 在服务端统一校验套餐限制。 |
10.2 外部依赖
- 短信服务商:用于租户开通验证码与到期提醒。
- 邮件服务商:用于发送登录信息与日报。
- 对象存储/CDN:用于图片、文件、租户 Logo 存储。
- 微信公众号平台:用于微信渠道消息接入。
10.3 里程碑
- M1 需求评审:PRD 评审通过,输出接口定义与数据库设计。
- M2 核心会话:完成 WebSocket 消息、客服工作台、访客 Widget。
- M3 业务模块:完成客户管理、对话记录、知识库、数据统计。
- M4 平台能力:完成租户管理、套餐定价、系统设置、运营概览。
- M5 测试上线:完成集成测试、压力测试、安全审计,灰度发布。
11 验收标准
以下条件作为本期交付的通过标准。
| # | 验收项 | 通过标准 |
|---|---|---|
| 1 | 访客咨询完整流程 | 访客发起 → 系统分配 → 客服回复 → 满意度评价,端到端无阻塞。 |
| 2 | 消息实时性 | 同一会话内,消息到达延迟 ≤ 300ms,断线重连后消息不丢失。 |
| 3 | 租户隔离 | 客服 A 无法查看/操作客服 B 所在租户的任何数据,接口返回 403。 |
| 4 | 套餐限制 | 基础版租户无法使用微信/APP 渠道,坐席数达到上限后无法新增客服。 |
| 5 | 数据统计准确性 | KPI 数值与明细数据手工核对一致,图表数据与表格一致。 |
| 6 | 管理端租户生命周期 | 开通、续费、暂停、恢复流程正确,到期前提醒送达。 |
| 7 | 页面还原度 | 核心页面与设计稿一致度 ≥ 95%,交互状态完整。 |
| 8 | 性能 | 工作台首屏 ≤ 2s,Widget 初始化 ≤ 1s,核心接口 P99 ≤ 500ms。 |
12 附录:设计稿对应关系
下表列出 PRD 章节与设计稿 HTML 文件的对应关系,便于开发时快速查阅原始设计。
| 设计稿文件 | 对应 PRD 章节 | 主要内容 |
|---|---|---|
| dashboard.html | 5.1 | 客服工作台三栏布局 |
| visitor-chat.html | 5.2 | 访客端浮动聊天窗口 |
| customer-management.html | 5.3 | 客户列表与详情抽屉 |
| chat-history.html | 5.4 | 对话记录筛选与详情 |
| knowledge-base.html | 5.5 | 知识库分类与条目 |
| statistics.html | 5.6 | KPI 与数据图表 |
| settings.html | 5.7 | 系统设置与渠道管理 |
| admin-运营概览.html | 5.8 | 平台运营概览 |
| admin-tenants.html | 5.9 | 租户管理 |
| admin-plans.html | 5.10 | 套餐定价 |
| admin-ops.html | 5.11 | 系统运维监控 |
| admin-dashboard.html | — | 空文件,未使用 |