企微通讯录接口不提供操作审计,无法记录「谁」做的变更,此处记录的是「变动内容 + 中台探测到的时间」。组织同步每 3 小时执行一次,因此探测时间会略晚于企微侧实际操作时间。
AI 中心天润坐席体检
AI 中心(547)下全部账号与天润侧账号的比对结果。名称与天润唯一一致且未绑坐席的,可一键补绑;同名多个的(如"腾讯投放助手"×2、"鹅厂亮哥"×11)需人工选择对应坐席 ID。
天润侧该名称下存在多个坐席账号,请确认哪个属于该员工:
从天润侧全部账号中选择该员工对应的坐席 ID(已绑定的不可选):
企微通讯录接口不提供操作审计,无法记录「谁」做的变更,此处记录的是「变动内容 + 中台探测到的时间」。
离职判定为保守策略:只有本轮同步中「全部部门的成员列表都拉取成功」才会做离职对账,任一步骤失败则本轮跳过(宁可漏判,也不误标记在职员工)。
{{ logPanel.content || '暂无日志' }}
时间:{{auditDetailRow.timestamp}}
调用人:{{auditDetailRow.username || '(未登录)'}}
请求:
IP:{{auditDetailRow.ip}}
状态:{{auditDetailRow.status_code}} ({{auditDetailRow.response_time_ms}}ms)
{{formatAuditJson(auditDetailRow.query_params) || '(无)'}}
{{formatAuditJson(auditDetailRow.response_body) || '(无)'}}
首次任务需人工确认,确认后同规则自动直发。
规则:{{ amTaskConfirmDialog.detail.rule_name_snap }}
预计命中人数:{{ amTaskConfirmDialog.detail.total_targets }} 人,共 {{ amTaskConfirmDialog.detail.total_messages }} 条消息
消息序列:
批量导入公司主体,查询企业联系方式
供外部系统对接。账号密码/密钥请联系 bookazhang。
基础地址 https://relay.zhixiao.qq.com/qiwei | 鉴权 Authorization: Bearer <token>
/api/auth/login登录获取TokenToken有效期24h,过期需重新获取。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| username | string | 是 | 联系 bookazhang 获取 |
| password | string | 是 | 联系 bookazhang 获取 |
响应字段
| 字段 | 说明 |
|---|---|
| access_token | JWT Token (Bearer方式携带) |
| token_type | 固定 bearer |
| username | 登录用户名 |
| role | 角色: admin/viewer |
/api/qiwei/customers/lookup客户快速查询(推荐高频)单条SQL,38ms~500ms极速响应。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| keyword | string | 否 | 客户姓名或external_userid(模糊匹配) |
| unionid | string | 否 | 微信UnionID(精准匹配,优先级高于keyword) |
| name | string | 否 | 客户昵称(精准完全匹配,最高优先级) |
⚠️ keyword、unionid、name 至少传一个,优先级: name > unionid > keyword
响应字段 (13个)
| 字段 | 说明 |
|---|---|
| found | 是否找到(bool) |
| external_userid | 企微客户ID |
| name | 昵称 |
| unionid | 微信UnionID |
| gender | 0未知/1男/2女 |
| first_add_time | 首次添加时间 |
| last_add_time | 最近添加时间 |
| is_readd | 是否二次添加 |
| state | 渠道码state |
| scene_desc | 场景描述 |
| industry | 行业 |
| remark | 备注 |
| welcome_content | 欢迎语全文 |
/api/qiwei/customers/list客户列表(分页)| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| keyword | string | 否 | 姓名/ID模糊搜索 |
| follow_user | string | 否 | 跟进员工UserID |
| start_date | string | 否 | 添加起始YYYY-MM-DD |
| end_date | string | 否 | 添加截止YYYY-MM-DD |
| page | int | 否 | 页码(默认1) |
| page_size | int | 否 | 每页条数(默认20,最大200) |
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
| total | int | 总数 |
| items[].external_userid | string | 企微客户唯一ID |
| items[].name | string | 客户昵称 |
| items[].type | int | 1=微信 2=企微 |
| items[].corp_name | string | 企业名称 |
| items[].first_add_user | string | 归属员工 |
| items[].first_add_time | datetime | 首次添加时间 |
| items[].state | string | 渠道来源state |
| items[].scene_desc | string | 场景描述 |
| items[].remark | string | 备注 |
/api/qiwei/customers/detail/{external_userid}客户详情路径参数 external_userid 为企微客户唯一ID。
响应字段
| 字段 | 说明 |
|---|---|
| external_userid | 企微客户唯一ID |
| name | 客户昵称 |
| avatar | 头像URL |
| type | 1=微信 2=企微 |
| gender | 性别 0未知 1男 2女 |
| corp_name | 企业名称 |
| first_add_user | 首次添加的员工 |
| first_add_time | 首次添加时间 |
| state | 渠道来源state |
| scene_desc | 场景描述 |
| follow_users[] | 跟进员工列表(含标签) |
/api/onetime/qrcode生成一次性码为指定用户生成专属一人一码(有额度限制)。若该用户已有活跃码则复用。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| source_system | string | 是 | 来源系统标识(如tianrun) |
| user_id | string | 是 | 外部用户唯一ID |
| user_name | string | 否 | 用户名 |
| ttl_minutes | int | 否 | 有效期分钟数(默认10,最大60) |
| scene_desc | string | 否 | 场景描述 |
| industry | string | 否 | 行业 |
| remark | string | 否 | 备注 |
| employee_userids | string[] | 否 | 指定员工(默认用系统配置) |
响应示例
{
"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
}/api/onetime/bindinfo查询绑定结果参数: source_system(必填), user_id(必填)。查询该用户最近一次性码是否已绑定客户。
响应字段
| 字段 | 说明 |
|---|---|
| bound | 是否已绑定(bool) |
| external_userid | 绑定的企微客户ID |
| bound_at | 绑定时间 |
| state | 对应渠道码state |
/api/onetime/status查询码状态参数: source_system(必填), user_id(必填)。查询用户当前是否有活跃未使用的码。
响应字段
| 字段 | 说明 |
|---|---|
| has_active_code | 是否有活跃码(bool) |
| state | 码state标识 |
| qr_code | 二维码URL |
| expires_at | 过期时间 |
/api/onetime/list一次性码列表参数: status(pending/used/expired/force_expired), source_system, keyword, page, page_size(最大200)。
响应说明
| 字段 | 类型 | 说明 |
|---|---|---|
| total | int | 总数 |
| items[].id | int | 记录ID |
| items[].source_system | string | 来源系统 |
| items[].source_user_id | string | 外部用户ID |
| items[].source_user_name | string | 用户名 |
| items[].state | string | 渠道码state |
| items[].status | string | pending/used/expired/force_expired |
| items[].external_userid | string | 绑定的企微客户ID |
| items[].created_at | datetime | 创建时间 |
| items[].expired_at | datetime | 过期时间 |
| items[].used_at | datetime | 使用时间 |
/api/onetime/admin/fix-binding修复绑定管理员修复绑定关系。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| source_system | string | 是 | 来源系统 |
| source_user_id | string | 是 | 外部用户ID |
| action | string | 是 | unbind(解绑)/rebind(重绑)/force_bind(强制绑定) |
| new_external_userid | string | rebind/force时必填 | 新客户ID |
| reason | string | 否 | 操作原因(记录日志) |
/api/onetime/admin/cleanup清理过期码无需参数。批量清理已过期码。
/callback/customer二次加友(天润)已停用HMAC-SHA1签名。配置联系bookazhang。
/api/qiwei/customers/bind_tianrun绑定天润 UserID将天润系统的 UserID 绑定到对应的企微客户记录上。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| external_userid | string | 是 | 企微外部联系人ID |
| tianrun_userid | string | 是 | 天润系统 UserID |
响应示例
{"ok": true, "message": "已绑定: 张三 <- TR_12345", "customer_name": "张三"}错误码: 400(参数为空) / 404(客户不存在)
/api/qiwei/customers/by_tianrun通过天润ID查客户通过天润 UserID 反查对应的企微客户信息。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| tianrun_userid | string | 是 | 天润系统 UserID |
响应字段
| 字段 | 说明 |
|---|---|
| found | 是否找到(bool) |
| external_userid | 企微客户ID |
| name | 客户昵称 |
| tianrun_userid | 天润UserID |
| unionid | 微信UnionID |
| first_add_time | 首次添加时间 |
勾选启用同步的字段将参与定时数据拉取;勾选展示的字段将在客户详情弹窗中显示;勾选筛选的字段可在客户列表中作为筛选条件。
{{ simCurrentUid }}
{{ simResp.uid }}原始JSON
{{ simResp.raw }}✅ 示例:「开户群」= 群名含「开户对接群」的天润群;查询 tianrun_groups 资源,filters 传 group_name=开户(子串匹配),写"开户群"三个字会 0 命中。
❌ 反例:只写名词解释、没有查询做法,Agent 看了还是不会用。
保存时自动检查:词条名唯一、30 字内;解释 20~500 字;无查询动作词会提示补充(不拦截)。
{UID}_诊断报告.png → 广告诊断报告图{UID}_素材拆解.png → 素材拆解图