Coaching — 计算配置

Source of truth: studio-website-monorepo/apps/api/src/routes/v3/dashboard-staff.ts(coaching flag 逻辑);callytics-common/src/db/schema/calls.ts(coaching 字段);ai-analysis-processor/src/core/stages/coaching.ts(AI pipeline) last_verified: 2026-05-29


Coaching Flag 触发条件

通话进入 coaching 列表需通过两层 gate:

Gate条件说明
AI analysis gatecall_state = 'human_conversation' AND duration > 30s不满足则跳过 AI coaching 分析,填 sentinel
AI 判断practical_coaching_scenario 有实质内容(不是 No Coaching Available% / Voicemail%AI 认为有值得辅导的时刻
UI list filterduration > 60 + staff_name 非空且非 unidentified + scenario 排除 No Coaching% / Coaching skipped% / Voicemail%Dashboard coaching highlights 的额外过滤

Coaching Flag Rate(员工维度)

从 staff endpoint 计算:

coaching_worthy = COUNT(*) FILTER (
  WHERE practical_coaching_scenario IS NOT NULL
    AND practical_coaching_scenario NOT LIKE 'No Coaching Available%'
    AND practical_coaching_scenario NOT LIKE 'Voicemail%'
    AND duration > 60
)

eligible_calls = COUNT(*) FILTER (
  WHERE duration > 60
    AND practical_coaching_scenario IS NOT NULL
    AND call_state IN ('human_conversation', 'voicemail')
)

flag_rate = coaching_worthy / eligible_calls × 100

状态:✅ 已接线


三个 KPI

待确认去留(2026-05-28 会议评论)

Vivian 提出此 3 个 KPI 与 Dashboard 重复,建议删除;待 Coaching UX 重设计定案。下表「状态」列指底层数据接线情况(数据本身存在),不代表这组 KPI 已确定保留在 Coaching 页。

指标产品定义数据来源状态
Calls Handled选定时段内处理的通话总数calls 表 COUNT✅ 已接线
Tasks Closed选定时段内关闭的任务数tasks 表 COUNT WHERE closed✅ 已接线
Core Productivity三类核心任务完成率同 My Stores 定义✅ 前端计算

Coaching 内容字段

字段来源状态
practical_coaching_scenarioAI Stage 3 输出,一句话场景标签✅ 已接线
practical_coaching_feedbackAI Stage 3 输出,含 5 个子字段(timestamp / what_was_said / context / what_could_have_been_said / why_recommendation_is_better)✅ 已接线

待开发功能的数据需求

功能需要的字段当前状态
Read / Unread / Archivedcalls 表需加 coaching 状态字段⚠️ 待开发
Note 功能calls 表需加 note 字段⚠️ 待开发
Flag for Coaching / Removecalls 表需加 coaching flag boolean⚠️ 待开发