← 返回
未分类 Key

vipthink-crm-recording

豌豆思维CRM录音分析技能。从CRM调取通话录音,通过ASR转文字+AI质检,生成话术评分、客户意向、改进建议等报告。当用户提到以下任何内容时立即使用:CRM录音、录音分析、通话质检、销售录音、话术分析、CC复盘、团队录音、录音转文字、ASR转录、质检评分、豌豆思维、vipthink、语义分析、意图分析、录音报告、录音排名、优秀录音、差录音、录音培训、录音标杆、录音改进、录音总结、录音评价、录音数据、通话数据、有效通话、录音时长、拨通时长、CC表现、渠道分析、客户意向、对话质量、听听录音、看看通话、录音调取、录音下载、录音抽查、批量分析、录音URL、客服录音、电销录音、外呼录音、家长录音、试听录音、签约录音、跟进录音、回访录音。
user_984b2fc9
未分类 community v2.3.0 1 版本 100000 Key: 需要
★ 1
Stars
📥 104
下载
💾 0
安装
1
版本
#latest

概述

---

name: vipthink-crm-recording

description: "豌豆思维CRM录音分析技能。从CRM调取通话录音,通过ASR转文字+AI质检,生成话术评分、客户意向、改进建议等报告。当用户提到以下任何内容时立即使用:CRM录音、录音分析、通话质检、销售录音、话术分析、CC复盘、团队录音、录音转文字、ASR转录、质检评分、豌豆思维、vipthink、语义分析、意图分析、录音报告、录音排名、优秀录音、差录音、录音培训、录音标杆、录音改进、录音总结、录音评价、录音数据、通话数据、有效通话、录音时长、拨通时长、CC表现、渠道分析、客户意向、对话质量、听听录音、看看通话、录音调取、录音下载、录音抽查、批量分析、录音URL、客服录音、电销录音、外呼录音、家长录音、试听录音、签约录音、跟进录音、回访录音。"


豌豆思维CRM1.0系统 - 录音调用与分析

概述

本技能封装了从VIPThink CRM系统调取电话录音并进行智能分析的完整操作流程,包括:

第一阶段:录音调取(CRM操作)

  1. 团队筛选(通过el-cascader级联选择器)
  2. 筛选条件选择(如今日完课)
  3. 定位学生并打开详情
  4. 切换到电话标签页
  5. 筛选有效接通录音(>30秒)
  6. 获取录音URL

第二阶段:语音分析(API调用)

  1. 阿里云ASR语音转录(Paraformer-v2,支持粤语/普通话)
  2. AI质检分析(Qwen-Plus,多维度评分)
  3. 批量分析与多维度报告生成

触发后第一轮对话

当本skill被触发时,必须先向用户确认以下信息后再执行任何CRM或API操作:

  1. 分析范围:"请确认要分析哪个团队?"n - 港澳团队(默认)n - 北京上海团队`n - 台湾团队
  2. 筛选条件:"要分析哪类学生?"
    • 今日完课(默认)
    • 今日新分配
    • 今日需回访
    • 未约课
    • 今日上课
    • 课后未拨通
  3. 分析模式
    • 单条录音分析(默认)
    • 批量分析(需确认数量上限,建议≤20条/批)
  4. 输出格式
    • Markdown报告(默认)
    • Excel报表

用户确认后,根据选择拼接CRM URL并开始执行。

适用场景

  • 电销团队录音质检分析
  • 客服通话质量抽查
  • 销售话术复盘
  • 团队通话数据分析
  • 批量录音自动化质检

核心工具

CRM操作工具(通过run_mcp调用integrated_browser)

工具用途
------------
browser_evaluate执行JavaScript,操作Vue动态渲染内容
browser_snapshot获取页面快照,定位元素
browser_wait_for等待页面加载/弹窗出现
browser_tabs管理浏览器标签页

分析服务(Python脚本调用)

服务用途详情
------------------
阿里云DashScope ASR语音转录Paraformer-v2模型,支持粤语+普通话,说话人分离
阿里云DashScope LLM质检分析Qwen-Plus模型,结构化JSON输出

快速开始

一、CRM录音调取

团队ID映射

团队admin_group_list`n-----------------------`n港澳团队8,70,172`n北京上海团队8,70,154`n台湾团队8,70,180

筛选条件类型(main_type)

显示名称URL值
----------------
全部all
今日新分配today_new
今日需回访today_callback
未约课no_lesson
今日上课today_lesson
今日完课today_lesson_end
课后未拨通after_class_no_call

调用流程(6步)

Step 1: 导航到CRM页面

URL: https://cc.vipthink.cn/#/student/cc_m_list?admin_group_list=8,70,172&main_type=today_lesson_endnn 注:北京上海团队使用 admin_group_list=8,70,154`n 注:台湾团队使用 admin_group_list=8,70,180

Step 2: 点击学生姓名(browser_evaluate)

var rows = document.querySelectorAll('.el-table__body-wrapper tbody tr');

rows[0].querySelector('td:nth-child(4) .el-button--text').click();

Step 3: 切换到电话标签(browser_evaluate)

var dialog = document.querySelectorAll('.el-dialog__wrapper')[11];

dialog.querySelectorAll('.el-tabs__item')[2].click();

Step 4: 筛选有效通话(>30秒)

列结构: 0=复选框, 1=拨打时间, 2=接听时间, 3=拨打人, 4=渠道, 5=拨通时长, 6=通话时长, 7=是否有效

条件: isValid === '是' && totalSeconds > 30

Step 5: 获取录音URL(browser_evaluate)

// 方法1:从audio元素获取

var audio = document.querySelector('audio');

var url = audio ? audio.src : null;

// 方法2:从下载按钮获取

if (!url) {

var btns = document.querySelectorAll('.el-button--text');

btns.forEach(function(btn) {

if (btn.textContent.includes('下载')) {

url = btn.getAttribute('href') || btn.onclick.toString().match(/'(https?:\/\/[^']+)'/);

}

});

}

// 方法3:从网络请求拦截

if (!url) {

var entries = performance.getEntriesByType('resource');

entries.forEach(function(e) {

if (e.name.includes('.mp3') || e.name.includes('.wav') || e.name.includes('oss')) {

url = e.name;

}

});

}

Step 6: 播放/验证录音

点击小喇叭播放验证

二、语音分析

API配置

配置项
--------------
DashScope API Keysk-99f9364af58c49d5b927f43dc08e2e5c
ASR模型paraformer-v2
ASR端点https://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription
质检模型qwen-plus
质检端点https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions

ASR转录参数

model: paraformer-v2

input: file_urls: [录音URL]

parameters:

channel_id: [0]

language_hints: [zh, yue]

diarization_enabled: true

disfluency_removal_enabled: true

语言自动检测

在ASR转录前,通过以下方式判断录音语言,优化转录准确率:

  1. 查看学生所属渠道(港澳团队→粤语概率高)
  2. 查看CC名字(粤语名字→粤语概率高)
  3. 默认使用 language_hints: [zh, yue] 让ASR自动识别
  4. 如果转录结果出现大量乱码或识别率<60%,尝试单独使用 language_hints: [yue] 或 [zh] 重试

质检分析输出格式

checkpoints: [{name, status(完成/未完成/部分完成), evidence, suggestion}]

score: 0-100

level: 优秀/合格/待改进

summary: 整体评价

customer_intent: 高/中/低

conversation_quality: 流畅/一般/生硬

key_phrases: [关键话术]

improvements: [改进建议]

三、批量分析报告

报告包含8大模块:

模块内容
------------
总体概况录音数、平均分、质量分布、趋势对比
CC维度分析CC排名、详细表现、薄弱项识别
渠道维度分析各渠道平均分、标准差
质检项完成情况完成率可视化、薄弱项典型案例
客户意向分析高/中/低意向分布及跟进建议
对话质量分析流畅/一般/生硬分布
录音详细分析每条录音完整质检项、关键话术、改进建议
行动建议高意向客户清单、需补救CC、培训建议

检查点

在以下关键节点必须暂停并等待用户确认:

  • [CP1] 分析前确认:展示筛选结果(学生数量、有效通话数量),用户确认后再开始分析
  • [CP2] 批量分析前确认:当有效通话>10条时,提醒用户分析时间和API消耗(约30秒/条),确认后继续
  • [CP3] 报告生成后确认:展示报告摘要,询问用户是否需要深入分析某条录音或导出Excel

References

CRM操作

  • ./references/team-selection.md - 团队筛选与URL参数详解
  • ./references/student-detail.md - 学生详情弹窗操作指南
  • ./references/recording-flow.md - 录音调取完整流程

语音分析

  • ./references/asr-service.md - 阿里云ASR服务配置与调用
  • ./references/qc-standards.md - 质检标准与评分规则
  • ./references/batch-analysis.md - 批量分析流程与报告结构

脚本文件

脚本用途位置
------------------
batch_recording_analyzer_v2.py批量分析主脚本(并行+多维度报告)d:\Trae工作内容\日常项目\scripts\
pre_class_recording_analyzer.py单条课前录音分析脚本d:\Trae工作内容\日常项目\scripts\

关键发现点

CRM表格结构(Element UI)

el-table > el-table__body-wrapper > tbody > tr > td

cell 0: 复选框, cell 1: 组别, cell 2: CC名字, cell 3: 学生姓名, cell 4: 学生ID

弹窗结构

el-dialog__wrapper > el-tabs > el-tabs__item: 跟进(0), 课程(1), 电话(2), 测网(3), 合同(4)

每行3个按钮: 听录音、下载录音、设为有效

JavaScript定位关键点

目标CSS选择器/方法
---------------------
学生姓名按钮tr:nth-child(n) td:nth-child(4) .el-button--text
电话标签.el-tabs__item:nth-child(3)
听录音按钮tr:nth-child(n) .el-button--text
小喇叭图标.icon-shengyin
录音URLaudio元素src / 下载按钮href

故障排除

CRM操作

问题解决方案
---------------
browser_evaluate返回null检查preload脚本;刷新页面后重试
学生姓名snapshot不可见使用JavaScript直接操作,不要依赖snapshot
弹窗未出现等待2秒后检查;确认点击的是正确元素
录音未播放检查audio元素src是否为空
cascader遮挡点击弹窗关闭按钮会自动关闭cascader
CRM页面改版/选择器失效使用browser_snapshot重新获取页面结构,对比现有选择器,动态适配新的CSS选择器
日期设值后页面数据空白使用箭头刷新法:点击右箭头前进一天→点击左箭头回到目标日期,触发Vue响应式刷新
只获取到第一页数据滚动到底部检查分页组件,遍历所有页获取完整数据;注意筛选可见且非disabled的next按钮

语音分析

问题解决方案
---------------
ASR转录失败检查录音URL是否过期(OSS签名7天有效);检查网络
质检分析返回404确认使用 /compatible-mode/v1/ 端点
API Key无效确认使用DashScope API Key(sk-开头),非老版AccessKey
粤语识别不准确认language_hints包含yue
转录乱码/识别率低尝试单独使用 language_hints: [yue] 或 [zh] 重试

通用操作原则(学员列表 & 录音场景均适用)

原则1:日期筛选自我修复(箭头刷新法)

CRM的日期选择器使用Vue自定义组件,原生value setter无法触发Vue响应式更新。设值后页面数据可能为空白。

修复流程:

  1. 通过原生setter或Vue emit设置目标日期值
  2. 等待1-2秒检查页面数据是否加载
  3. 如果数据为空白,执行箭头刷新:
    • 点击右箭头(i.el-icon-arrow-right,位置约 y=131)前进一天
    • 等待页面响应
    • 再点击左箭头(i.el-icon-arrow-left,位置约 y=131)回到目标日期
    • 页面会触发Vue响应式刷新,加载数据
  4. 再次检查数据是否正常显示
  5. 如果仍为空,重复步骤3最多2次

Playwright实现示例:

# 日期设值后检查是否空白
await page.wait_for_timeout(1500)
row_count = await page.locator('.el-table__body-wrapper .el-table__row').count()
if row_count == 0:
    # 箭头刷新法:右→左触发Vue刷新
    await page.locator('i.el-icon-arrow-right').first.click()
    await page.wait_for_timeout(1000)
    await page.locator('i.el-icon-arrow-left').first.click()
    await page.wait_for_timeout(2000)
`
**browser_evaluate JS版本:**

// 箭头刷新法 - JS版本

document.querySelector('i.el-icon-arrow-right').click();

// 等待1秒后点击左箭头回到目标日期

setTimeout(function() {

document.querySelector('i.el-icon-arrow-left').click();

}, 1000);

// 再等待2秒让数据加载


// 翻页检查 - JS版本

var totalText = document.querySelector('.el-pagination__total').textContent;

var totalPages = parseInt(totalText.match(/共 (\d+) 页/)[1]);

var nextPageBtns = document.querySelectorAll('.btn-next');

// 筛选可见且非disabled的按钮

for (var i = 0; i < nextPageBtns.length; i++) {

var btn = nextPageBtns[i];

if (!btn.disabled && btn.offsetParent !== null) {

btn.click();

break;

}

}


### 原则2:数据全面性检查(翻页完整性)

CRM列表页面默认每页仅显示10条数据,实际数据可能有数十甚至上百条。**必须翻页获取全部数据,严禁只取第一页。**

**操作流程:**
1. 获取第一页数据后,滚动到页面底部检查分页组件
2. 读取分页信息:总条数、总页数、当前页码(`.el-pagination__total`等)
3. 如果总页数 > 1,逐页翻页获取所有数据
4. **翻页注意事项:**
   - 页面可能存在多个`.btn-next`按钮(主分页 + 弹窗内分页),必须筛选**可见且非disabled**的按钮
   - 每次翻页后等待2秒让数据加载完成
   - 翻页前滚动到底部确保分页组件可见
   - 获取的数据按唯一标识(如学员ID/录音ID)去重

**Playwright翻页实现示例:**

all_data = []

for pg in range(1, max_pages + 1):

if pg > 1:

await page.evaluate("window.scrollTo(0, document.body.scrollHeight)")

await page.wait_for_timeout(500)

# 找到可见且非disabled的next按钮

next_btns = page.locator('.el-pagination button.btn-next')

for idx in range(await next_btns.count()):

btn = next_btns.nth(idx)

if not await btn.is_disabled():

box = await btn.bounding_box()

if box and box['y'] > 0:

await btn.click()

break

await page.wait_for_timeout(2000)

# 提取当前页数据...

# 按唯一ID去重


## 注意事项

1. browser_evaluate是核心:Vue.js动态渲染的内容只有通过JavaScript才能可靠操作
2. URL参数控制筛选:不同团队/筛选条件通过admin_group_list和main_type控制
3. 等待加载:每次点击后等待1-2秒让Vue完成渲染
4. 录音URL有时效:OSS签名URL有效期约7天
5. API Key区分:DashScope API Key(sk-开头)用于ASR和质检,老版AccessKey不适用
6. 并行限流:批量分析时建议max_workers=3,避免API限流
7. 粤语支持:ASR需设置language_hints包含yue才能识别粤语
8. 检查点必停:到达CP1/CP2/CP3时必须等待用户确认,不可自动跳过
9. **日期筛选必须验证**:设值后检查数据是否加载,空白时立即使用箭头刷新法修复
10. **翻页必须完整**:任何列表操作(学员列表/通话记录/录音列表)都必须检查分页并获取全部数据,不可只取首页

## 版本历史

| 日期 | 版本 | 内容 |
|------|------|------|
| 2026-05-08 | 1.0 | CRM录音调取技能(团队筛选+学生定位+录音播放) |
| 2026-05-09 | 2.0 | 新增语音分析能力(ASR转录+AI质检+批量报告) |
| 2026-05-09 | 2.1 | 优化description触发词,解决AI无法识别调用问题 |
| 2026-05-11 | 2.2 | 全面优化:添加用户交互入口、检查点设计、Step5代码补全、语言自动检测、CRM改版fallback、资源路径具体化 |
| 2026-05-11 | 2.3 | 新增通用操作原则:日期筛选箭头刷新法(自我修复空白问题)+ 数据全面性翻页检查(学员列表&录音场景均适用) |

版本历史

共 1 个版本

  • v2.3.0 Initial release 当前
    2026-05-11 15:45 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

business-ops

Calendar

ndcccccc
日历管理与日程安排。创建事件、管理会议,并实现多日历平台同步。
★ 7 📥 23,367
business-ops

Stripe

byungkyu
Stripe API 集成,支持托管 OAuth,实现对客户、订阅、发票、产品、价格和支付的可写金融集成。
★ 27 📥 26,243
business-ops

Salesforce

byungkyu
Salesforce CRM API 集成,支持托管 OAuth。仅在需要 Salesforce CRM 管理时安装。以最窄的 Salesforce 权限进行连接。
★ 8 📥 22,301