跳转到主要内容

自动化规则

本指南说明如何创建、管理和排查自动化规则。概念模型(触发器、条件、动作)请参阅概览。

创建规则

  1. 进入 Settings → Automation。
  2. 点击 新建规则。
  3. 填写有描述性的名称(例如“把 WhatsApp 线索分配给商务团队”)。
  4. 从列表中选择触发器。
  5. (可选)添加条件,限定规则何时触发。
  6. 添加一个或多个动作。
  7. 启用规则。

命名建议

  • 以主要动作的动词开头(分配…、移动…、打标签…)。
  • 带上上下文(渠道、团队、阶段),让其他坐席不必打开详情就能理解用途。
  • 避免“规则 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)。

自动清理

旧日志由定期运行的清理任务删除,无需手工处理。

排查规则未触发

规则看起来没生效时,可以按以下顺序排查:
  1. 检查是否已启用。 停用的规则不会报错,只是不执行。
  2. 确认触发器。 conversation_updated 覆盖多种情况,而 attribute_changed 只针对特定变更。
  3. 查看执行日志。 在日志面板中按该规则筛选。如果显示“无匹配”,说明条件把它过滤掉了。
  4. 标签条件。 labels 条件使用 EXISTS 子查询(独立且 NULL 安全),并在对话或联系人上匹配标签。如果你只想匹配对话,需再加一个条件收窄范围。
  5. 去重。 对 pipeline_stage_updated 存在 5 秒窗口——同一 (rule, pipeline_item, stage) 的两次事件在短窗口内只执行一次。

防循环

当 move_to_stage 规则触发的 pipeline_stage_updated 事件可能递归触发同一条规则时,系统会把本次执行标记为 Current.executed_by = :stage_automation 并忽略重入,从设计上避免死循环。

最后说明

自动化规则是把 CRM 运营行为固化为配置的声明式手段。涉及对话式 AI 的复杂流程,可以把自动化规则与智能体组合使用——规则负责路由,智能体负责对话。