本指南介绍如何在 Discourse 中使用自动化插件设置自动回复。自动回复可以自动回复包含特定关键词的帖子或个人消息。
所需用户级别:管理员
Discourse 中的自动回复功能可以自动回复包含特定关键词或短语的帖子。通过自动化处理常见查询或情况,此功能可帮助版主和管理员将精力集中在更复杂的任务上。
摘要
本指南涵盖以下内容:
- 创建新的自动回复脚本
- 选择并配置触发器
- 设置单词/回答配对
- 启用自动化
创建新脚本
- 导航至您的站点自动化页面:
example.discourse.com/admin/plugins/automation
- 点击
+ Create 创建新脚本
- 选择
Auto Responder(自动回复)选项
- 再次点击
+ Create 继续
选择触发器
选择以下两种触发器选项之一:
- 帖子创建/编辑
- 个人消息创建
“帖子创建/编辑”触发器选项
- 操作类型:限制为仅针对创建或编辑的帖子
- 主题类型:限制为所有主题、仅公开主题或仅个人消息
- 分类:限制为特定分类
- 排除子分类:仅当主题确切位于指定分类中(而非其子分类)时才触发
- 标签:限制为包含特定标签的主题中的帖子
- 受限群组:限制为特定群组用户的帖子
- 排除群组:如果发帖用户属于这些群组中的任何一个,则跳过
- 受限收件箱群组:限制为特定群组收件箱中的个人消息
- 忽略自动化:如果发送者使用
noreply 邮箱或来自自动化源,则跳过(仅适用于通过电子邮件创建的帖子)
- 有效信任级别:限制为来自具有特定信任级别用户的帖子
- 仅限原始帖子:仅针对主题的原始帖子(OP)触发
- 仅限首帖:限制为用户的第一篇帖子
- 仅限首个主题:限制为用户的第一个主题
- 跳过邮件:如果帖子是通过电子邮件创建的,则跳过触发器
- 帖子功能:限制为包含特定功能(图片、链接、代码或上传)的帖子
“个人消息创建”触发器选项
- 用户:限制为发送给特定用户的私信
- 群组:限制为发送给特定群组的私信
- 忽略工作人员:如果发送者是工作人员用户,则跳过
- 忽略自动化:如果发送者使用
noreply 邮箱或来自自动化源,则跳过(仅适用于通过电子邮件创建的私信)
- 忽略群组成员:如果发送者是指定群组的成员,则跳过
- 有效信任级别:限制为来自具有特定信任级别用户的私信
配置脚本选项
设置触发器后,配置以下选项:
- 单词/回答配对:定义关键词及对应的回复
- 回复用户:选择用于自动回复的用户账户(默认为系统用户)
- 一次性复选框:限制自动化在每个主题中仅触发一次
设置单词/回答配对
- 点击
list of word / answer pairs(单词/回答配对列表)旁边的 Configure(配置)按钮
- 输入键/值对:
- 键:触发词或短语(不区分大小写)
- 值:自动回复文本
key(键)将被作为带有单词边界匹配的正则表达式字符串进行评估。请使用反斜杠转义特殊字符,例如 .(如 \\.)。您可以在 regex101.com 上使用 Ruby 风格测试您的正则表达式。
在 value(值)字段中使用 %%KEY%% 作为检测到的触发词的占位符。您还可以使用 %%SENDER_USERNAME%% 作为回复用户用户名的占位符。
如果多个单词/回答配对匹配同一帖子,所有匹配的回复将合并为一条回复(以空行分隔)。
启用自动化
- 勾选屏幕底部的
Enabled(已启用)复选框
- 点击
Update(更新)保存更改
如果取消勾选 Enabled(已启用)复选框,自动化可以保存但不启用。
9 个赞
mattdm
(Matthew Miller)
2
是否可以将自动回复限制在主题的初始帖子?有人可能会认为“Once”可以做到这一点,但(显而易见地回顾)只有当主题是在自动化之后创建的,这才是正确的。
1 个赞
mattdm
(Matthew Miller)
3
或者(或者另外?),能否将自动帖子回溯到紧随主题 OP 之后(然后按此顺序合并)?
1 个赞
maiki
(maiki)
5
所以……你有一个旧讨论的类别,当有人回复时,你会收到一个无用的自动回复,但该回复包含有关创建主题的有用信息……对吗? 
如果确实如此,那么很抱歉,我认为目前的自动化不支持这种行为。我检查了其他自动化,我认为唯一可能有效的可能是 AI 辅助分类,但要获得你想要的结果,这似乎成本很高。 
3 个赞
mattdm
(Matthew Miller)
6
是的,没错。要为这个选项添加一个只响应新主题的新选项,难度有多大?
1 个赞
SaraDev
(Sara Devlaeminck)
拆分了此话题
9
回复中还有其他可用的模板变量吗?我想访问私信群组的人的用户名。
SaraDev
(Sara Devlaeminck)
12
目前,在自动回复器自动化中,我们唯一可用的模板变量是在 value 字段中使用 %%KEY%% 作为检测到的触发词的占位符。
在自动回复器自动化中,似乎没有内置变量可以访问通过私信(PM)与群组互动的人的用户名。这是当前实现中的一个限制,因为 Discourse 的其他功能(如电子邮件模板、AI 角色和“发送私信”自动化脚本)确实提供了各种与用户相关的变量。
考虑到这一点,这与其他一些关于此类功能的请求类似。
- 一项关于向“发送私信”脚本添加用户真实姓名变量的请求。
- 一项关于直接消息接收者的预设回复变量的功能请求。
如果您对此功能感兴趣,我鼓励您创建一个 Feature 主题,并提供更多关于您希望在此自动化中添加哪种类型的模板变量的信息。对某项功能表示兴趣的人越多,它就越有可能被集成到 Discourse 中。这听起来是个很棒的主意,我们很想了解更多您想要的内容。 
2 个赞
tknospdr
(David Muszynski)
13
是否可以使用通配符来触发对不符合您创建的任何键值对的主题的响应?
另外,如果同一主题中提到了多个关键字,响应是如何选择的?按字母顺序,还是从上到下?
SaraDev
(Sara Devlaeminck)
14
您好 @tknospdr,
自动回复触发器检测旨在响应您在键/值对中定义的特定正则表达式模式。没有明确的“捕获所有”功能可以在没有其他键值对匹配时触发。
但是,由于键被评估为正则表达式字符串,您可以在最后一个条目中创建一个非常宽泛的正则表达式模式,该模式几乎可以匹配任何内容。类似 .* 的内容可以作为捕获所有正则表达式,但这将匹配所有内容(包括匹配您其他模式的内容)。
当帖子或主题中找到多个关键字时,自动回复器将响应所有匹配的响应。响应将按照键/值对添加的顺序或在配置中列出的顺序发布。
这意味着,如果您的帖子包含匹配多个模式的关键字,您将按单词/答案对列表中的顺序收到多个自动响应。
1 个赞
tknospdr
(David Muszynski)
15
哦,那可不好。这是为我们的票务系统准备的,我不想在客户请求帮助时向他们发送 2 或 3 封不同的电子邮件回复。
如果有一个设置可以:
将多个键值对匹配合并为一个回复。
在此之前,我将回到最初的用例,输入 .* 并使用统一的通用回复。不过,这需要仅在 {user} 在 {category} 中未发布 {x} 天后才触发。