满意度评价(CSAT)
1. CSAT 流程
通话结束
│
▼
播放 IVR 提示音 ("请对本次服务进行评价...")
│
├── 按键 1 = 非常满意
├── 按键 2 = 满意
├── 按键 3 = 一般
├── 按键 4 = 不满意
├── 按键 5 = 非常不满意
│
▼
记录评价 (cc_csat)
│
▼
播放感谢语 → 挂断
2. 配置
CSAT 作为独立 IVR 应用,在路由或队列配置中引用:
2.1 队列配置
[[queue]]
name = "sales-queue"
[queue.after_call]
csat_enabled = true
csat_ivr = "csat-survey"
2.2 全局默认与转接抑制(0.5+)
CSAT 增加了全局配置与技能组级覆盖,并优化了调查对象的选择:
- 全局默认(cc 配置中的
[proxy.cc.csat]风格设置)定义调查 IVR、提示音(随插件内置)与启用状态——技能组可覆盖全局行为。 - 转接后可选参与:默认情况下,被转接的通话不再进入 CSAT 调查——客户对被转手的通话很难给出公正评分。仍希望收集转接反馈的技能组可打开 after-transfer 开关;否则 MarkTransferred 命令会抑制调查。
- 转接状态随通话携带(transferred-call 标记),跨咨询转链路后抑制依然生效。
2.2 自定义 CSAT IVR
CSAT 使用标准 IVR Step 协议,可通过 IVR Editor 自定义流程:
| 步骤 | 说明 |
|---|---|
| 播放提示 | “请对本次服务评分,1-5” |
| 收集按键 | 等待 DTMF 输入 |
| 确认 | “您评了 X 分” |
| 感谢 | “感谢您的评价” |
| 挂断 | 结束通话 |
3. CSAT API
3.1 提交评价
POST /cc/csat/{call_id}
Body: {
"score": 5,
"comment": "服务很好",
"agent_id": "agent-001",
"queue_id": "sales-queue"
}
3.2 查询坐席评价
GET /cc/csat/agent/{agent_id}
返回该坐席的所有 CSAT 评分:
- 平均分
- 评价数量
- 评分分布
3.3 查询队列评价
GET /cc/csat/queue/{queue_id}
4. CSAT 统计
4.1 坐席维度
| 指标 | 说明 |
|---|---|
| 平均 CSAT | 该坐席的平均评分 |
| 评价数 | 收到评价的总数 |
| 评分分布 | 1-5 分各多少 |
| 趋势 | 近 N 天的评分变化 |
4.2 队列维度
| 指标 | 说明 |
|---|---|
| 队列平均 CSAT | 该队列的整体满意度 |
| 坐席排名 | 队列内坐席按 CSAT 排名 |
5. 数据库
CSAT 数据存储在 cc_csat 表:
| 字段 | 说明 |
|---|---|
| id | 记录 ID |
| call_id | 关联通话 ID |
| agent_id | 坐席 ID |
| queue_id | 队列 ID |
| score | 评分 (1-5) |
| comment | 文字评价 |
| created_at | 时间戳 |
6. CSAT 结果服务
CSAT Result Service 后台服务:
- 聚合每日/每周/每月的 CSAT 统计
- 计算坐席排名
- 生成趋势数据供报表 API 查询