自动化规则
本指南说明如何创建、管理和排查自动化规则。概念模型(触发器、条件、动作)请参阅概览。创建规则
- 进入
Settings → Automation。 - 点击 新建规则。
- 填写有描述性的名称(例如“把 WhatsApp 线索分配给商务团队”)。
- 从列表中选择触发器。
- (可选)添加条件,限定规则何时触发。
- 添加一个或多个动作。
- 启用规则。
命名建议
- 以主要动作的动词开头(
分配…、移动…、打标签…)。 - 带上上下文(渠道、团队、阶段),让其他坐席不必打开详情就能理解用途。
- 避免“规则 1”“自动”这类笼统名称——规则积累到几十条时,你只能靠搜索找它们。
条件与消息模板
需要动态比较时,条件可以使用模板变量系统。自v1.0.0-rc3(WTO-1146)起,变量新增了以下字段:
label、source、example、position、component
label.title 按具体标签过滤,而不是用原始 UUID。
带前后值的 attribute_changed 运算符
如果只希望在特定属性变更时触发(例如“状态从 pending 变为 qualified”),请使用 attribute_changed 运算符,并显式选择变更前和变更后的值。
带动态载荷的动作
send_template
用于发送可动态填充变量的消息模板。系统会对载荷执行 deep_stringify_keys,因此无论键是字符串还是符号都能正常调用。
send_canned_response
直接发送保存在 Settings → Canned Responses 中的快捷回复。载荷支持用对话数据替换变量。
move_to_pipeline(rc3)
把管道项目移动到另一条管道,同时保留项目的 id。适合“若 Leads 管道中新增了 qualified 标签,则移动到 Sales 管道”这类规则。
该动作会自动跳过same-pipeline校验。不要与move_to_stage混淆,后者是在同一管道内移动。
apply_label
自 v1.0.0-rc3 起,该动作改为标签选择器,不再使用自由文本输入。打标签前会先把 UUID 解析为标签名,标签被重命名时也有兜底处理。
日志面板(rc3)
现在每次规则执行都会在Automation → Logs 面板生成记录。你可以看到:
- 规则的触发时间。
- 触发它的对话或项目。
- 参与判断的条件——哪些通过、哪些未通过。
- 执行的动作——成功或出错。
- 暴露出的错误——包括宏 Webhook 失败(此前是静默的,参见 WTO-1041)。
自动清理
旧日志由定期运行的清理任务删除,无需手工处理。排查规则未触发
规则看起来没生效时,可以按以下顺序排查:- 检查是否已启用。 停用的规则不会报错,只是不执行。
- 确认触发器。
conversation_updated覆盖多种情况,而attribute_changed只针对特定变更。 - 查看执行日志。 在日志面板中按该规则筛选。如果显示“无匹配”,说明条件把它过滤掉了。
- 标签条件。
labels条件使用EXISTS子查询(独立且 NULL 安全),并在对话或联系人上匹配标签。如果你只想匹配对话,需再加一个条件收窄范围。 - 去重。 对
pipeline_stage_updated存在 5 秒窗口——同一(rule, pipeline_item, stage)的两次事件在短窗口内只执行一次。
防循环
当move_to_stage 规则触发的 pipeline_stage_updated 事件可能递归触发同一条规则时,系统会把本次执行标记为 Current.executed_by = :stage_automation 并忽略重入,从设计上避免死循环。