| 摘要 | Discourse Workflows 允许管理员通过可视化构建器创建高级自动化,从而自动化社区中的几乎所有内容。 | |
| 安装指南 | 此插件已随 Discourse 核心捆绑,无需单独安装。 |
Workflows 是一个可视化自动化构建器,允许管理员使用拖放画布创建高级的多步骤自动化——通过连接触发器、条件、操作和流控制节点,来自动化 Discourse 站点上的几乎所有内容。
Discourse Workflows 适用于 Business 或 Enterprise 计划。
核心概念
如果您熟悉其他自动化工具,您可能会认出 Workflows 中使用的大多数词汇:
- Workflow(工作流): 由连接节点组成的已保存自动化。
- Node(节点): 工作流中的单个步骤:触发器、条件、操作以及流控制/实用工具。
- Trigger(触发器): 工作流的起点。触发器可以是手动的,也可以由特定事件启动——例如主题创建、计划任务执行或传入的 Webhook。
- Condition(条件): 一个路由节点,用于评估规则并将流程拆分为分支。例如,If(如果)节点根据真或假评估来路由流程。
- Action(动作): 执行特定操作的节点——例如创建帖子、授予徽章、调用外部 API 等。
- Item(项目/数据项): 在节点之间流动的数据。Items 是 JSON 对象,您可以在执行日志中检查它们,并使用表达式进行引用。
- Expression(表达式): 以
{{ ... }}形式编写的动态值,在运行时解析,用于引用早期节点、变量或站点设置中的数据。
创建工作流
要构建工作流:
- 转到 管理员 > 插件 > Workflows 并点击 New workflow(新建工作流)。
- 为您的工作流命名。
- 点击 Add first step(添加第一步)并选择您的触发器。
- 使用 + 按钮添加其他节点。
- 双击节点以进行配置。在配置面板中,左侧将显示该节点输入的详细资料,屏幕右侧将显示该节点输出的详细资料。在查看所有详细信息之前,您可能需要先运行一次工作流。
- 准备好上线时,点击 Publish(发布)。
提示:
- 使用位于构建器右上角三点菜单中的 sticky notes(便签)来记录您的工作流功能。便签对工作流没有任何影响,但可以使模板和共享工作流更容易理解。
- 在开发过程中使用 log node(日志节点),将调试值发送到执行日志中,而不影响工作流的行为。
- 您可以将工作流 导出和导入 为 JSON,以便与团队成员共享或在站点之间移动。请参阅下方的“导出和导入工作流”了解哪些内容会被传输。
表达式和动态数据
接受表达式的字段在编辑器中会显示一个 {/} 按钮。点击它可浏览来自触发器和早期节点的可用数据,并插入引用。
常见表达式
| 表达式 | 返回内容 |
|---|---|
{{ $json.topic.title }} |
来自当前项目的主题标题 |
{{ $json.post.url }} |
来自当前项目的帖子 URL |
{{ $json.user.username }} |
与当前项目关联的用户用户名 |
{{ $workflow_vars.my_variable }} |
名为 my_variable 的工作流变量的值 |
{{ $vars.my_variable }} |
名为 my_variable 的全局变量的值 |
{{ $site_settings.title }} |
您站点的标题 |
{{ $execution.id }} |
当前执行的唯一 ID |
{{ $('Node Name').item.json.property }} |
引用特定上游节点的输出,通过其画布名称进行引用 |
静态值和动态值
以 = 开头的字段被视为表达式。没有前导 = 的字段被视为纯文本。表达式选择器会自动为您处理这一点。
管理工作流
有许多功能可以帮助您管理现有的工作流。
执行记录
每次工作流运行时,Discourse 都会记录一次执行。转到 Workflows → Executions(工作流 → 执行记录)查看历史记录。
每个执行记录显示其完成日期和时间以及状态:
- Completed(已完成): 无错误地运行至完成。
- Error(错误): 在特定节点失败;点击进入执行记录以查看错误及其数据。
- Running(运行中): 当前正在处理。
- Waiting(等待中): 因等待节点而暂停;等待表单、模态框、聊天审批的响应;或等待子工作流完成的 Call Workflow 节点。
- Rate limited(速率限制): 因速率限制而跳过工作流。
- Skipped(跳过): 触发器已触发,但工作流未发布。
您可以点击 Show(显示)按钮以更深入地查看工作流的执行情况。这会显示工作流的每个步骤,您可以展开以查看确切详细信息以及该步骤的持续时间。
在页面底部,您可以查看工作流的总体持续时间。如果需要共享或故障排除,您也可以 Export(导出)日志。
设置
在 Workflows → Settings(工作流 → 设置)标签页上,您可以:
- 配置一个 error workflow(错误工作流),如果此工作流运行时出现任何失败,它将触发。如果工作流有一个错误触发器,它将按照该触发器定义的方式处理错误。
- 设置计划触发器的 timezone(时区)。如果未设置,工作流将默认使用站点时区。
- 删除工作流。
这是 永久性 操作,因此在继续之前,您应该考虑导出您的工作流(在工作流构建器右上角的三点菜单中可访问)。
版本
每次您更新工作流时,我们都会保存之前的版本。这使得 Revert(回滚)未按预期工作的更改变得很容易。
导出和导入工作流
使用工作流构建器右上角的三点菜单,可将工作流 Export(导出)为 JSON 文件,并 Import(导入)以加载一个。常见用途:与团队成员共享工作流,或从暂存站点移动到生产环境。
导入操作会将文件中的节点 添加 到您当前打开的工作流中;它不会创建新的工作流。要复制工作流,请先创建一个空工作流,然后导入到其中。导入的更改会保存为草稿,直到您发布。
包含在导出中: 节点及其配置、连接、便签和工作流变量定义。
不传输,因此在发布之前,请在目标站点上设置这些内容:
- Credentials(凭证): 导入时会移除凭证引用。在目标站点创建凭证,并在每个节点中重新选择它们。
- Data tables(数据表): 表、列和行不会导出。重新创建它们并在数据表节点中选择它们。
- Variable values(变量值): 工作流变量定义会被导入,但其值不会。请在工作流的 Variables(变量)标签页中设置它们。如果已存在相同键的变量,导入将保留现有变量,并显示跳过的键。全局变量不会被导出。
- Workflow settings(工作流设置): 错误工作流和时区不会应用。请在 Settings(设置)标签页中重新设置它们。
- Site-specific references(站点特定引用): 类别、群组、用户、聊天频道、Data Explorer 查询和被调用工作流的 ID、名称和 URL 保持原样,可能与目标站点不匹配。工作流变量使这些更容易更改。
在发布之前,手动运行导入的工作流并检查 Executions(执行记录)日志。
变量
有两种类型的变量:
- Workflow variables(工作流变量) 局限于单个工作流。在工作流的 Variables(变量)标签页中定义它们,并使用
{{ $workflow_vars.key_name }}引用它们。它们具有类型(字符串、整数、布尔值、枚举、类别、类别列表、群组、群组列表、标签列表或列表),因此会对值进行验证并使用正确的选择器进行选择。定义的更改和值的更改遵循工作流的草稿/发布流程。 - Global variables(全局变量) 所有工作流共享。在 Workflows → Variables(工作流 → 变量)中定义它们,并使用
{{ $vars.key_name }}引用它们。
对于在不同站点或用例之间变化的值(如类别、群组或接收者),请使用工作流变量,这样您无需编辑其节点即可复用工作流。
凭证
某些节点——如 HTTP 请求或 AI Agent——需要对外部服务进行身份验证。请在 Workflows → Credentials(工作流 → 凭证)中存储 API 密钥和秘密,而不是直接粘贴到节点字段中。凭证在静态存储时是加密的,并且可以在工作流之间重用。
支持的凭证类型:
- Basic Auth(基本认证)(用户名 + 密码)
- Bearer token(Bearer 令牌)
- Header auth(头部认证)(自定义头部名称和值)
数据表
数据表是 Workflows 插件内部持久的、结构化的表格。使用 Data table(数据表)节点从中读取或写入数据。它们支持 string、number、boolean 和 date 列类型。
数据表适用于:
- Deduplication(去重) — 记录工作流已处理的用户或主题
- State(状态) — 跟踪主题是否处于流程的特定阶段
- Lookups(查找) — 存储映射(如主题 ID → 分配的员工),供您的工作流查询
执行记录
您可以从 Executions(执行记录)标签页查看所有工作流的所有执行记录。格式和功能与特定于工作流的执行记录非常相似,但显示所有工作流的情况,便于监控。
模板
创建新工作流时,您可以从 template(模板)开始,而不是从空白画布开始。模板是针对常见用例预先构建的工作流——它们附有便签解释其工作原理,是学习该系统的好方法。
有兴趣看到更多模板吗? 我们将努力随着时间的推移扩展可用模板库,但如果您希望看到能让您使用 Workflows 更轻松的模板,请告诉我们。
您也可以将任何工作流导出为 JSON 文件,以便与他人共享或将其作为您自己的起点。













