规则引擎文档
创建 IF/THEN 规则来自动回复、路由对话并自定义聊天行为。
规则的工作原理
规则让您完全控制访客发送消息时发生的事情。每条规则在每条访客消息到达时被评估,在 AI 自动回复有机会响应之前。
- 每条规则有条件(IF)和动作(THEN)。
- 匹配模式决定条件如何组合:ALL 条件必须匹配(AND 逻辑)或 ANY 条件匹配即可(OR 逻辑)。
- 规则按优先级顺序执行 — 数字越小优先级越高(先执行)。
- 匹配即停止 — 启用后,此规则触发后不再检查后续规则。
- 规则可以抑制 AI 自动回复(例如
REPLY_TEXT代替 AI 处理回复)。
条件参考
条件定义规则何时触发。您可以使用 ALL(AND)或 ANY(OR)匹配模式组合多个条件。
MESSAGE_CONTAINS
检查访客的消息是否包含特定单词或短语。
| 参数 | 说明 |
|---|---|
value | 在消息中搜索的文本 |
caseSensitive | true / false — 匹配是否区分大小写 |
示例:"消息包含 pricing" 匹配 "What's your pricing?"
MESSAGE_MATCHES_REGEX
将访客的消息与正则表达式进行匹配。
| 参数 | 说明 |
|---|---|
pattern | 包含分隔符的正则表达式,例如 /order\s*#?\d+/i |
示例:/\b(refund|return|cancel)\b/i 匹配任何退款相关的消息
提示:使用 regex101.com 在添加前测试您的正则表达式。
VISITOR_LANGUAGE
检查访客的检测语言。
| 参数 | 说明 |
|---|---|
operator | equals、not_equals 或 in |
value | 语言代码,如 en、pl、de |
示例:访客语言等于 pl → 路由到波兰语客服
OPERATOR_ONLINE
检查团队中是否有客服当前在线。
| 参数 | 说明 |
|---|---|
value | true = 至少一位客服在线,false = 所有客服离线 |
示例:客服在线 = false → 发送"我们当前不在线"消息
SESSION_VARIABLE
检查对话上存储的自定义变量(由之前的规则设置)。
| 参数 | 说明 |
|---|---|
key | 要检查的变量名 |
operator | equals、not_equals、exists 或 not_exists |
value | 期望值(exists / not_exists 不需要) |
示例:会话变量 lead_type 等于 demo → 分配给销售团队
动作参考
动作定义规则条件满足后执行什么操作。一条规则可以有多个动作。
REPLY_TEXT
向访客发送自动文本回复。
| 参数 | 说明 |
|---|---|
text | 发送给访客的消息 |
注意:抑制 AI 自动回复 — 由规则处理回复。
示例:"我们的团队已离线。我们将在工作时间内回复您。"
REPLY_AI
明确告知系统对此消息使用 AI 自动回复。
注意:与其他动作组合使用 — 例如,设置变量同时让 AI 回复。
SET_VARIABLE
在对话上存储键值对,供其他规则后续使用。
| 参数 | 说明 |
|---|---|
key | 变量名 |
value | 变量值 |
注意:不会抑制 AI — 变量设置后 AI 仍可回复。
示例:设置 interest = enterprise 用于后续跟进
ASSIGN_TO_OPERATOR
将对话分配给团队中的特定客服。
| 参数 | 说明 |
|---|---|
operatorId | 从团队成员中选择 |
注意:隐含抑制 AI — 已分配的对话不会获得 AI 回复。
示例:将 VIP 客户路由给高级支持客服
NOTIFY_OPERATORS
向所有在线客服发送带声音通知的实时告警。
| 参数 | 说明 |
|---|---|
message | 向客服显示的告警消息 |
注意:不会抑制 AI — 告警和 AI 回复同时进行。
示例:"紧急:访客需要立即帮助!"
SEND_EMAIL
发送包含对话上下文的邮件。适用于升级处理或 CRM 集成。
| 参数 | 说明 |
|---|---|
to | 收件人邮箱地址 |
subject | 邮件主题 |
body | 邮件正文(可选 — 对话上下文会自动附加) |
注意:不会抑制 AI。
CALL_API
调用外部 API endpoint 并将响应存储为会话变量。需要先配置 API 连接。
| 参数 | 说明 |
|---|---|
endpointId | 从已配置的 API endpoint 中选择 |
注意:不会抑制 AI — 与 REPLY_AI 组合使用,让 AI 利用获取的数据。详见 API 连接文档。
示例:调用订单跟踪 API → 将状态存入会话 → AI 用真实订单数据回复
实用示例
可直接使用的规则方案,您可以根据自己的需求调整。
1. 自动回答价格问题
通过静态回复回答常见问题,节省 AI token。
IF (ANY match): MESSAGE_CONTAINS price, MESSAGE_CONTAINS cost, MESSAGE_CONTAINS pricing
THEN: REPLY_TEXT: "Our plans start at €19/month. See full pricing at enuchat.com/pricing"
匹配模式:ANY · 匹配即停止:是
2. 按语言路由访客
将波兰语访客直接发送给波兰语客服。
IF (ALL match): VISITOR_LANGUAGE equals pl
THEN: ASSIGN_TO_OPERATOR → 波兰语客服
匹配模式:ALL · 匹配即停止:是
3. 下班时间问候
在无人在线时设定预期。
IF (ALL match): OPERATOR_ONLINE = false
THEN: REPLY_TEXT: "Thanks for reaching out! Our team is currently offline. AI will try to help, but we'll follow up during business hours."
匹配模式:ALL · 匹配即停止:否(让 AI 同时回复)
4. 标记并路由演示请求
两条规则通过会话变量协同工作。
规则 1 — IF (ALL match): MESSAGE_CONTAINS demo
规则 1 — THEN: SET_VARIABLE lead_type = demo_request。匹配即停止:否(AI 回复第一条消息)
规则 2 — IF (ALL match): SESSION_VARIABLE lead_type equals demo_request
规则 2 — THEN: ASSIGN_TO_OPERATOR → 销售团队。匹配即停止:是
第一条消息设置标签并由 AI 回复。同一访客的第二条消息路由到销售团队。
5. 用正则检测订单号
自动将订单相关查询路由给客服。
IF (ALL match): MESSAGE_MATCHES_REGEX /\b(order|tracking)\s*#?\s*\d{'{'}4,}/i
THEN: ASSIGN_TO_OPERATOR → 支持客服, REPLY_TEXT: "I see you have an order question. Let me connect you with our support team."
匹配模式:ALL · 匹配即停止:是
6. 组合条件(AND 逻辑)
仅在多个条件全部为真的极特定场景下触发。
IF (ALL match): VISITOR_LANGUAGE equals en, MESSAGE_CONTAINS urgent
THEN: ASSIGN_TO_OPERATOR → 高级客服
匹配模式:ALL(两者都必须匹配)· 匹配即停止:是
技巧与最佳实践
- 顺序很重要:优先级数字越小的规则先执行。将最重要的规则放在最前面。
- 使用"匹配即停止"防止同一条消息触发多条规则。
- 上线前测试 — 使用操作面板中的测试面板。
- REPLY_TEXT 消息保持简洁 — 访客期望的是对话,而不是长文。
- 使用 SESSION_VARIABLE 构建多步骤流程 — 在第一条消息上标记对话,之后再根据标记执行操作。
- 正则提示:始终使用大小写不敏感标志
/i,并在 regex101.com 测试您的正则表达式。 - 少即是多:10–15 条精心设计的规则胜过 50 条相互重叠的规则。
- 规则在 AI 之前执行 — 如果规则处理了消息,AI 不会回复(为您节省 token)。