搜「企业微信API 发送消息」,两件事经常被搜到一起:

  • 内部群推通知
  • 客户群发运营消息、客服回复

前者官方群机器人就能做。后者才是销售、客服、SCRM 真正要的。

先说结论

群机器人解决不了客户群发消息。限制就这几条:

  • 只支持内部群,客户群没有添加入口
  • 只能推,不能以成员身份回客户
  • 不能按群做拉人、踢人、改公告
  • 全员禁言时,机器人消息可能发不出去

所以:群机器人 ≠ 客户群发消息 API

要发到指定客户群,用已在群内的账号发,toId 填该群 roomId

需求 官方群发 官方机器人 账号级接口
发到客户群 可以 不可以 可以
系统立刻发出 不行,要员工确认 仅内部群 可以
指定某一个群 能选,流程重 外部群做不到 toIdroomId
顺带做群管理 基本没有 没有 可继续接群模块

参数和返回值以这份文档为准:API文档

最小闭环

账号在控制台扫码登录,拿到 guid。群 ID 不要靠群名临时猜,先列群、核对名称,再把 roomId 存进业务库。

QiWe API 发文本时不区分内部群还是客户群,对的是 roomId 就行。

import requests

url = "http://manager.qiweapi.com/qiwe/api/qw/doApi"
headers = {
    "X-QIWEI-TOKEN": "YOUR_API_KEY",
    "Content-Type": "application/json",
}
payload = {
    "method": "/msg/sendText",
    "params": {
        "guid": "你的设备ID",
        "toId": "客户群的roomId",
        "content": "今天下午 3 点对账,请群内同事提前准备单据。",
        "isNoNeedRead": True,
    },
}

resp = requests.post(url, json=payload, headers=headers, timeout=30)
result = resp.json()
print(result)

if result.get("code") != 0 or not result.get("data", {}).get("isSendSuccess"):
    raise RuntimeError(result)

成功时 code 为 0,isSendSuccess 为 1,目标客户群里能看到这条文本。

找群 ID 的顺序:

  1. 扫码登录,拿到 guid
  2. 调群模块,列出该账号所在的群
  3. 用群名核对后保存 roomId
  4. 业务里把「客户 / 项目 / 店铺」映射到 roomId
  5. 事件触发时只给对应群发,不要广播

群名会改,roomId 相对稳定。

联调验收

  • 先发给自己的 userId,确认通道通
  • 再换成测试群 roomId,看消息是否出现在该群,而不是私聊
  • toId 填成人 ID,消息会跑到私聊,这是最常见的「群里没收到」
  • 每个客户群单独映射,禁止一次打全部群

再扩一步

工单状态变更可以推到对应客户群。客户在群里提问,要配 Webhook 才能回。需要人工时,停掉自动回复,仍由同一账号继续发。

模块总览也可以看 QiWe API 官网

总结

企业微信要发到客户群,先确认你接的不是官方群机器人。指定群、立刻发,按 guid + roomId 走账号级发送即可。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐