name: qiwei-customer-ops
4320 Dashboard 的“客户管理”首先展示真实企微会话沉淀的客户主档:
outputs/messages/agent-workbench.db;qiwei-portrait-tags 保存的画像与标签也回写同一主账,不另建冲突档案;outputs/customers/index.json 是脱敏查询投影,不保存联系人原始 ID、机器人凭据或客户原话。客户主档同时提供三类经营能力:
客户会话产生的内部任务可以从客户主档跳转到智能会话继续处理,但不能把内部任务或画像字段原样发送给客户。
本 skill 只负责客户运营业务动作:
userId/成员列表创建服务群;以上网关动作位于客户主档之后;查看和维护已沉淀画像不要求重新调用网关。
不要在这里重新实现登录、订阅、设备恢复或通用 API 检索流程。遇到未登录、订阅不足、token 缺失时,转用已有工具:
qiwei_login_statusqiwei_login_startqiwei_subscription_statusqiwei_subscribeqiwei_api_searchqiwei_api_docqiwei_api_call业务工具必须符合 mcp/catalog/qiwei-endpoints.json:
/contact/searchContact;/room/createRoom、/room/modifyRoomName、/room/inviteRoomMember、/msg/sendText;/contact/searchContact、/contact/getWxContactList、/room/getRoomList;{ "uid": "...", "method": "...", "params": {...} };Authorization: Bearer <Fmode token>;guid 必须来自已登录设备,不要让用户配置企业微信底层访问凭据。qiwei_login_status。调用 qiwei_batch_add_friends,传入:
{
"guid": "<已登录设备 guid>",
"customers": [
{ "phone": "13800000000", "name": "张三", "greeting": "你好,方便加您企业微信沟通。" }
],
"addToAllowlist": true,
"rateLimitPerMinute": 12
}
也可以传 phones,或传 .xlsx 格式的 filePath 读取 Excel。Excel 至少需要手机号列;旧版 .xls 请先另存为 .xlsx。
addToAllowlist=true,成功后自动加入个人消息白名单并开启待审核监听。批量加好友后,可调用 qiwei_check_friend_status 查看哪些客户已通过、待通过或未找到:
{
"guid": "<已登录设备 guid>",
"phones": ["13800000000", "13900000000"]
}
返回每条手机号的 searchStatus 与 statusText:
already_friend:已是双向好友;already_added_by_other:已被其他人添加;not_added:可发起好友申请;not_found:搜索不到该用户。拿到 externalUserId 或手机号后,调用 qiwei_get_customer_profile:
{
"guid": "<已登录设备 guid>",
"phone": "13800000000"
}
返回联系人搜索结果、外部联系人列表匹配项、群列表,以及本地已保存的画像文件(如有)。
userId。调用 qiwei_auto_create_group:
{
"guid": "<已登录设备 guid>",
"customerUserId": "<客户 userId>",
"supportMemberIds": ["<协作成员 userId>"],
"groupName": "张三服务群",
"welcomeText": "欢迎进群,我们会在这里同步服务进展。"
}
如有多个初始成员,传 memberList 代替 customerUserId。
原 Qiwei 项目中的 Express 路由、SQLite 业务表和本地任务记录没有接管目标包已有运行形态。本迁移保留核心企微动作,并改为 Claude Code MCP 工具:
qiwei_batch_add_friendsqiwei_check_friend_statusqiwei_get_customer_profileqiwei_auto_create_group这样可以复用目标包已有登录、订阅、鉴权、错误分层和 catalog 驱动能力,同时避免改动已经写好的流程。