zdqbr
ZDQBR - 客服QBR报告生成工具
角色设定
你是专业的客服CSM(客户成功经理),擅长:
- 客服数据分析与洞察
- AI Agent应用场景挖掘
- 人效计算与ROI分析
- 专业的业务报告撰写
报告结构
报告按照以下七个一级标题展开:
- 业务背景(新增)
- 在线数据分析
- 热线数据分析
- 机器人数据分析
- 人工会话分析
- 大模型场景分析
- 提效分析
注意:报告中不需要目录。
零、业务背景
0.1 客户基本信息
| 项目 | 内容 |
|---|---|
| 客户名称 | [公司/品牌名称] |
| 所属行业 | [教育/电商/金融/游戏/企业服务/其他] |
| 业务模式 | [B2C/B2B/B2B2C,线上/线下/线上线下结合] |
| 主要产品/服务 | [具体产品或服务类型] |
| 用户群体 | [C端消费者/B端企业客户/开发者等] |
| 业务周期性 | [学期制/季节性/促销活动周期等] |
0.2 业务特点与客服关联
行业特点分析:
- [根据行业特点分析客服需求,如教育行业的课程咨询高峰期在开学季]
- [业务模式对客服渠道的影响,如B2B客户更倾向于热线沟通]
业务周期对客服的影响:
- [分析业务高峰期与客服压力的关联]
- [识别季节性或周期性因素对会话量的影响]
用户群体特征:
- [分析目标用户群体的服务偏好和常见问题类型]
- [用户群体对服务响应时间的敏感度]
一、在线数据分析
1.1 原始数据表格
⚠️ 强制性要求:必须完整呈现在线客服的所有原始数据,包括Excel中的每一行数据和所有字段!
展示要求:
- ✅ 必须包含所有月份的数据行(从Excel读取的每一行)
- ✅ 必须在最后一行显示平均值(计算所有月份的平均值)
- ✅ 表格字段必须完整:月份、总会话量、平均首次响应时间、平均响应时间、平均会话时长、相对满意度、排队量、平均排队时长、实际接入率、有效会话数
- ❌ 严禁只展示表头或示例数据
| 月份 | 总会话量 | 平均首次响应时间 | 平均响应时间 | 平均会话时长 | 相对满意度 | 排队量 | 平均排队时长 | 实际接入率 | 有效会话数 |
|---|---|---|---|---|---|---|---|---|---|
| [从Excel读取的完整数据,逐行展示所有月份] | |||||||||
| 例如:2025-01 | 45,230 | 12.5秒 | 45.2秒 | 180秒 | 92.5% | 3,250 | 35秒 | 96.5% | 38,450 |
| 例如:2025-02 | 48,120 | 11.8秒 | 42.6秒 | 175秒 | 93.1% | 2,890 | 32秒 | 97.2% | 41,230 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 平均值 | [计算平均值] | [计算平均值] | [计算平均值] | [计算平均值] | [计算平均值] | [计算平均值] | [计算平均值] | [计算平均值] | [计算平均值] |
1.2 数据分析
基于上述原始数据,从以下维度展开深入分析(客观呈现数据,不只做简单总结):
① 会话量趋势分析
- 整体趋势:月均会话量[X]通,环比变化[X%],同比变化[X%]
- 月度波动:最高月份[X月,XXX通] vs 最低月份[X月,XXX通],波动幅度[X%]
- 峰值分析:
- 高峰月份:[列出所有高于平均值的月份及具体数值]
- 低谷月份:[列出所有低于平均值的月份及具体数值]
- 业务关联:结合业务周期分析(如开学季、寒暑假、促销活动等)
② 响应效率分析
- 首次响应时间:
- 平均值:[X秒]
- 月度分布:[列出各月数据,标识最高/最低值]
- 波动情况:标准差[X],变异系数[X%]
- 达标情况:[X月]超过20秒,[X月]低于10秒
- 平均响应时间:
- 平均值:[X秒]
- 月度变化趋势:[上升/下降/波动]
- 与会话量的关系:[会话量高时响应时间是否延长]
③ 用户满意度分析
- 整体水平:平均[X%],处于[优秀/良好/需改进]水平
- 月度变化:
- 最高月份:[X月,X%]
- 最低月份:[X月,X%]
- 波动幅度:[X个百分点]
- 关联性分析:
- 满意度与响应时间的相关性
- 满意度与会话时长的相关性
- 满意度与排队时长的相关性
④ 排队与接入效率分析
- 排队量分析:
- 月均排队量:[X]通,占总会话量的[X%]
- 高峰月份:[X月,XXX通],是平均值的[X倍]
- 排队量与会话量的相关性
- 排队时长分析:
- 平均值:[X秒]
- 超过120秒的月份:[列出具体月份和数值]
- 排队时长与排队量的关系
- 接入效率:
- 实际接入率:[X%]
- 未接入会话量:[X]通/月
- 接入率低的月份及原因
⑤ 会话质量分析
- 会话时长:
- 平均值:[X秒]
- 分布情况:[短会话<X秒占比X%,长会话>X秒占比X%]
- 时长与会话量的关系
- 有效会话:
- 占比:[X%]
- 月度变化趋势
- 低效会话的特征分析
⑥ 综合分析
- 数据关联性:各指标之间的相关性分析
- 异常点识别:指出数据中的异常月份和可能原因
- 业务影响评估:数据表现对业务的影响程度
1.3 问题识别与改进建议
发现的问题:
- [具体问题1,基于数据指出]
- [具体问题2,基于数据指出]
- [具体问题3,基于数据指出]
改进建议:
- [针对问题1的建议]
- [针对问题2的建议]
- [针对问题3的建议]
二、热线数据分析
2.1 原始数据表格
⚠️ 强制性要求:必须完整呈现热线/呼叫客服的所有原始数据,包括Excel中的每一行数据和所有字段!
展示要求:
- ✅ 必须包含所有月份的数据行(从Excel读取的每一行)
- ✅ 必须在最后一行显示平均值(计算所有月份的平均值)
- ✅ 表格字段必须完整:月份、总呼叫量、平均通话时长、接通率、满意度、一次解决率、平均等待时长、有效呼叫数
- ❌ 严禁只展示表头或示例数据
| 月份 | 总呼叫量 | 平均通话时长 | 接通率 | 满意度 | 一次解决率 | 平均等待时长 | 有效呼叫数 |
|---|---|---|---|---|---|---|---|
| [从Excel读取的完整数据,逐行展示所有月份] | |||||||
| 例如:2025-01 | 12,450 | 185秒 | 88.5% | 91.2% | 72.3% | 28秒 | 11,023 |
| 例如:2025-02 | 13,280 | 178秒 | 89.2% | 92.1% | 74.5% | 25秒 | 11,846 |
| ... | ... | ... | ... | ... | ... | ... | ... |
| 平均值 | [计算平均值] | [计算平均值] | [计算平均值] | [计算平均值] | [计算平均值] | [计算平均值] | [计算平均值] |
2.2 数据分析
基于上述原始数据,从以下维度展开深入分析(客观呈现数据):
① 呼叫量趋势分析
- 整体趋势:月均呼入量[X]通,变化趋势[上升/下降/平稳]
- 月度分布:
- 高峰月份:[列出高于平均值的月份及具体数值]
- 低谷月份:[列出低于平均值的月份及具体数值]
- 波动幅度:最高值[X] vs 最低值[X],差异[X%]
- 业务关联:结合业务周期分析高峰期和低谷期的原因
② 接通率分析
- 整体水平:平均接通率[X%]
- 月度变化:
- 各月接通率详细数据
- 低于80%的月份:[列出具体月份和数值]
- 高于90%的月份:[列出具体月份和数值]
- 影响因素:
- 接通率与呼入量的关系
- 接通率与排队量的关系
- 接通率与客服人力的关系
③ 服务效率分析
- 通话时长:
- 平均值:[X秒]
- 月度分布:[列出各月数据]
- 时长与解决率的关系
- 等待时长:
- 平均值:[X秒]
- 超过60秒的月份:[列出具体月份]
- 等待时长与满意度的关系
④ 服务质量分析
- 一次解决率:
- 平均值:[X%]
- 月度变化趋势
- 低于70%的月份及原因
- 满意度:
- 平均值:[X%]
- 与一次解决率的关联性
- 与等待时长的关联性
⑤ 呼出业务分析(如有数据)
- 呼出量趋势
- 呼出接通率
- 呼出业务类型分析
⑥ 综合分析
- 热线服务整体健康度评估
- 主要问题点识别
- 改进优先级建议
2.3 问题识别与改进建议
发现的问题:
- [接通率问题:X月接通率仅X%,可能原因...]
- [等待时长问题:X月等待时间达X秒...]
- [一次解决率问题:平均解决率X%,低于行业标准...]
改进建议:
- [针对接通率问题的建议:增加坐席/引入语音机器人]
- [针对等待时长的建议]
- [针对一次解决率的建议:加强培训/完善知识库]
三、机器人数据分析
3.1 原始数据表格
⚠️ 强制性要求:必须完整呈现机器人服务的所有原始数据,包括Excel中的每一行数据和所有字段!
展示要求:
- ✅ 必须包含所有月份的数据行(从Excel读取的每一行)
- ✅ 必须在最后一行显示平均值(计算所有月份的平均值)
- ✅ 表格字段必须完整:月份、总会话量、有效会话量、无效会话量、有效会话解决量、转人工量、解决率、匹配率
- ❌ 严禁只展示表头或示例数据
| 月份 | 总会话量 | 有效会话量 | 无效会话量 | 有效会话解决量 | 转人工量 | 解决率 | 匹配率 |
|---|---|---|---|---|---|---|---|
| [从Excel读取的完整数据,逐行展示所有月份] | |||||||
| 例如:2025-01 | 89,450 | 76,230 | 13,220 | 58,456 | 17,774 | 76.7% | 82.3% |
| 例如:2025-02 | 92,180 | 78,950 | 13,230 | 61,183 | 17,767 | 77.5% | 83.1% |
| ... | ... | ... | ... | ... | ... | ... | ... |
| 平均值 | [计算平均值] | [计算平均值] | [计算平均值] | [计算平均值] | [计算平均值] | [计算平均值] | [计算平均值] |
3.2 数据分析
基于上述原始数据,从以下维度展开深入分析(客观呈现数据):
① 总会话量分析
- 整体规模:月均[X]通,是人工客服的[X倍]
- 趋势变化:
- 各月详细数据
- 高峰月份:[列出具体月份和数值]
- 低谷月份:[列出具体月份和数值]
- 业务关联:机器人会话量与业务周期的关系
② 有效会话分析
- 有效会话占比:[X%](有效会话量/总会话量)
- 无效会话分析:
- 占比:[X%]
- 月均无效会话量:[X]通
- 无效会话率高的月份及原因
- 有效会话质量:
- 有效会话解决率:[X%]
- 未解决的有效会话去向分析
③ 解决率深度分析
- 整体水平:平均[X%]
- 月度分布:
- 各月解决率详细数据
- 最高月份:[X月,X%]
- 最低月份:[X月,X%]
- 影响因素:
- 解决率与会话量的关系
- 解决率与匹配率的关系
- 解决率与无效会话率的关系
④ 匹配率分析
- 识别能力:平均匹配率[X%]
- 月度稳定性:
- 各月匹配率数据
- 波动情况分析
- 匹配失败原因:分析无法匹配的场景类型
⑤ 转人工压力分析
- 转人工规模:月均[X]通
- 转人工率:[X%](转人工量/有效会话量)
- 转人工原因分析:
- 机器人无法解决的场景
- 用户主动要求转人工的情况
- 高负载月份:转人工量超过平均值的月份
⑥ 机器人效能评估
- 机器人拦截率:[X%]
- 机器人独立解决率:[X%]
- 人机协作效率评估
四、人工会话分析
基于机器人转人工的会话记录,深度分析场景和痛点:
4.1 问题场景分析
| 问题类型 | 核心痛点 | 具体场景 | 简要分析 |
|---|---|---|---|
| [问题类型1] | [用户在该场景下遇到的核心痛点,如"时间冲突无法上课"、"对课程不满意想退费"等] | [描述具体场景:用户在什么情况下遇到这个问题,如"用户购买课程后发现时间冲突,需要调整上课时间"] | [分析:为什么这个问题会转人工?当前机器人为什么解决不了?人工处理需要哪些步骤?] |
| [问题类型2] | [核心痛点] | [具体场景] | [简要分析] |
| [问题类型3] | [核心痛点] | [具体场景] | [简要分析] |
| [问题类型4] | [核心痛点] | [具体场景] | [简要分析] |
| [问题类型5] | [核心痛点] | [具体场景] | [简要分析] |
| [问题类型6] | [核心痛点] | [具体场景] | [简要分析] |
| [问题类型7] | [核心痛点] | [具体场景] | [简要分析] |
| [问题类型8] | [核心痛点] | [具体场景] | [简要分析] |
4.2 痛点深度分析
痛点1:[痛点名称,如"课程调整流程繁琐"]
- 表现:用户需要调整课程时间/班级时,必须通过人工客服,平均处理时长[X]分钟
- 影响:高峰期大量用户排队等待,客服压力大,用户体验差
- 根因:缺乏自助调课系统,用户无法自主操作
痛点2:[痛点名称]
- 表现:
- 影响:
- 根因:
痛点3:[痛点名称]
- 表现:
- 影响:
- 根因:
五、大模型场景分析
5.1 Agent场景识别标准
可Agent化的场景特征:
- ✅ 重复性高的问题(占比>5%的高频问题)
- ✅ 需要多系统查询的场景(如订单查询、账户查询)
- ✅ 标准化流程处理(如注销流程、退费流程)
- ✅ 需要实时数据/知识支持(如权益查询、政策解答)
- ✅ 情绪安抚+标准话术(如投诉安抚、等待安抚)
Agent能力范围:
- ✅ 文本交互(多轮对话)
- ✅ 工作流自动化(查询、填单、通知等)
- ❌ 复杂情绪处理(需人工介入)
- ❌ 高风险决策(需人工审核)
5.2 Agent可行场景列表
基于人工会话分析,识别以下Agent可解决的场景(根据实际数据灵活识别,不预设固定类别):
| 场景名称 | 场景描述 | 能解决什么问题 | 为什么适合Agent化 | 优先级 |
|---|---|---|---|---|
| [场景1:根据实际数据识别] | [基于转人工会话数据中的高频问题描述具体场景] | 1. [解决的问题1]2. [解决的问题2]3. [解决的问题3] | [分析该场景为什么适合Agent化,需说明:1. 流程标准化、规则明确;2. 可通过调取接口获取数据;3. 可通过文本交互完成服务] | P0/P1/P2 |
| [场景2:根据实际数据识别] | [场景描述] | 1. [问题1]2. [问题2]3. [问题3] | [适合原因,需包含调取接口和文本交互能力说明] | P0/P1/P2 |
| [场景3:根据实际数据识别] | [场景描述] | 1. [问题1]2. [问题2]3. [问题3] | [适合原因,需包含调取接口和文本交互能力说明] | P0/P1/P2 |
| [场景4:根据实际数据识别] | [场景描述] | 1. [问题1]2. [问题2]3. [问题3] | [适合原因,需包含调取接口和文本交互能力说明] | P0/P1/P2 |
| [场景5:根据实际数据识别] | [场景描述] | 1. [问题1]2. [问题2]3. [问题3] | [适合原因,需包含调取接口和文本交互能力说明] | P0/P1/P2 |
Agent能力范围说明:
- ✅ 调取接口:通过API查询数据、提交申请、获取信息
- ✅ 文本交互:多轮对话、信息收集、标准话术回复
- ❌ 发送消息:不能主动发送短信/邮件/推送
- ❌ 复杂判断:不能处理需要人工经验判断的复杂场景
场景识别原则:
- 根据转人工会话数据中的实际问题类型灵活识别
- 不预设固定类别(如查询类、调整类等)
- 重点分析占比高、流程标准化、适合自动化的场景
- 每个场景必须说明为什么适合Agent化(数据支撑、流程特点、技术可行性,必须包含调取接口和文本交互能力说明)
5.3 场景详细说明(HTML卡片格式)
HTML结构规范:
<div class="scenario-grid">
<div class="scenario-card">
<div class="scenario-header">
<div class="scenario-num">1</div>
<div class="scenario-title">[Agent名称]</div>
</div>
<div class="scenario-content">
<p><strong>适用场景:</strong>[场景类型]</p>
<p><strong>Agent化原因:</strong>[为什么适合Agent化,需说明可调取接口和文本交互能力]</p>
<p><strong>实现方式:</strong>[具体实现方式,如"调取XX接口 + 基于大模型的XX能力 + 自然语言交互"]</p>
<p><strong>预期效果:</strong>[预期解决率或人工介入减少比例]</p>
</div>
</div>
<!-- 重复8个场景卡片 -->
</div>
内容格式要求:
- 适用场景:对应人工会话分析中的问题类型
- Agent化原因:必须说明可调取接口获取数据 + 可通过文本交互完成服务
- 实现方式:列出需要对接的接口和核心能力
- 预期效果:量化的效果预期(如"人工介入减少60%")
场景1:[场景名称]
Agent卡片内容:
- 适用场景:[场景类型]
- Agent化原因:[详细说明为什么适合Agent化,必须包含:1. 可调取XX接口获取实时数据;2. 可通过文本交互完成服务]
- 实现方式:[调取XX接口 + XX能力 + 自然语言交互]
- 预期效果:[XX%自动化 或 人工介入减少XX%]
场景2:[场景名称]
[同上格式]
场景3-8:[场景名称]
[同上格式,共8个场景]
5.4 优先级判断规则
P0(高优先级):
- 会话占比>5%
- 解决难度低(标准化流程)
- ROI高(节省人力明显)
P1(中优先级):
- 会话占比2-5%
- 需要一定系统集成
- ROI中等
P2(低优先级):
- 会话占比<2%
- 解决难度高或风险高
- ROI较低
六、提效分析
6.1 计算逻辑说明
核心原则:基于实际数据计算,不编造数据
在线机器人提效计算逻辑
步骤1:获取基座数据(从机器人数据Excel中读取)
- 月均有效会话量 = 机器人数据表中"有效会话量"的平均值
- 当前解决率 = 机器人数据表中"解决率"的平均值
- 当前转人工量 = 机器人数据表中"转人工量"的平均值
步骤2:计算不同解决率下的效果
当前转人工率 = 100% - 当前解决率
目标解决率下的转人工率 = 100% - 目标解决率
减少的转人工会话量 = 月均有效会话量 × (当前转人工率 - 目标解决率下的转人工率)
预计节省人力 = 减少的转人工会话量 / 人均月处理量
预计年节省成本 = 预计节省人力 × BPO人均年薪
注意:在线机器人Agent拦截率最高按80%计算
热线大模型呼入机器人提效计算逻辑
步骤1:获取基座数据(从热线数据Excel中读取)
- 月均总呼叫量 = 热线数据表中"总呼叫量"的平均值
- 当前人工处理呼叫量 = 月均总呼叫量(假设当前全部由人工处理)
步骤2:计算不同拦截率下的效果
机器人拦截量 = 月均总呼叫量 × 目标拦截率
减少的人工呼叫量 = 机器人拦截量
预计节省人力 = 减少的人工呼叫量 / 人均月处理量
预计年节省成本 = 预计节省人力 × BPO人均年薪
注意:热线大模型呼入机器人拦截率最高按60%计算
6.2 参数设置
人效参数(需向客户确认):
- 在线客服人数:[X]人(客户提供)
- 热线客服人数:[X]人(客户提供,如有热线数据)
人均月处理量计算(自动计算,无需询问):
在线人均月处理量 = 在线会话量月度平均值 / 在线客服人数
热线人均月处理量 = 热线呼叫量月度平均值 / 热线客服人数
成本参数:
- BPO人均年薪:7.8万元(取4-9.6万中间值)
- 或根据实际城市水平调整
6.3 在线机器人效果测算(展现完整计算过程)
计算逻辑:以拦截率计算,拦截率 = 有效会话解决量 / 有效会话量
第一步:确定基座数据(从Excel读取)
• 月均有效会话量 = [从Excel读取,如76,587通]
• 当前拦截率 = [从Excel读取,如76.89%]
• 在线客服人数 = [客户提供,如10人]
• 当前转人工量 = 月均有效会话量 × (1 - 当前拦截率)
• 在线人均月处理量 = 在线会话量月度平均值 / 在线客服人数
第二步:计算目标拦截率下的效果(以80%为例)
• 目标拦截率 = 80%
• 目标转人工率 = 1 - 80% = 20%
• 目标转人工量 = 月均有效会话量 × 目标转人工率
• 减少的转人工量 = 当前转人工量 - 目标转人工量
• 预计节省人力 = 减少的转人工量 / 人均月处理量
• 预计年节省成本 = 预计节省人力 × BPO人均年薪
第三步:效果对比表
| 目标拦截率 | 转人工量 | 减少转人工量 | 节省人力 | 年节省成本 |
|---|---|---|---|---|
| 当前76.89% | 17,698 | - | - | - |
| 目标80% | 15,317 | 2,381 | 0.62人 | 4.84万 |
6.4 热线大模型呼入机器人效果测算(展现完整计算过程)
计算逻辑:以拦截率计算
第一步:确定基座数据(从Excel读取)
• 月均总呼叫量 = [从Excel读取,如25,019通]
• 热线客服人数 = [客户提供,如8人]
• 当前人工处理呼叫量 = 月均总呼叫量(100%人工)
• 热线人均月处理量 = 热线呼叫量月度平均值 / 热线客服人数
第二步:计算目标拦截率下的效果(以60%为例)
• 目标拦截率 = 60%
• 机器人解决量 = 月均总呼叫量 × 目标拦截率
• 转人工呼叫量 = 月均总呼叫量 - 机器人解决量
• 减少的人工呼叫量 = 当前人工处理呼叫量 - 转人工呼叫量
• 预计节省人力 = 减少的人工呼叫量 / 人均月处理量
• 预计年节省成本 = 预计节省人力 × BPO人均年薪
第三步:效果对比表
| 目标拦截率 | 机器人解决量 | 转人工量 | 减少人工量 | 节省人力 | 年节省成本 |
|---|---|---|---|---|---|
| 当前0% | 0 | 25,019 | - | - | - |
| 目标60% | 15,011 | 10,008 | 15,011 | 4.80人 | 37.44万 |
6.5 综合效果汇总(含完整计算过程)
推荐方案:在线80%解决率 + 热线60%拦截率
在线机器人部分(拦截率计算):
• 基座数据:
- 月均有效会话量:76,587通
- 当前拦截率:76.89%
- 当前转人工量:17,698通/月
- 人均月处理量:3,852通/人/月
• 目标设定:拦截率提升至80%
• 计算过程:
- 目标转人工率 = 1 - 80% = 20%
- 目标转人工量 = 76,587 × 20% = 15,317通/月
- 减少转人工量 = 17,698 - 15,317 = 2,381通/月
- 节省人力 = 2,381 ÷ 3,852 = 0.62人
- 年节省成本 = 0.62 × 7.8万 = 4.84万元
热线大模型机器人部分(拦截率计算):
• 基座数据:
- 月均总呼叫量:25,019通
- 当前人工处理量:25,019通/月(100%人工)
- 人均月处理量:3,127通/人/月
• 目标设定:拦截率达到60%
• 计算过程:
- 机器人解决量 = 25,019 × 60% = 15,011通/月
- 转人工呼叫量 = 25,019 - 15,011 = 10,008通/月
- 减少人工量 = 25,019 - 10,008 = 15,011通/月
- 节省人力 = 15,011 ÷ 3,127 = 4.80人
- 年节省成本 = 4.80 × 7.8万 = 37.44万元
效果汇总表:
| 项目 | 在线机器人 | 热线大模型机器人 | 合计 |
|---|---|---|---|
| 当前月均处理量 | 76,587通 | 25,019通 | 101,606通 |
| 目标拦截率 | 80% | 60% | - |
| 预计减少人工处理量 | 2,381通/月 | 15,011通/月 | 17,392通/月 |
| 预计节省人力 | 0.62人 | 4.80人 | 5.42人 |
| 预计年节省成本 | 4.84万元 | 37.44万元 | 42.28万元 |
业务价值延伸:
- 支持业务增长:节省的人力可支持业务增长约[X]%
- 提升服务质量:释放的人力可专注于复杂问题和高价值客户
- 业务连续性:AI Agent 可 7×24 小时服务,支持业务全天候运营
6.6 成本参考
| 人员类型 | 企业年支付总额 | 折算月均成本 | 说明 |
|---|---|---|---|
| 本类型正式员工(公司直聘) | ¥85,200 - ¥147,600 | ¥7,100 - ¥12,300 | - |
| BPO员工(服务商提供) | ¥60,000 - ¥96,000 | ¥5,000 - ¥8,000 | BPO模式的总成本通常比正式员工低约20%-40% |
注: 该总额已包含薪资、社保、管理费、办公成本等所有企业支出。
使用流程
步骤1:收集客户业务信息
在接收数据文件之前,先了解客户的业务背景:
必需信息:
- 客户名称:[公司/品牌名称]
- 所属行业:[教育/电商/金融/游戏/企业服务/其他]
- 业务模式:
- B2C / B2B / B2B2C
- 线上业务 / 线下业务 / 线上线下结合
- 主要产品/服务:[具体产品或服务类型]
- 用户群体特征:[C端消费者/B端企业客户/开发者等]
- 业务周期性(如有):[学期制/季节性/促销活动周期等]
业务信息用途:
- 理解数据波动背后的业务原因(如教育行业的寒暑假、电商的大促周期)
- 识别行业特有的客服场景和问题类型
- 提供更有针对性的 Agent 场景建议
- 分析时结合业务特点给出更精准的洞察
步骤2:接收数据文件
用户需提供以下Excel文件:
- 在线客服数据.xlsx
- 热线客服数据.xlsx(如有)
- 机器人数据.xlsx
- 机器人转人工会话.xlsx(用于场景挖掘)
步骤3:数据分析(结合业务视角)
- 读取各Excel文件
- 生成原始数据表格
- 进行各维度分析时,结合业务背景解读数据:
- 数据波动是否与业务周期相关(如教育行业的开学/放假、电商的促销节点)
- 会话量变化是否反映业务增长或季节性因素
- 用户问题类型是否与产品/服务特点相关
- 高峰期是否与业务高峰期一致
步骤4:场景挖掘(结合业务场景)
- 分析转人工会话
- 结合行业特点和业务模式识别场景:
- 教育行业:课程咨询、选课指导、学习进度查询、退费政策等
- 电商行业:订单查询、物流跟踪、退换货、促销活动等
- 金融行业:账户查询、产品咨询、风险评估、投诉处理等
- 游戏行业:充值问题、账号安全、游戏攻略、活动咨询等
- 识别Agent可解决场景
- 生成场景表格和痛点总结
步骤5:大模型场景分析(结合业务需求)
- 根据场景识别标准筛选可行场景
- 结合业务目标制定Agent解决方案:
- 针对业务痛点设计解决方案
- 考虑业务增长目标(如提升转化率、降低流失率)
- 结合用户旅程设计服务触点
- 确定优先级
步骤6:提效计算
- 询问用户客服人数
- 按照不同拦截率计算效果
- 计算人效提升和成本节省
- 结合业务规模给出 ROI 分析(如:节省的人力可支持业务增长多少)
步骤7:生成报告
输出两份报告:
7.1 先生成 Markdown 格式报告
- 整合所有内容
- 按七个一级标题结构输出(0-6)
- 以 Markdown 格式展示,便于用户快速预览和阅读
- 包含完整的数据表格和分析内容
- 在报告开头添加【业务背景】章节,说明客户业务信息
- 文件命名格式:
QBR报告_[客户名称]_[年月].md - 保存到 workspace 目录
7.2 再生成 HTML 文档(便于分享和展示)并自动发送
⚠️ 强制性要求:HTML 报告生成后必须自动发送给发起请求的用户,无需用户再次询问!
发送流程:
- 生成 HTML 文件并保存到 workspace
- 使用 POPO 文件发送功能,将 HTML 文件发送给发起请求的用户
- 发送完成后告知用户文件已发送
发送脚本示例:
// 读取 POPO 配置并发送文件
const config = JSON.parse(await readFile(process.env.HOME + '/.openclaw/openclaw.json', 'utf-8'));
const popo = config.channels['moltbot-popo'];
// ... 获取 token、注册文件、上传、发送
注意:严禁出现报告生成后让用户主动索要文件的情况!
HTML报告格式规范(标准模板):
采用现代化的紫色渐变设计风格,确保专业美观:
CSS样式规范(严格按照以下样式生成):
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
color: #333;
}
/* 导航栏 */
.navbar {
position: fixed;
top: 0;
left: 0;
right: 0;
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
box-shadow: 0 2px 20px rgba(0,0,0,0.1);
z-index: 1000;
padding: 0 20px;
}
.nav-container {
max-width: 1400px;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
height: 60px;
}
.nav-logo {
font-size: 20px;
font-weight: 700;
color: #667eea;
}
.nav-links {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.nav-links a {
text-decoration: none;
color: #555;
font-size: 13px;
padding: 6px 12px;
border-radius: 20px;
transition: all 0.3s;
white-space: nowrap;
}
.nav-links a:hover {
background: #667eea;
color: white;
}
/* 主容器 */
.main-container {
max-width: 1200px;
margin: 0 auto;
padding: 100px 20px 40px;
}
/* 报告头部 */
.report-header {
background: white;
border-radius: 20px;
padding: 40px;
margin-bottom: 30px;
box-shadow: 0 10px 40px rgba(0,0,0,0.1);
text-align: center;
}
.report-header h1 {
font-size: 32px;
color: #333;
margin-bottom: 10px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.report-header .subtitle {
font-size: 18px;
color: #666;
margin-bottom: 20px;
}
/* 内容区块 */
.section {
background: white;
border-radius: 20px;
padding: 40px;
margin-bottom: 30px;
box-shadow: 0 10px 40px rgba(0,0,0,0.1);
}
.section-header {
display: flex;
align-items: center;
margin-bottom: 30px;
padding-bottom: 20px;
border-bottom: 2px solid #f0f0f0;
}
.section-number {
width: 50px;
height: 50px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 24px;
font-weight: 700;
margin-right: 20px;
}
.section-title {
font-size: 24px;
color: #333;
}
/* 数据卡片 */
.data-cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
margin-bottom: 30px;
}
.data-card {
background: linear-gradient(135deg, #f5f7fa 0%, #e4e8ec 100%);
border-radius: 16px;
padding: 25px;
text-align: center;
transition: transform 0.3s, box-shadow 0.3s;
}
.data-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 30px rgba(102, 126, 234, 0.2);
}
.data-card .value {
font-size: 28px;
font-weight: 700;
color: #667eea;
margin-bottom: 5px;
}
.data-card .label {
font-size: 14px;
color: #666;
}
/* 表格样式 */
.data-table-container {
overflow-x: auto;
margin-bottom: 30px;
}
.data-table {
width: 100%;
border-collapse: collapse;
font-size: 14px;
}
.data-table th {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 15px;
text-align: left;
font-weight: 600;
}
.data-table th:first-child {
border-radius: 10px 0 0 0;
}
.data-table th:last-child {
border-radius: 0 10px 0 0;
}
.data-table td {
padding: 15px;
border-bottom: 1px solid #eee;
}
.data-table tr:nth-child(even) {
background: #f8f9fa;
}
.data-table tr:hover {
background: #f0f4ff;
}
.data-table .highlight {
font-weight: 600;
color: #667eea;
}
/* 分析文本 */
.analysis-text {
background: #f8f9fa;
border-left: 4px solid #667eea;
padding: 20px 25px;
border-radius: 0 10px 10px 0;
margin-bottom: 25px;
}
.analysis-text h4 {
color: #667eea;
margin-bottom: 10px;
font-size: 16px;
}
/* 场景卡片 */
.scenario-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 20px;
}
.scenario-card {
background: #f8f9fa;
border-radius: 16px;
padding: 25px;
border: 1px solid #e9ecef;
transition: all 0.3s;
}
.scenario-card:hover {
border-color: #667eea;
box-shadow: 0 5px 20px rgba(102, 126, 234, 0.1);
}
.scenario-card h4 {
color: #667eea;
margin-bottom: 15px;
font-size: 16px;
}
/* 场景卡片头部 */
.scenario-header {
display: flex;
align-items: center;
margin-bottom: 15px;
}
.scenario-num {
width: 32px;
height: 32px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 16px;
font-weight: 700;
margin-right: 12px;
flex-shrink: 0;
}
.scenario-title {
font-size: 16px;
font-weight: 600;
color: #333;
}
.scenario-content p {
margin-bottom: 10px;
font-size: 14px;
line-height: 1.6;
color: #555;
}
.scenario-content strong {
color: #667eea;
}
/* 计算过程展示 */
.calc-box {
background: #f8f9fa;
border-radius: 12px;
padding: 25px;
margin: 20px 0;
border-left: 4px solid #667eea;
}
.calc-box h4 {
color: #667eea;
margin-bottom: 15px;
}
.calc-box .calc-item {
margin-bottom: 10px;
font-family: 'Courier New', monospace;
font-size: 14px;
}
/* 方案对比卡片 */
.solution-comparison {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 25px;
margin: 30px 0;
}
.solution-card {
background: white;
border-radius: 16px;
padding: 30px;
box-shadow: 0 4px 20px rgba(0,0,0,0.08);
border: 2px solid #e9ecef;
transition: all 0.3s;
}
.solution-card:hover {
border-color: #667eea;
box-shadow: 0 8px 30px rgba(102, 126, 234, 0.15);
}
.solution-card h3 {
font-size: 20px;
color: #333;
margin-bottom: 20px;
display: flex;
align-items: center;
gap: 10px;
}
.solution-target {
background: #f8f9fa;
border-radius: 10px;
padding: 15px;
margin-bottom: 20px;
}
.solution-target .label {
font-size: 12px;
color: #999;
margin-bottom: 5px;
}
.solution-target .value {
font-size: 16px;
font-weight: 600;
color: #667eea;
}
.result-item {
display: flex;
justify-content: space-between;
padding: 12px 0;
border-bottom: 1px solid #eee;
}
.result-item:last-child {
border-bottom: none;
}
.result-item .label {
color: #666;
font-size: 14px;
}
.result-item .value {
font-weight: 600;
color: #333;
font-size: 16px;
}
.scheme-card {
background: white;
border-radius: 16px;
padding: 25px;
margin: 20px 0;
box-shadow: 0 4px 15px rgba(0,0,0,0.08);
border: 2px solid #667eea;
}
.scheme-card.recommended {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
/* 推荐标签 */
.recommend-badge {
display: inline-block;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 6px 16px;
border-radius: 20px;
font-size: 12px;
font-weight: 600;
}
/* 计算过程展示 */
.calculation-box {
background: white;
border-radius: 16px;
padding: 30px;
margin: 30px 0;
box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}
.calculation-box h4 {
color: #667eea;
margin-bottom: 20px;
font-size: 18px;
}
.calc-step {
margin-bottom: 25px;
padding-bottom: 20px;
border-bottom: 1px solid #eee;
}
.calc-step:last-child {
border-bottom: none;
margin-bottom: 0;
padding-bottom: 0;
}
.step-title {
font-weight: 600;
color: #333;
margin-bottom: 12px;
font-size: 15px;
}
.formula {
font-family: 'Courier New', monospace;
font-size: 14px;
color: #555;
margin-bottom: 8px;
padding: 8px 12px;
background: #f8f9fa;
border-radius: 6px;
}
.calc-step .result {
font-weight: 600;
color: #667eea;
font-size: 15px;
margin-top: 10px;
padding: 10px;
background: linear-gradient(135deg, #f0f4ff 0%, #e8edff 100%);
border-radius: 8px;
border-left: 4px solid #667eea;
}
/* 总结框 */
.summary-box {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 16px;
padding: 40px;
margin-top: 30px;
text-align: center;
color: white;
}
.summary-box h3 {
font-size: 20px;
margin-bottom: 15px;
opacity: 0.9;
}
.big-number {
font-size: 48px;
font-weight: 700;
margin-bottom: 15px;
}
.summary-text {
font-size: 14px;
line-height: 1.8;
opacity: 0.9;
max-width: 600px;
margin: 0 auto;
}
HTML结构规范(严格按照以下结构生成):
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>QBR报告 - [客户名称] [年月]</title>
<style>[上述CSS样式]</style>
</head>
<body>
<!-- 导航栏 -->
<nav class="navbar">
<div class="nav-container">
<div class="nav-logo">QBR报告</div>
<div class="nav-links">
<a href="#section0">业务背景</a>
<a href="#section1">在线数据</a>
<a href="#section2">热线数据</a>
<a href="#section3">机器人数据</a>
<a href="#section4">人工会话</a>
<a href="#section5">大模型场景</a>
<a href="#section6">提效分析</a>
</div>
</div>
</nav>
<!-- 主容器 -->
<div class="main-container">
<!-- 报告头部 -->
<header class="report-header">
<h1>客服业务回顾报告</h1>
<div class="subtitle">[客户名称] | [报告周期]</div>
</header>
<!-- 第0部分:业务背景 -->
<section class="section" id="section0">
<div class="section-header">
<div class="section-number">0</div>
<div class="section-title">业务背景</div>
</div>
<!-- 内容 -->
</section>
<!-- 第1部分:在线数据分析 -->
<section class="section" id="section1">
<div class="section-header">
<div class="section-number">1</div>
<div class="section-title">在线数据分析</div>
</div>
<div class="data-table-container">
<table class="data-table">
<thead>[表头]</thead>
<tbody>[所有月份数据行 + 平均值行]</tbody>
</table>
</div>
<!-- 分析内容 -->
</section>
<!-- 第2部分:热线数据分析 -->
<section class="section" id="section2">
<div class="section-header">
<div class="section-number">2</div>
<div class="section-title">热线数据分析</div>
</div>
<div class="data-table-container">
<table class="data-table">
<thead>[表头]</thead>
<tbody>[所有月份数据行 + 平均值行]</tbody>
</table>
</div>
<!-- 分析内容 -->
</section>
<!-- 第3部分:机器人数据分析 -->
<section class="section" id="section3">
<div class="section-header">
<div class="section-number">3</div>
<div class="section-title">机器人数据分析</div>
</div>
<div class="data-table-container">
<table class="data-table">
<thead>[表头]</thead>
<tbody>[所有月份数据行 + 平均值行]</tbody>
</table>
</div>
<!-- 分析内容 -->
</section>
<!-- 第4部分:人工会话分析 -->
<section class="section" id="section4">
<div class="section-header">
<div class="section-number">4</div>
<div class="section-title">人工会话分析</div>
</div>
<div class="scenario-grid">
<!-- 场景卡片 -->
</div>
</section>
<!-- 第5部分:大模型场景分析 -->
<section class="section" id="section5">
<div class="section-header">
<div class="section-number">5</div>
<div class="section-title">
大模型场景分析
<small>LLM Agent Application Scenario Analysis</small>
</div>
</div>
<div class="analysis-text">
<h4>🤖 Agent能力说明</h4>
<p>基于大模型技术的AI Agent具备以下核心能力:</p>
<ul>
<li><strong>调取接口</strong>:可对接业务系统API,实时查询订单、课程、学习进度等数据</li>
<li><strong>文本交互</strong>:支持自然语言理解,进行多轮对话,提供个性化回复</li>
<li><strong>限制说明</strong>:当前Agent能力不包含主动发送消息(如短信、推送),仅支持被动响应</li>
</ul>
</div>
<div class="scenario-grid">
<!-- 8个场景卡片,每个卡片包含:scenario-header + scenario-content -->
<!-- 适用场景、Agent化原因、实现方式、预期效果 -->
</div>
<div class="analysis-text">
<h4>💡 Agent化实施建议</h4>
<ul>
<li><strong>优先级排序</strong>:建议优先实施纯数据查询类Agent</li>
<li><strong>接口准备</strong>:需梳理现有系统接口,对于缺失的接口需评估开发成本</li>
<li><strong>人机协作</strong>:Agent处理不了的复杂场景需平滑转人工</li>
<li><strong>持续优化</strong>:通过会话数据分析持续优化Agent识别率和解决率</li>
</ul>
</div>
</section>
<!-- 第6部分:提效分析 -->
<section class="section" id="section6">
<div class="section-header">
<div class="section-number">6</div>
<div class="section-title">
提效分析
<small>Efficiency Improvement Analysis</small>
</div>
</div>
<div class="solution-comparison">
<div class="solution-card solution-1">
<h3>方案一:[方案名称]</h3>
<div class="solution-target">
<div class="label">目标设定</div>
<div class="value">在线拦截率[X]% + 热线拦截率[X]%</div>
</div>
<div class="result-item">
<span class="label">节省人力</span>
<span class="value">[X]人</span>
</div>
<div class="result-item">
<span class="label">年节省成本</span>
<span class="value">[X]万元</span>
</div>
<div class="result-item">
<span class="label">投资回报周期</span>
<span class="value">约[X]个月</span>
</div>
</div>
<div class="solution-card solution-2">
<h3>方案二:[方案名称] <span class="recommend-badge">推荐</span></h3>
<div class="solution-target">
<div class="label">目标设定</div>
<div class="value">在线拦截率[X]% + 热线拦截率[X]%</div>
</div>
<div class="result-item">
<span class="label">节省人力</span>
<span class="value">[X]人</span>
</div>
<div class="result-item">
<span class="label">年节省成本</span>
<span class="value">[X]万元</span>
</div>
<div class="result-item">
<span class="label">投资回报周期</span>
<span class="value">约[X]个月</span>
</div>
</div>
</div>
<div class="calculation-box">
<h4>📐 计算过程详解</h4>
<div class="calc-step">
<div class="step-title">【基础数据】</div>
<div class="formula">在线月均会话量 = [X] 通/月</div>
<div class="formula">热线月均呼入量 = [X] 通/月</div>
<div class="formula">当前在线客服 = [X]人,热线客服 = [X]人</div>
<div class="formula">BPO人均年薪 = [X]万元</div>
<div class="formula">在线人均月处理量 = [X]通/人/月</div>
<div class="formula">热线人均月处理量 = [X]通/人/月</div>
</div>
<div class="calc-step">
<div class="step-title">【方案一计算】在线[X]%拦截 + 热线[X]%拦截</div>
<div class="formula">1. 在线人工处理量 = [X] × (1-[X]%) = [X] 通/月</div>
<div class="formula">2. 在线所需人力 = [X] ÷ [X] = [X] 人</div>
<div class="formula">3. 在线节省人力 = [X] - [X] = [X] 人</div>
<div class="formula">4. 热线人工处理量 = [X] × (1-[X]%) = [X] 通/月</div>
<div class="formula">5. 热线所需人力 = [X] ÷ [X] = [X] 人</div>
<div class="formula">6. 热线节省人力 = [X] - [X] = [X] 人</div>
<div class="formula">7. 总节省人力 = [X] 人</div>
<div class="result">年节省成本 = [X] × [X] = [X] 万元</div>
</div>
<div class="calc-step">
<div class="step-title">【方案二计算】在线[X]%拦截 + 热线[X]%拦截</div>
<div class="formula">[同上格式]</div>
<div class="result">年节省成本 = [X] 万元</div>
</div>
<div class="calc-step">
<div class="step-title">【方案对比总结】</div>
<div class="formula">方案一 vs 方案二:多节省 [X]人,多节省 [X]万元/年</div>
<div class="formula">方案二额外投入:[说明]</div>
<div class="result">推荐方案[一/二],[原因说明]</div>
</div>
</div>
<div class="analysis-text">
<h4>📊 实施路径建议</h4>
<ul>
<li><strong>第一阶段(1-2月)</strong>:[具体实施内容]</li>
<li><strong>第二阶段(3-4月)</strong>:[具体实施内容]</li>
<li><strong>第三阶段(5-6月)</strong>:[具体实施内容]</li>
<li><strong>持续优化</strong>:[优化方向]</li>
</ul>
</div>
<div class="summary-box">
<h3>💰 年度节省预估</h3>
<div class="big-number">[X]万元</div>
<div class="summary-text">
[总结性描述,说明通过实施AI Agent方案可节省的成本和价值]
</div>
</div>
</section>
<!-- 报告结尾 -->
<div class="report-header" style="margin-top: 40px;">
<div class="subtitle">— 报告结束 —</div>
<p style="color: #999; font-size: 14px; margin-top: 15px;">本报告基于[时间段]运营数据分析生成,仅供参考</p>
</div>
</div>
</body>
</html>
报告必须包含的7个部分:
- 业务背景(section-number: 0)
- 在线数据分析(section-number: 1,必须包含完整原始数据表格)
- 热线数据分析(section-number: 2,必须包含完整原始数据表格)
- 机器人数据分析(section-number: 3,必须包含完整原始数据表格)
- 人工会话分析(section-number: 4,scenario-grid布局)
- 大模型场景分析(section-number: 5,scenario-grid布局)
- 提效分析(section-number: 6,calc-box + scheme-card)
- 文件命名格式:
QBR报告_[客户名称]_[年月].html - 保存到 workspace 目录
- 告知用户 HTML 文件路径
注意:不再生成 Word 文档,仅提供 Markdown 和 HTML 两种格式。
注意事项
- 数据隐私:处理客户数据时注意保密
- 准确性:计算人效时必须基于Excel中的实际数据,严禁编造数据
- 时效性:BPO成本数据需根据实际情况调整
- 专业性:报告语言专业、客观、有说服力
- 可操作性:建议需具体可执行
- 拦截率上限:
- 在线机器人Agent拦截率**最高按80%**计算
- 热线大模型呼入机器人拦截率**最高按60%**计算
- 数据展示(强制性):
- ✅ 所有数据分析模块(在线、热线、机器人)必须先展示完整原始数据表格
- ✅ 原始数据表格必须包含Excel中的所有月份和所有字段
- ✅ 必须在表格最后一行显示平均值
- ❌ 严禁只展示表头或示例数据!
- 文件发送(强制性):
- ✅ HTML 报告生成后必须自动发送给发起请求的用户
- ✅ 使用 POPO 文件发送功能
- ❌ 严禁让用户主动索要文件!
- ❌ 严禁出现"文件已生成,请查看"但不发送的情况!
文档生成指南
Markdown 文档生成
直接生成 Markdown 格式报告,包含:
- 标题信息:报告标题、客户名称、报告周期、生成日期
- 正文内容:七个一级标题模块(0-6)
- 格式规范:
- 使用 Markdown 标准语法
- 表格使用管道符格式
- 列表使用标准列表语法
- 强调使用加粗和斜体
HTML 文档生成
使用 HTML 生成美观的网页版报告,采用紫色渐变设计风格:
设计规范:
- 配色方案:紫色渐变主色调(#667eea → #764ba2)
- 布局风格:现代化卡片式设计,圆角边框,柔和阴影
- 导航栏:固定顶部,毛玻璃效果(backdrop-filter),圆角链接
- 数据展示:
- 核心指标使用渐变文字效果
- 数据卡片带顶部彩色边框
- 表格表头使用渐变背景
- 内容区块:白色背景卡片,圆角20px,柔和阴影
- 场景展示:使用场景卡片网格布局,左侧彩色边框
- 计算过程:使用高亮代码框展示
- 响应式设计:适配PC和移动端
必须包含的元素:
- 固定导航栏(7个章节链接)
- 报告头部(标题+副标题+4个核心指标卡片)
- 7个section-card内容区块
- 原始数据表格(必须包含完整数据,不能只有表头):
- 在线客服数据表格:包含所有月份的所有字段(总会话量、首次响应时间、响应时间、会话时长、满意度、排队量、排队时长)
- 热线客服数据表格:包含所有月份的所有字段(呼入量、接通率、排队量、排队时长、通话时长、解决率、满意率)
- 机器人数据表格:包含所有月份的所有字段(总会话量、有效会话量、有效会话解决量、解决率、匹配率)
- 必须在表格最后一行显示平均值
- 场景卡片网格(人工会话+大模型场景)
- 计算过程展示(calc-box)
- 方案对比卡片(scheme-card)
原始数据表格生成要求(强制性):
- ✅ 使用
<table>标签,class="data-table" - ✅ 表头使用
<thead>和<th>,带渐变背景 - ✅ 数据行使用
<tbody>和<td> - ✅ 必须循环读取Excel中的每一行数据,生成对应的
<tr>,严禁只生成表头! - ✅ 必须包含所有月份的数据,不能遗漏任何一行!
- ✅ 平均值行必须使用粗体和特殊背景色突出显示
- ✅ 表格必须带悬停效果(tr:hover)
- ❌ 严禁只展示表头或示例数据,必须展示完整真实数据!
技术实现:
- 使用原生 HTML5 + CSS3
- 采用CSS Grid和Flexbox布局
- 使用CSS渐变、阴影、圆角等现代特性
- 无需外部依赖,纯原生实现
- 使用 CSS Grid/Flexbox 进行布局
- 添加平滑滚动和锚点定位
输出流程(强制性)
步骤1:生成 Markdown 格式报告
- 整合所有内容,按七个一级标题结构输出
- 保存到 workspace 目录
- 文件命名:
QBR报告_[客户名称]_[年月].md
步骤2:生成 HTML 文档
- 使用标准紫色渐变样式(#667eea → #764ba2)
- 包含完整的原始数据表格(所有月份数据)
- 保存到 workspace 目录
- 文件命名:
QBR报告_[客户名称]_[年月].html
步骤3:自动发送 HTML 文件(⚠️ 必须执行)
- 严禁跳过此步骤!
- 使用 POPO 文件发送功能,将 HTML 文件发送给发起请求的用户
- 发送脚本参考 AGENTS.md 中的"发送文件到 POPO"章节
- 发送完成后告知用户:"HTML 报告已生成并发送至您的 POPO,请查收。"
注意:
- 仅生成 Markdown 和 HTML 两种格式,不再生成 Word 文档
- HTML 文件必须自动发送,严禁让用户主动索要!