{{ menuTitle[activeMenu] }}
📖 接口文档📥 下载任务 {{ username }}
业务驾驶舱 AI 客户转化监测
{{ rpaAutoRefresh ? '自动刷新 ' + rpaCountdown + 's' : '已暂停自动刷新' }} 刷新 导出客户列表
{{ rpaData.map_coverage || 0 }}
AI 服务客户
天润+企微均匹配
{{ f.count }}
{{ f.label }}
阶段 {{ f.value }}
实时转化漏斗(每层累计)
实时跃迁动态
暂无变更记录
{{ (item.changed_at || "").substring(5,16) }}
{{ item.customer_name }}
{{ item.old_label }} {{ item.new_label }}
已展示最近 200 条 · 更多历史数据暂不展示
↑ 回到最新
标签跃迁 24 小时分布
{{ rpaHourTips }}
点击切换
过去 30 天 · 按小时统计各阶段跃迁次数 · 悬停查看详情
各阶段客户总数趋势(每日凌晨同步)
暂无趋势数据
🏢
部门数
{{ formatNum(overview.dept_count) }}
👥
员工数
{{ formatNum(overview.member_count) }}
🤝
客户总数
{{ formatNum(overview.customer_count) }}
本周+{{ overview.this_week_new_customers }}(上周+{{ overview.last_week_new_customers }})
🔗
客户关系
{{ formatNum(overview.relation_count) }}
💬
会话消息
{{ formatNum(overview.message_count) }}
开始记录: {{ overview.chat_archive_start }}
🕒
今日消息
{{ formatNum(overview.today_messages) }}
↑{{ (((overview.today_messages-overview.yesterday_messages)/Math.max(overview.yesterday_messages,1))*100).toFixed(1) }}% vs昨日↓{{ (((overview.yesterday_messages-overview.today_messages)/Math.max(overview.yesterday_messages,1))*100).toFixed(1) }}% vs昨日与昨日持平
🏷️
客户群(活跃)
{{ formatNum(overview.group_chat_count) }}
历史总数 {{ formatNum(overview.group_chat_total) }}
🔖
客户标签
{{ formatNum(overview.tag_count) }}
🏆 员工活跃榜(近7天发言)
反映员工工作繁忙度/客户响应量。条数 = 发出消息数,客户数 = 对话过的独立对象数。
📉 客户新增趋势(近30天)
⚠️ 沉默员工预警(近7天无发言)
在职且名下有客户,但近7天未发送消息。可能疑似离岗/懈怠。
🏗️ 团队活跃度(近7天)
📈 消息量趋势(近30天)
📊 消息类型分布
← 点击左侧部门查看成员
{{ selectedDept.full_path || selectedDept.name }} 部门ID: {{ selectedDept.id }} · 共 {{ deptMembers.length }} 人(提示:本部门为分组节点,员工挂在子部门下,请展开后点击叶子部门)

天润映射管理

+ 添加映射

天润接入号名称 → 企微员工的对应关系。名称一致时自动匹配,不一致时需手动配置。

手机号、邮箱、头像等敏感字段需要企微"通讯录同步"权限才能获取,当前使用应用凭据仅返回基础信息
查询 重置
搜索 重置 导出CSV 管理标签 ({{customerSelection.length}})
查询 重置 导出
共 {{ conversations.total }} 个会话
全部
单聊
群聊
👥
{{ c.last_summary || '—' }}
{{ relTime(c.last_time) }}
暂无会话
💬
选择左侧会话查看完整对话
{{ otDash.active_count }}
当前活跃码
{{ otDash.today_created }}
今日生成
{{ otDash.today_used }}
今日绑定
{{ otDash.today_expired }}
今日过期
{{ otDash.usage_pct }}%
额度 {{ otDash.active_count }}/{{ otDash.quota }}
查询 清理过期码
+ 生成测试码
State: {{ otResultDialog.state }}
有效期至: {{ otResultDialog.expires_at }}
解绑重新扫码强制绑定
{{ tagStats.total_groups }}
标签组
{{ tagStats.total_tags }}
标签数
{{ tagStats.tagged_contact_ways }}
已关联渠道码
{{ tagStats.last_sync || '未同步' }}
最后同步
同步企微标签 + 新建标签组
标签组
{{ g.group_name }} {{ g.tag_count }}编辑删除
暂无标签组,请先同步
{{ selectedTagGroup.group_name }}+ 添加标签
已关联 {{ t.contact_way_count||0 }} 个渠道码
该组暂无标签,点击上方添加
← 请选择左侧标签组
可选,多个标签用逗号分隔
查询
+ 新建活码
客户从此活码加好友,事件回调里 state 字段会带上此值
接口传输用,接口传输的是这个场景值
标记该渠道码对应的行业,查询客户时会返回
标记该渠道码对应的主场景用途,查询客户时会返回
标记该渠道码的测试标签,查询客户时会返回
单人活码(不推荐) 多人活码
单人活码必须填且仅一个;多人活码可填多个
新建模板
通过此渠道码添加的客户将自动打上所选标签
企业 Logo 自定义 Icon
上传 Icon ✓ 已上传
二维码预览
刷新预览
开启后同企业的客户只能加一个员工
+ 新建
保存 取消
{{ logPanel.content || '暂无日志' }}
管理员 普通用户
查询 重置

时间:{{auditDetailRow.timestamp}}

调用人:{{auditDetailRow.username || '(未登录)'}}

请求:{{auditDetailRow.method}} {{auditDetailRow.path}}

IP:{{auditDetailRow.ip}}

状态:{{auditDetailRow.status_code}} ({{auditDetailRow.response_time_ms}}ms)

入参
{{formatAuditJson(auditDetailRow.query_params) || '(无)'}}
出参
{{formatAuditJson(auditDetailRow.response_body) || '(无)'}}
共 {{auditLogs.total}} 条记录
查询
暂无天润标签数据
{{ tag.field_value }} -
最后同步: {{ trTagList[0]?.updated_at || '-' }}
{{ log.field_name }}
{{ log.old_value || '(空)' }} {{ log.new_value || '(空)' }}
来源: {{ log.source === 'callback' ? '实时回调' : '定时同步' }}
暂无变更记录
全部单聊群聊
其他条件跟随当前筛选:
员工: {{chatExportDialog.userids.length}} 人
标签: {{chatExportDialog.tag_names.join(', ')}}
关键词: {{chatExportDialog.keyword}}
无额外筛选
预计 {{ chatExportDialog.estimate.total.toLocaleString() }} 条记录,将生成 {{ chatExportDialog.estimate.files }} 个文件 数据量较大,建议缩小范围
群发规则列表 新建规则
客户群发(1v1) 客户朋友圈 文字 图片 链接卡片
{{ k }}: {{ Array.isArray(v)?v.join(','):v }}
预估命中:{{ rulePreviewCount !== null ? rulePreviewCount+'人' : '—' }} 刷新
未设置筛选条件(将匹配全部客户)从当前筛选导入
手动执行 定时执行 分 时 日 月 周 ~
已选择 {{ customerSelection.length }} 位客户
客户群发(1v1) 客户朋友圈 文字 图片 链接卡片
当前范围:{{ groupDialog.editing.dept_names }}({{ groupDialog.editing.user_count }}人),重新选择将覆盖
获取方式:在群里 @机器人 发消息,机器人回复ChatID
查询 导出 共{{TYC.leadTotal.value}}条
移除
+ 添加电话
移除
+ 添加邮箱
移除
+ 添加网址
{{t}}
+ 添加标签
活跃 归档
查询 导出 共{{TYC.leadTotal.value}}条

批量导入公司主体,查询企业联系方式

手动粘贴文件导入
点击或拖拽文件
{{TYC.fileName.value}}
查询 重试失败 导出Excel 下载模板 清空 共{{TYC.results.value.length}} 成功{{TYC.okCount.value}} 失败{{TYC.failCount.value}}
搜索

供外部系统对接。账号密码/密钥请联系 bookazhang

基础地址 https://relay.zhixiao.qq.com/qiwei | 鉴权 Authorization: Bearer <token>

POST/api/auth/login登录获取Token

Token有效期24h,过期需重新获取。

参数类型必填说明
usernamestring联系 bookazhang 获取
passwordstring联系 bookazhang 获取
响应字段
字段说明
access_tokenJWT Token (Bearer方式携带)
token_type固定 bearer
username登录用户名
role角色: admin/viewer
GET/api/qiwei/customers/lookup客户快速查询(推荐高频)

单条SQL,38ms~500ms极速响应。

参数类型必填说明
keywordstring客户姓名或external_userid(模糊匹配)
unionidstring微信UnionID(精准匹配,优先级高于keyword)
namestring客户昵称(精准完全匹配,最高优先级)

⚠️ keyword、unionid、name 至少传一个,优先级: name > unionid > keyword

响应字段 (13个)
字段说明
found是否找到(bool)
external_userid企微客户ID
name昵称
unionid微信UnionID
gender0未知/1男/2女
first_add_time首次添加时间
last_add_time最近添加时间
is_readd是否二次添加
state渠道码state
scene_desc场景描述
industry行业
remark备注
welcome_content欢迎语全文
GET/api/qiwei/customers/list客户列表(分页)
参数类型必填说明
keywordstring姓名/ID模糊搜索
follow_userstring跟进员工UserID
start_datestring添加起始YYYY-MM-DD
end_datestring添加截止YYYY-MM-DD
pageint页码(默认1)
page_sizeint每页条数(默认20,最大200)
响应字段

字段类型说明
totalint总数
items[].external_useridstring企微客户唯一ID
items[].namestring客户昵称
items[].typeint1=微信 2=企微
items[].corp_namestring企业名称
items[].first_add_userstring归属员工
items[].first_add_timedatetime首次添加时间
items[].statestring渠道来源state
items[].scene_descstring场景描述
items[].remarkstring备注
GET/api/qiwei/customers/detail/{external_userid}客户详情

路径参数 external_userid 为企微客户唯一ID。

响应字段

字段说明
external_userid企微客户唯一ID
name客户昵称
avatar头像URL
type1=微信 2=企微
gender性别 0未知 1男 2女
corp_name企业名称
first_add_user首次添加的员工
first_add_time首次添加时间
state渠道来源state
scene_desc场景描述
follow_users[]跟进员工列表(含标签)

POST/api/onetime/qrcode生成一次性码

为指定用户生成专属一人一码(有额度限制)。若该用户已有活跃码则复用。

参数类型必填说明
source_systemstring来源系统标识(如tianrun)
user_idstring外部用户唯一ID
user_namestring用户名
ttl_minutesint有效期分钟数(默认10,最大60)
scene_descstring场景描述
industrystring行业
remarkstring备注
employee_useridsstring[]指定员工(默认用系统配置)
响应示例
{
  "qr_code": "https://work.weixin.qq.com/...",
  "state": "OT-tianrun-123-20260519",
  "config_id": "abc123",
  "expires_at": "2026-05-19T19:30:00",
  "is_reuse": false
}
GET/api/onetime/bindinfo查询绑定结果

参数: source_system(必填), user_id(必填)。查询该用户最近一次性码是否已绑定客户。

响应字段
字段说明
bound是否已绑定(bool)
external_userid绑定的企微客户ID
bound_at绑定时间
state对应渠道码state

GET/api/onetime/status查询码状态

参数: source_system(必填), user_id(必填)。查询用户当前是否有活跃未使用的码。

响应字段
字段说明
has_active_code是否有活跃码(bool)
state码state标识
qr_code二维码URL
expires_at过期时间

GET/api/onetime/list一次性码列表

参数: status(pending/used/expired/force_expired), source_system, keyword, page, page_size(最大200)。

响应说明

字段类型说明
totalint总数
items[].idint记录ID
items[].source_systemstring来源系统
items[].source_user_idstring外部用户ID
items[].source_user_namestring用户名
items[].statestring渠道码state
items[].statusstringpending/used/expired/force_expired
items[].external_useridstring绑定的企微客户ID
items[].created_atdatetime创建时间
items[].expired_atdatetime过期时间
items[].used_atdatetime使用时间

POST/api/onetime/admin/fix-binding修复绑定

管理员修复绑定关系。

参数类型必填说明
source_systemstring来源系统
source_user_idstring外部用户ID
actionstringunbind(解绑)/rebind(重绑)/force_bind(强制绑定)
new_external_useridstringrebind/force时必填新客户ID
reasonstring操作原因(记录日志)

POST/api/onetime/admin/cleanup清理过期码

无需参数。批量清理已过期码。

回调/callback/customer二次加友(天润)已停用

HMAC-SHA1签名。配置联系bookazhang。

POST/api/qiwei/customers/bind_tianrun绑定天润 UserID

将天润系统的 UserID 绑定到对应的企微客户记录上。

参数类型必填说明
external_useridstring企微外部联系人ID
tianrun_useridstring天润系统 UserID
响应示例
{"ok": true, "message": "已绑定: 张三 <- TR_12345", "customer_name": "张三"}

错误码: 400(参数为空) / 404(客户不存在)

GET/api/qiwei/customers/by_tianrun通过天润ID查客户

通过天润 UserID 反查对应的企微客户信息。

参数类型必填说明
tianrun_useridstring天润系统 UserID
响应字段
字段说明
found是否找到(bool)
external_userid企微客户ID
name客户昵称
tianrun_userid天润UserID
unionid微信UnionID
first_add_time首次添加时间

勾选启用同步的字段将参与定时数据拉取;勾选展示的字段将在客户详情弹窗中显示;勾选筛选的字段可在客户列表中作为筛选条件。

指定AI执行特定标准操作流程,如开户、审核、充值等场景的SOP
客户信息
当前 UserID: {{ simCurrentUid }} 每次请求自动递增
上下文历史 (message_history)
+ 手动添加 共 {{ simCtx.history.length }} 轮 发送成功后自动追加本轮对话到历史
生成的 Context JSON
发送请求
🧪
填写参数后发送请求
响应结果{{ simResp.ok ? simResp.ms+'ms' : 'FAIL' }}
UserID: {{ simResp.uid }}
{{ simResp.answer }}
原始JSON
{{ simResp.raw }}
错误: {{ simResp.err }}
调用历史 ({{ simHistory.length }})
运营诊断
查询 导入Excel 批量传图(zip) 新增
查询
查询
下载模板 → 填写 → 上传分析 → 确认下载模板
点击或拖拽选择 Excel
支持 .xlsx / .xls
{{ diagSelectedFile.name }}{{ (diagSelectedFile.size/1024).toFixed(1) }}KB
移除开始分析
分析中...
{{ diagImportResult.total }}{{ diagImportResult.new_uids }}{{ diagImportResult.existing_uids }}
注意:已有 {{ diagImportResult.existing_uids }} 条选「全部导入」将覆盖,选「仅新增」跳过。
取消仅新增({{ diagImportResult.new_uids }})全部导入({{ diagImportResult.total }})
图片按命名规则打包 zip 上传,自动匹配 UID 入库。
命名规则:
{UID}_诊断报告.png → 广告诊断报告图
{UID}_素材拆解.png → 素材拆解图
支持 png/jpg/webp,UID 必须已在执行表中
拖拽或点击上传 zip
处理中...
{{ diagBatchResult.success }}{{ (diagBatchResult.errors||[]).length }}{{ diagBatchResult.skipped }}
{{ e }}
全部上传成功
关闭
广告诊断
上传图片
素材拆解
上传图片
投放效果
账户UID:{{ diagDetailData.uid }}
投放效果 {{ diagDetailData.send_date }}{{ diagDetailData.daily_cost }}{{ diagDetailData.impressions }}{{ diagDetailData.cost }}{{ diagDetailData.roi }}{{ diagDetailData.ctr }}{{ diagDetailData.cvr }}{{ diagDetailData.conversions }}{{ diagDetailData.ad_count }}{{ diagDetailData.material_count }}{{ diagDetailData.cost_tier }}
📭
暂无下载任务
{{ msgDetail.seq }} {{ msgtypeMap[msgDetail.msgtype] || msgDetail.msgtype }} {{ msgDetail.action }} {{ formatTime(msgDetail.msgtime) }} {{ msgDetail.from_user }} {{ msgDetail.roomid || '(单聊)' }} {{ msgDetail.msgid }}
📝 完整内容
{{ JSON.stringify(msgDetail.raw_parsed || msgDetail.raw_data, null, 2) }}
已选择 {{customerSelection.length}} 个客户 ( {{ customerSelection[0]?.name }} )
当前标签 (并集展示,括号中为拥有该标签的人数)
加载中...
所选客户暂无标签
{{t.tag_name}} ({{t.count}}人)
添加标签
{{t.tag_name}} {{g.group_name}}