问题源于事件监听未注册、审批模板未绑定、字段映射缺失或令牌不一致;需依次确认wecom适配器运行与日志、配置字段映射规则、启用自动提交开关并校验令牌一致性、最后通过模拟请求端到端测试。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用ClawBot处理企业微信考勤异常提醒与人事审批联动时,发现消息未触发自动响应或审批单未生成,可能是由于事件监听未注册、审批模板未绑定、字段映射缺失或服务间令牌不一致所致。以下是解决此问题的步骤:
一、确认ClawBot考勤事件监听服务已启用
ClawBot需通过wecom适配器持续接收企业微信推送的checkin_change事件,若监听服务未启动或未加载对应处理器,将无法捕获迟到、缺卡等异常信号。
1、登录ClawBot部署服务器,执行ps aux | grep clawdbot-wecom,确认进程存在且状态为运行中。
2、检查/var/log/clawbot/wecom.log,搜索关键词checkin_change received,验证事件是否成功抵达网关。
3、若无日志输出,执行sudo systemctl restart clawdbot-wecom重启适配器,并观察journalctl -u clawdbot-wecom -n 30 --no-pager中是否存在AES解密失败或token mismatch报错。
二、配置考勤异常到审批单的字段映射规则
ClawBot需将原始考勤消息中的非结构化文本(如“张三今天迟到15分钟”)解析为结构化字段(员工ID、异常类型、发生时间),并映射至预设的人事审批模板中对应字段,否则无法生成有效单据。
1、编辑/etc/clawbot/config.yaml,定位approval_mapping节点。
2、在checkin_alert_fields下添加映射项:employee_name: "姓名"、exception_type: "异常类型"、occurred_at: "发生时间",确保键名与审批表单JSON Schema中field_id完全一致。
3、确认default_approval_template值为已在企业微信管理后台发布的审批模板ID(形如TEMPLATE_8a7f9c2d),且该模板已启用并分配给对应部门。
三、启用审批流自动触发开关并校验网关令牌
ClawBot默认不主动提交审批,须显式开启自动触发策略,并确保clawdbot-gateway与clawdbot-wecom共享同一网关令牌,否则审批请求将被拒绝。
1、在config.yaml中将auto_submit_approval_on_checkin_alert设为true。
2、核对clawdbot-gateway配置文件中gateway_token值,与clawdbot-wecom配置中upstream_token是否均为dev-test-token。
3、修改后执行sudo systemctl reload clawdbot-gateway && sudo systemctl reload clawdbot-wecom,不中断服务即可生效。
四、测试端到端考勤→审批链路
绕过真实打卡行为,直接向ClawBot注入标准格式考勤异常事件,可快速验证从消息接收、字段解析、模板填充到审批提交的全路径是否通畅。
1、构造POST请求体:{"ToUserName":"wxid_abc123","Event":"checkin_change","UserID":"zhangsan","CheckInType":1,"ExceptionType":1,"DateTime":"2026-05-15T08:45:00+08:00"}。
2、使用curl调用http://localhost:8080/api/v1/wecom/callback,Header中包含X-Gateway-Token: dev-test-token。
3、查看企业微信审批后台是否出现新待办事项,其申请人应为zhangsan,事由字段含“迟到”,发生时间与请求体中DateTime一致。


















