Discourse 工作流

:discourse2: 摘要 Discourse Workflows 允许管理员通过可视化构建器创建高级自动化流程,以自动化社区中的几乎所有操作。
:open_book: 安装指南 此插件已包含在 Discourse 核心中。无需单独安装该插件。

Workflows 是一个可视化自动化构建器,允许管理员使用拖放画布创建高级的多步骤自动化流程——连接触发器、条件、操作和流程控制节点,以自动化您 Discourse 站点上的几乎所有操作。

:discourse: Discourse Workflows 适用于 BusinessEnterprise 计划。

核心概念

如果您熟悉其他自动化工具,您可能会认出 Workflows 中使用的大部分术语:

  • 工作流 (Workflow):由连接的节点组成的已保存自动化流程。
  • 节点 (Node):工作流中的单个步骤:触发器、条件、操作和流程控制/实用程序。
  • 触发器 (Trigger):工作流的起点。触发器可以是手动的,也可以由特定事件启动——例如主题创建、计划任务触发或传入的 Webhook。
  • 条件 (Condition):评估规则并将流程拆分为分支的路由节点。例如,If 节点根据 true 或 false 的评估结果来路由流程。
  • 操作 (Action):执行特定操作的节点——创建帖子、授予徽章、调用外部 API 等。
  • 项目 (Item):在节点之间流动的数据。项目是 JSON 对象,您可以在执行日志中检查它们,并使用表达式引用它们。
  • 表达式 (Expression):以 {{ ... }} 形式编写的动态值,在运行时解析,用于引用来自早期节点、工作流变量或站点设置的数据。

创建工作流

要创建工作流:

  1. 前往 Admin > Plugins > Workflows 并点击 New workflow

  1. 为您的工作流命名。
  2. 点击 Add first step 并选择您的触发器。

  1. 使用 + 按钮添加其他节点。

  1. 双击节点以进行配置。在配置面板中,节点输入的详细信息将显示在屏幕左侧,节点输出的详细信息将显示在屏幕右侧。您可能需要运行一次工作流才能看到所有各种详细信息。

  1. 准备好上线时,点击 Publish

:light_bulb: 提示:

  • 使用 便签,位于构建器右上角的三点菜单中,记录您的工作流功能。便签对工作流没有影响,但使模板和共享工作流更易于理解。
  • 在开发期间使用 日志节点 将调试值发送到执行日志,而不影响工作流的行为。
  • 您可以将工作流 导出和导入 为 JSON,以便与团队成员共享或从其他站点重新创建工作流。

表达式和动态数据

接受表达式的字段在编辑器中显示一个 {/} 按钮。点击它以浏览来自触发器和早期节点的可用数据并插入引用。

常见表达式

表达式 返回内容
{{ $json.topic.title }} 当前项目中主题的标题
{{ $json.post.url }} 当前项目中帖子的 URL
{{ $json.user.username }} 与当前项目关联的用户名
{{ $vars.my_variable }} 名为 my_variable 的工作流变量的值
{{ $site_settings.title }} 您站点的标题
{{ $execution.id }} 当前执行的唯一 ID
{{ $('Node Name').item.json.property }} 来自特定上游节点的输出,通过其画布名称引用

静态和动态值

= 开头的字段被视为表达式。没有前导 = 的字段被视为纯文本。表达式选择器会自动为您处理此问题。

管理工作流

有许多功能可帮助您管理现有的工作流。

执行

每次工作流运行时,Discourse 都会记录一次执行。前往 Workflows → Executions 查看历史记录。

每次执行显示其完成时的日期和时间及其状态:

  • 已完成 (Completed):无错误地运行至完成。
  • 错误 (Error):在特定节点处失败;点击执行以查看错误和导致错误的数据。
  • 运行中 (Running):当前正在处理。
  • 等待中 (Waiting):由于等待节点而暂停;等待表单、模式窗口、聊天批准中的响应;或调用工作流节点等待子工作流完成。
  • 速率限制 (Rate limited):由于速率限制,工作流被跳过。
  • 已跳过 (Skipped):触发器已触发,但工作流未发布。

您可以点击 Show 按钮更深入地查看工作流的执行。这将显示工作流的每个步骤,您可以展开以查看确切详细信息以及该步骤的持续时间。

在页面底部,您可以查看工作流的总持续时间。如果需要用于共享或故障排除目的,您还可以 Export 日志。

设置

Workflows → Settings 选项卡上,您可以:

  • 配置 错误工作流,当此工作流运行时出现任何故障时应触发。如果工作流具有错误触发器,它将按该触发器定义的方式处理错误。
  • 设置计划触发器的 时区。如果未设置,工作流将默认使用站点时区。
  • 删除工作流:warning: 这是 永久 的,因此您应该考虑在继续之前导出您的工作流(可在工作流构建器右上角的三点菜单中访问)。

版本

每次您更新工作流时,我们都会保存之前的版本。这使得 Revert 未按预期工作的更改变得容易。

变量

变量是限定于单个工作流的键值对。在工作流的 Variables 面板中定义它们,并使用 {{ $vars.key_name }} 在任何地方引用它们。使用变量存储您希望在不编辑工作流图的情况下能够更改的配置值(如类别 ID 或收件人用户名)。

凭证

某些节点(如 HTTP 请求或 AI Agent)需要与外部服务进行身份验证。将 API 密钥和密钥存储在 Workflows → Credentials 中,而不是直接粘贴到节点字段中。凭证在静态时加密,并可以跨工作流重用。

支持的凭证类型:

  • Basic Auth(用户名 + 密码)
  • Bearer token
  • Header auth(自定义标头名称和值)

数据表

数据表是 Workflows 插件内部持久的结构化表。使用 Data table 节点从中读取或写入。它们支持 stringnumberbooleandate 列类型。

数据表适用于:

  • 去重 — 记录工作流已处理的用户或主题
  • 状态 — 跟踪主题是否处于流程的特定阶段
  • 查找 — 存储您的工作流可以查询的映射(如主题 ID → 分配的工作人员)

执行

您可以从 Executions 选项卡查看所有工作流的所有执行。格式和功能与工作流特定的执行非常相似,但显示所有工作流以便更轻松地监控。

模板

创建新工作流时,您可以从 模板 开始,而不是空白画布。模板是为常见用例预先构建的工作流——它们带有便签注释,解释其工作原理,是学习系统的好方法。

:megaphone: 有兴趣查看更多模板吗? 我们将努力随着时间的推移扩展可用模板库,但如果您希望在此处看到某个模板以简化您的 Workflows 使用,请告诉我们。

您还可以将任何工作流导出为 JSON 文件,与他人共享或将其用作您自己的起点。

3 个赞