记录一动,钉钉群里就响:给零代码自动化装上「发送通知」节点

每个业务系统都会遇到同一个尴尬:数据是变了,但没人知道。
采购入库了,库存管理员不知道要去核对;日管控该填了,没人提醒;一条异常记录躺在表单里,等第二天早上才被人翻出来。我做的这个零代码平台(ZeroCode)里,表单、数据表、权限都是现成的,唯独"数据变了之后自动发生点什么"这件事,之前一直缺一块。
这一篇就聊聊我把这块补上的全过程:一个可视化自动化工作流(基于 LiteFlow v2),以及最新加进去的「发送通知」节点——让钉钉、企业微信、飞书的群机器人,在记录变化的那一刻,自动把消息推进群里。
一、先看全景:自动化能做什么

整套自动化围绕一条链路:触发器 → 条件分支 → 动作执行。
触发器盯着一份数据表,支持五种时机:记录创建时、记录更新时、字段变更时、记录删除时、手动触发。还可以配 and / or 过滤条件——比如"金额大于 1 万且状态为待审批"才触发,而不是什么变动都响。
条件分支让流程长出判断力。每个分支有优先级,从上往下依次匹配,命中即走,匹配不到就走默认分支兜底。
动作目前有五种:更新记录、创建记录、发送邮件、调用 Webhook,以及这次新加的发送通知。所有动作的标题、内容、字段值都支持 {{表达式}} 插值,可以直接引用触发记录里的任何字段,甚至触发表子表的每一行。
二、一个真实的例子:入库验收库存同步
光说抽象的没意思,看一个正在生产环境跑着的流程:

采购入库单创建时,流程启动:
- 已有库存记录分支(优先级 1):如果
[库存总账]里这条商品存在,走「增量更新库存」,把入库数量加到现有库存上; - 默认分支:商品第一次入库,总账里还没有它,走「新建库存记录」建一条。
注意左边分支的描述——“增量更新 3 个字段赋值(目标:跨表条件命中的记录)”。这是零代码自动化里最实用的能力:动作能跨表、能按条件、能用表达式算值,而不是傻乎乎地整条覆盖。
这个画布是所见即所得的:上方触发器卡片,下方垂直流程,点节点上的 “+” 就能插入动作或条件分支。整个画布的布局是 DingTalk 风格的竖版结构,保存在 design_json 里无损回显,同时拍平成节点表供引擎执行。
三、缺的那块:群通知
上面这套流程跑起来之后,数据确实自动同步了——但"同步完成"这个事件本身,还是没 anyone knows。运维群、业务群才是值班同学真正盯着的地方。
所以有了这次的「发送通知」节点。设计器里点 “+”,动作菜单里多了个橙色图标:

节点的配置刻意做得极简:选一个通知渠道,填标题和内容,完事。

标题和内容都是模板,右侧「插入变量」可以把触发记录的字段直接塞进去。比如:
日管控填写提醒
记录 {{trigger.record._id}} 已更新,请及时填写日管控内容。
执行时这些占位符会被真实数据替换——用户不需要知道什么模板引擎,他只知道"选中,插入,完事"。
四、通知渠道:一次配置,全公司复用
通知渠道不在流程里配,而是抽成了一个独立资源(应用管理 → 工作流自动化 → Webhook 配置 → 「通知渠道」Tab):

支持三类群机器人:
- 钉钉自定义机器人:安全设置推荐「加签」,填 SEC 开头的密钥;
- 企业微信群机器人(官方现在叫"消息推送"):无需签名,保管好 key 即可;
- 飞书自定义机器人:推荐开启「签名校验」。
渠道是全局的:建一次「运维告警群机器人」,几十条自动化流程都能引用它。密钥落库后不再回显(前端拿到的永远是空),避免 secrets 在页面间裸奔。每条渠道自带「测试」按钮,不用等到流程触发才知道配置对不对。

五、它是怎么跑起来的

实现上分四步:
- 设计器画布保存
design_json(无损)并拍平到z_lf_nodes节点表; - 触发时
LfCompiler把节点树编译成 LiteFlow EL 表达式,比如THEN(lfNotify.tag("节点id")),有分支就生成 WHEN/IF 结构; - 扔到独立线程池(
lfExecutor)异步执行,不阻塞记录保存的主事务; lfNotify组件渲染模板变量 → 读渠道配置 → 按平台构建 payload → 同步 POST(15 秒超时)。
六、测试运行:亲眼看见钉钉的回复
设计器顶栏有「测试运行」,选一条记录手动触发一次:

截图里这次运行的状态是 error,错误是 通知渠道投递失败: {"errcode":3000...}——因为我故意用了个假 token。这恰好是最好的证明:请求真的打到了钉钉服务器,钉钉回了"token is not exist"(300005)。换成真实机器人地址,这里就是一条绿色的成功日志。
失败不是静默的:节点日志、实例状态、错误原文都留在执行记录里,排障不用翻服务器日志。
七、写在最后
现在这个平台的自动化,从"数据变了"到"群里收到消息",全程不写一行代码:
- 值班提醒:日管控表 24 小时没更新 → 钉钉群 @相关人(文案里带记录链接);
- 库存预警:入库验收后自动增量更新总账,异常时飞书群告警;
- 审批流转:审批状态变更 → 企业微信群里推一条 markdown 摘要。
接下来还想补几件事:企微 markdown_v2 与 @群成员、通知失败后的自动重试与退避、以及把触发器扩展到定时类。
如果你也在做类似的自动化引擎,或者在给自己的系统接群机器人,欢迎交流。
八、在线体验与私有化部署
在线体验:http://103.236.98.220:28888(登录后进入「应用管理」即可看到本文的自动化设计器与通知渠道)
- 支持私有化部署:提供 Docker 镜像,内网一键拉起,数据不出内网;
- 二次开发:源码级开放(前端 Vue 3 + Element Plus,后端 RuoYi-Vue-Plus / Spring Boot),可自由扩展字段类型与业务逻辑。
docker pull registry.cn-zhangjiakou.aliyuncs.com/xuanyuanke/zerocode:latest
更多推荐





所有评论(0)