跳到主要内容

接入企业微信机器人:拯救大R用户的实时战报系统

· 阅读需 2 分钟
阿狸先森
全栈开发

企业微信机器人图 某 SVIP 用户充值 5 万后卡在终极关卡,反馈 2 小时未处理,次日退款流失——直接损失= 1 个月流水。以下是一个例子哈,当然如果内部搭建了通知服务,可以跳过本章。

⚠️ 接入前:失控的VIP服务流程

环节问题后果
用户反馈埋点分散在客服系统/数据库响应延迟 2h+
问题分配人工查表分配负责人责任人不明确
处理时效依赖员工主动查系统超时率 68%
大R用户无优先处理机制月度流失率 12%

🚀 接入后:实时战报 + 自动化流水线

📊 效果对比:数据说明

接入前接入后变化率
VIP问题响应速度122分钟9分钟⬇️ 92%
大R用户流失率12%4.3%⬇️ 64%
退款申请量37单/月11单/月⬇️ 70%
构建失败处理时效未统计8分钟全新监控

步骤:

  1. 创建企业微信群 → 点击群右上角··· → 添加群机器人58
  2. 自定义机器人名称(如通关预警小助手) → 复制生成的 Webhook URL(形如https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa)
  3. 密钥保护:将该URL存入环境变量,禁止提交到代码仓库(千万保护好这个 webhook地址 ,公开泄露会导致恶意刷垃圾消息)

发送埋点通知

为了方便演示 我拿 NodeJS 写了一个,大个思路是这样,细节还是得借个自己的业务

/**
* Markdown 消息发送函数
* @param {string} url - 企业微信机器人 Webhook 地址
* @param {object} data - 包含用户反馈的信息
*/
wecomWorkService.reportFeedbackByMD = async function (url, data = {}) {
const { userName, userId, money, feedbackContent = '', type } = data;

const typeName = type == 1 ? '游戏建议' : 'BUG';

const content = `实时新增用户反馈,请相关同事注意 😊。\n
>类型: <font color="comment">${typeName}</font>\n
>用户名: <font color="comment">${userName}</font>\n
>ID: <font color="comment">${userId}</font>\n
>充值金额: <font color="warning">${money}</font>\n
>内容: <font color="comment">${feedbackContent}</font>`;

await this.report(url, 'markdown', content);
};

/**
* 基础消息发送函数
* @param {string} url - 企业微信机器人 Webhook 地址
* @param {string} msgtype - 消息类型 ('text' 或 'markdown')
* @param {string} content - 消息内容
*/
wecomService.report = async function (
url,
msgtype = 'text',
content = ''
) {
const payload = {
msgtype,
[msgtype]: {
content,
mentioned_list: ['@all'],
mentioned_mobile_list: ['@all'],
},
};
try {
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(payload),
});

const result = await response.json();

if (result.errcode && result.errcode !== 0) {
throw new Error(
`企业微信API错误: ${result.errcode} - ${result.errmsg}`
);
}
} catch (error) {
console.error('企业微信消息发送失败:', error);
throw error;
}
};

参考

群机器人配置说明