客服数据一体化看板 Skill
概述
本技能提供端到端的客服数据看板生成能力:从多源数据读取、指标计算,到多格式看板输出。核心优势:支持每日/每周自动更新,看板生成一次,后续无需手动操作,数据自动刷新。
覆盖客服运营全场景指标,支持用户自定义指标优先级。
核心能力
1. 多源数据接入
支持以下数据源,读取方式详见 references/data_sources.md:
| 数据源 | 读取方式 | 支持自动更新 |
|--------|---------|------------|
| Google Sheets | scripts/read_google_sheet.py | ✅ 最佳(在线,实时更新) |
| 腾讯文档表格 | tencent-docs MCP(smartsheet API) | ✅ 支持 |
| API(Zendesk / Intercom / 企业微信客服) | 调用对应API | ✅ 支持 |
| MySQL / PostgreSQL | pandas.read_sql | ✅ 支持 |
| Excel / CSV(固定路径) | pandas 直接读取 | ⚠️ 需手动覆盖原文件 |
2. 自动更新机制(核心优势)
看板支持两种自动更新方式,用户按数据源选择:
方式A:HTML 看板 + 定时重生成(推荐)
适用于所有数据源。配置 WorkBuddy automation 定时任务,每日/每周自动执行:
读取最新数据 → 重新计算指标 → 覆盖生成看板 HTML → 通知用户
配置方法见下方"自动更新配置"。
方式B:HTML 看板实时读取数据源(Google Sheets 专属)
生成的 HTML 看板内置 JavaScript,打开时自动从 Google Sheets 拉取最新数据并渲染图表,无需重新生成文件。
适用条件:
- 数据源为 Google Sheets
- Sheet 已设置为"任何人可查看"或发布到网页
启用方式:生成 HTML 看板时,传入 --live-sheet-id <SHEET_ID> 参数。
3. 指标计算
内置完整的客服行业指标体系,详见 references/metrics.md。
体量类指标:咨询量、工单量、接待量、排队量 时效类指标:平均响应时长、平均解决时长、首次响应时长、SLA达标率 质量类指标:CSAT、NPS、首次解决率(FCR)、升级率、重复咨询率 效能类指标:人均接待量、利用率、考勤时长、在线时长
用户指定指标时,优先按用户需求计算;未指定时,按指标体系全量输出。
4. 看板生成(四种格式均有完整实现)
每种格式都有对应的脚本和明确的使用命令:
| 格式 | 适用场景 | 生成脚本 | 命令示例 |
|------|---------|---------|---------|
| HTML 网页看板 | 交互式查看、分享链接 | scripts/generate_html_dashboard.py | python generate_html_dashboard.py --input data.csv --output dashboard.html |
| Excel 报表 | 存档、进一步加工 | scripts/generate_excel_dashboard.py | python generate_excel_dashboard.py --input data.csv --output 看板.xlsx --period "2026-06" |
| PPT 汇报 slides | 会议汇报 | scripts/generate_ppt_dashboard.py | python generate_ppt_dashboard.py --input data.csv --output 汇报.pptx |
| 腾讯文档智能表格 | 团队协作 | tencent-docs MCP 工具调用 | 见下方「腾讯文档工作流程」 |
自动更新配置
配置每日自动看板
使用 automation_update 工具创建定时任务(或引导用户在 WorkBuddy 中配置):
示例:每日早上9点生成昨日看板
- name: "每日客服数据看板"
- scheduleType: "recurring"
- rrule: "FREQ=DAILY;BYHOUR=9;BYMINUTE=0"
- prompt: "读取 Google Sheet(ID: xxx)昨日数据,使用 generate_html_dashboard.py 生成客服数据看板 HTML"
示例:每周一早上9点生成上周汇总
- name: "每周客服数据看板"
- scheduleType: "recurring"
- rrule: "FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0"
- prompt: "读取上周(上周一至上周日)的客服数据,使用 generate_ppt_dashboard.py 生成周度 PPT 汇报"
HTML 实时模式配置(Google Sheets)
生成 HTML 看板时传入参数启用实时模式:
python scripts/generate_html_dashboard.py \
--input data.csv \
--output dashboard.html \
--live-sheet-id YOUR_SHEET_ID_HERE \
--live-range "Sheet1!A1:Z9999"
打开生成的 HTML 即可看到实时同步标识和刷新按钮。
工作流程
Step 1:确认需求
收集以下信息(已有则跳过):
- 数据来源:用户已提供数据文件/链接,或需要引导用户提供
- 时间范围:上周、本月、本季度、自定义区间
- 输出格式:HTML / Excel / PPT / 腾讯文档,未指定则默认 HTML
- 是否需要自动更新:确认为一次性看板,还是需要配置每日/每周自动刷新
用户不知道如何提供数据时,引导其参考 references/data_format_examples.md,或直接提供示例文件让其填写:
assets/sample_data_minimal.csv— 最小格式(3列即可)assets/sample_data_recommended.csv— 推荐格式(含模拟数据可直接体验)assets/sample_data_full.csv— 完整格式(全指标覆盖)
Step 2:读取数据
按照 references/data_sources.md 的指引读取数据,统一处理为标准 DataFrame 结构。
若原始数据字段不标准,先在"字段映射表"中查找对应映射,或询问用户确认字段含义。
Step 3:计算指标
按照 references/metrics.md 中的公式进行计算。各格式脚本内部均包含完整的 compute_metrics() 函数,会根据实际列名自动判断可计算哪些指标。
Step 4:生成看板
根据用户选择的格式,执行对应的生成命令:
4a. HTML 看板(默认推荐)
python scripts/generate_html_dashboard.py \
--input <输入文件> \
--output dashboard.html \
--period "<周期描述>" \
[--live-sheet-id <SHEET_ID>] # 可选:启用实时模式
- 输出为独立 HTML 文件,用浏览器打开即可查看
- 包含 KPI 卡片 + 5 个图表 + 明细表
- 启用实时模式后,页面顶部显示"实时模式"标签和刷新按钮
4b. Excel 报表
python scripts/generate_excel_dashboard.py \
--input <输入文件> \
--output 看板.xlsx \
[--period "<周期描述>"] # 用于标题显示
[--sheet "Sheet1"] # Excel sheet名(仅xlsx)
- 输出 xlsx 文件,包含两个 sheet:「数据看板」(KPI + 图表)、「原始数据」
- 自动插入咨询量趋势柱状图
4c. PPT 汇报 slides
python scripts/generate_ppt_dashboard.py \
--input <输入文件> \
--output 汇报.pptx \
[--period "<周期描述>"]
- 输出 pptx 文件,16:9 宽屏格式,共 5-7 页幻灯片
- 页面结构:封面 → KPI概览 → 渠道分布 → 客服排行 → CSAT分析 → 结束页
- 缺少某字段时,对应页面会显示友好提示(如"⚠️ 数据中未包含渠道字段")
4d. 腾讯文档智能表格
通过 tencent-docs MCP 工具创建,步骤如下:
① 创建空白文档 → mcp__tencent-docs__manage.create_file (type=sheet)
② 创建智能表格 → mcp__tencent-docs__smartsheet.add_table
③ 写入字段定义 → mcp__tencent-docs__smartsheet.add_fields
④ 写入聚合后的指标数据 → mcp__tencent-docs__smartsheet.add_records
⑤ 返回文档链接给用户(附加 _fid 参数)
自动更新场景下的腾讯文档:不需要重新创建文档,直接调用 smartsheet.update_records 更新已有表格数据即可。
Step 5:异常处理与错误排查
遇到错误时,按以下顺序排查,给用户提供具体定位信息:
| 错误现象 | 可能原因 | 解决方案 | |----------|---------|---------| | ❌ 编码错误 / UnicodeDecodeError | CSV 文件编码不是 UTF-8 | 用 Excel 打开 CSV → 另存为 → 选择"UTF-8 CSV"格式;或脚本已自动尝试 utf-8-sig / gbk / latin-1 多种编码 | | ❌ 列名不匹配 / KeyError | 数据列名不是标准名称 | 查看"字段映射表"进行映射;或在错误提示中列出当前列名供用户对照 | | ❌ 数据为空(0行) | 文件内容为空或只有表头 | 提示用户检查文件是否正确导出 | | ❌ 缺少必要列(ticket_id / created_at) | 数据文件缺少关键字段 | 列出缺失的列名和当前已有列名;告知用户哪些指标无法计算 | | ⚠️ 某些指标显示 N/A | 数据中缺少对应字段(如 csat_score) | 正常情况,提示用户补充该字段后可完整展示该指标 | | ⚠️ PPT 页面提示"⚠️ 未包含XX字段" | 数据中无该字段 | 该页面仍正常显示但跳过相关图表,不影响其他页面 | | ❌ Google Sheets 读取失败 | Sheet ID 错误或未设置分享权限 | 提示用户确认:①Sheet ID 是否从 URL 正确提取 ②是否已设为"任何人可查看" | | ❌ API Token 过期 / 认证失败 | Token 或 Key 已失效 | 提示用户重新获取凭证 | | ⚠️ 文件过大(>10万行) | 数据量超出可视化合理范围 | 建议先抽样或按日期过滤后再生成;Excel 格式可能更合适 |
通用原则:任何错误信息必须包含:
- 具体的错误类型(不只是"出错了")
- 当前已有的列名列表(方便用户对比)
- 下一步应该做什么(而不是让用户自己猜)
Step 6:配置自动更新(如需要)
若用户确认需要自动更新,调用 automation_update 工具创建定时任务。
Step 7:输出与确认
将生成的看板文件通过 present_files 工具展示给用户,确认是否满足需求。
字段映射表
当原始数据字段名不标准时,参考以下映射:
| 标准字段 | 常见别名 | |---------|---------| | date / created_at | 日期、创建时间、create_time、ticket_date | | agent_name | 客服、处理人、agent、operator、staff | | ticket_id | 工单号、case_id、ticket_number | | response_time | 响应时长、reply_time、first_response_time | | resolution_time | 解决时长、handle_time、close_time | | csat_score | 满意度、CSAT、score、rating | | channel | 渠道、来源、source、channel_type |
注意事项
- 数据量超过10万行时,优先使用抽样或聚合后再可视化,避免生成文件过大
- 涉及客服个人绩效数据时,输出前确认是否包含敏感信息
- Google Sheets 读取需要用户提供 Sheet ID 和分享权限
- API 方式读取需要用户提供 API Key / Token
- 自动更新场景:确保数据源路径/凭证在定时任务执行时仍然有效
Resources
references/
metrics.md— 完整指标体系定义、计算公式、行业基准值data_sources.md— 各数据源详细读取指南data_format_examples.md— 数据格式示例,用户不知道如何提供数据时参考
scripts/
read_google_sheet.py— Google Sheets 读取脚本(需要 credentials.json)generate_excel_dashboard.py— Excel 看板生成脚本(openpyxl + 图表)generate_html_dashboard.py— HTML 看板生成脚本(Chart.js,支持实时模式注入)generate_ppt_dashboard.py— PPT 看板生成脚本(python-pptx,16:9宽屏)
assets/
dashboard_template.html— HTML 看板模板(Chart.js,支持实时 Google Sheets 模式)sample_data_minimal.csv— 最小格式示例文件(3列即可生成基础看板)sample_data_recommended.csv— 推荐格式示例文件(含模拟数据,可直接体验)sample_data_full.csv— 完整格式示例文件(全指标覆盖,含模拟数据)
微信扫一扫