Skip to content

搭建工作流

打开一个自动化会以构建器占据整个屏幕:右侧是节点画布,左侧是节点面板或检查器,顶部横跨一条工具栏。它覆盖在你的工作区之上,没有单独的页面或标签页。

快速了解

  1. 创建或打开一个自动化,进入构建器。
  2. 从节点面板把一个节点拖到画布上。
  3. 从一个节点的连接点拖到下一个节点,把它们连起来。
  4. 点击某个节点,在左侧面板打开它的设置。
  5. 点击 Validate,然后点 Test 运行一次,或点 Activate 正式上线。

详细参考

布局

区域包含内容
图标栏(最左侧)三个视图:Flow(画布)、Settings(每个自动化的选项)、Activity(运行历史)。
左侧面板未选中任何节点时显示节点面板,选中某个节点时显示该节点的设置。两者会就地切换。
画布图本身:网格背景、平移和缩放、缩略地图,以及缩放控件。
工具栏退出、自动化的名称和自动保存状态、撤销和重做、Validate、状态标签,以及 Test / Activate / Pause。

节点面板

左侧面板的节点面板带有一个搜索框,以及与节点目录对应的三个标签页:TriggersActionsRules,每个又分成更小的子类别(例如 Actions 下的 Design、AI 或 Notification)。把任意节点拖到画布上即可放置;完整目录参见 节点

连接节点

从一个节点底部的连接点拖到下一个节点的顶部,把它们连起来。触发器没有输入端;退出节点没有输出端。条件类节点(例如 If)会暴露两个连接点,各对应一个分支,因此你可以分别接出「是」路径和「否」路径。

配置节点

点击某个节点,把左侧面板切换为它的检查器:一个标题、一段简短说明,以及它的各个字段。

字段类型呈现为
Text单行输入框
Textarea多行输入框,用于提示词和较长的内容
Number数值输入框,相关时带有最小值和最大值
Select下拉菜单;某些(例如文件夹)会加载你工作区的实时数据
Boolean开关切换
Part picker一个按钮,打开下文介绍的部件选择器

选择项目部件

某些动作节点,从 Pick a part 开始,需要一个项目中的具体部件,而不是整个设计。选择器是构建器之上的两步覆盖层:先选一个项目,再选它内部的一个部件,可以是页面、画框或幻灯片,每个项目都有实时预览缩略图。选定之后,会出现一个 Open in editor 链接,可以直接跳到那个确切的部件。

逐节点错误处理

每个节点的检查器都有两个标签页:Parameters(即上文介绍的字段),以及 Settings,后者只对动作类节点显示选项(触发器和逻辑节点在这里没有可配置项,因为它们没有需要重试的副作用):

设置作用
On errorContinue 会吞下失败并继续,Stop the run 会让整个运行失败,Route to an error output 会给该节点接出第二个红色的「Hata」连接点,让你可以接出一条专门的失败路径
Retry (0-5)在落入 On error 行为之前,对同一步重试这么多次
Wait (ms)每次重试之间暂停多长时间
Note节点上的一段自由文本备注,供你自己参考;对执行没有任何影响

一个保持默认 Continue 的节点只会记录一个 error 步骤,然后让运行像什么都没发生一样继续前进,因此一个无法访问的 webhook 或一封被退回的邮件本身不会阻断图的其余部分。

Settings 视图

图标栏的 Settings 视图容纳整个自动化的选项,随草稿一起保存:

分组设置作用
ExecutionConcurrencyFree(多次运行同时进行)、Single at a time(一次一个)、Skip if busy(忙时跳过),或 Queue up to a cap(排队直到上限)
ExecutionMax concurrent队列的上限,仅在 Queue 模式下显示
ExecutionMax run duration超过这么多秒的运行会被自动判为失败,即便正处于延迟中
ExecutionPriority当引擎有积压时,优先级更高的自动化的运行会被优先推进
ErrorDefault on-error behaviorContinue 或 Stop,供任何未设置自己 On error 的节点使用
ErrorError notifications运行失败时发送的应用内、邮件和/或 Slack 通知
ErrorError automation每当此自动化失败时,另启动一个自动化(发出即不管)
ErrorCircuit breaker在连续失败这么多次运行后,自动暂停该自动化
SchedulingQuiet hours一个起止时间窗口(按自动化所在时区),在此期间触发会被延后而非触发
SchedulingDebounce两次触发之间强制保持的最小间隔,叠加在触发器节点自身设置的任何防抖之上
Data & retentionSave execution data保存全部步骤日志、仅错误,或都不保存,是一种隐私与存储的取舍
Data & retentionRun history retention超过这么多天的已完成运行会被自动删除;留空则全部保留

Validate 不会检查这里的任何一项,只检查图本身;一个不合理的设置(例如 Queue 上限为 0)只会保守地运行,而不会阻止 Activate。

工具栏控件

控件作用
Exit关闭构建器并返回概览。
名称 + 状态文字显示自动化的名称,以及它是已保存、保存中还是保存失败。
Undo / Redo在你对图的编辑之间前后回退。
Validate检查图,并在工具栏下方以内嵌方式列出错误和警告。
Status pill一眼看清 Draft、Active、Paused 或 Error。
Test先保存,然后立即把图运行一次。参见 运行与监控
Activate / Pause发布并上线,或在不丢失草稿的情况下停止监听。

键盘快捷键

快捷键动作
Delete / Backspace删除选中的节点(及其相连的边)
Ctrl/Cmd + Z撤销
Ctrl/Cmd + Shift + Z(或 Ctrl+Y重做
Ctrl/Cmd + C / V复制和粘贴选中的节点
Ctrl/Cmd + D复制选中的节点

拖动的节点会对齐到网格,在空白画布上拖动会框选多个节点。

分步操作

以下示例用今天就能真正运行的节点搭建完整、真实的自动化(哪些节点能运行,参见 节点)。下面的锚点会被其他页面引用。

演练:定时的 AI 摘要,通过邮件发送

  1. 把一个 Scheduled 触发器拖到画布上(Triggers 标签页,Zaman 分组)。打开它的检查器并设置频率:选 Weekly 指定固定的某一天,选 Interval 加上一个「Every (minutes)」值实现紧凑的节奏,或选 Cron 用一条原始 cron 表达式加时区实现精确控制(参见 触发器)。
  2. 从 Actions > AI 拖出一个 Generate copy 节点,把触发器的连接点连到它。打开它的检查器并写一段提示词,例如「Write 3 short social post ideas for this week, one line each.」这一步会通过你在 Settings > AI 下连接的任意 AI 服务商密钥运行;如果没有连接,它会记录一个被跳过的步骤,而不会让运行失败。
  3. 从 Actions > Notification 拖出一个 Send email 节点,把 Generate copy 连到它。把 To 设为你的邮箱地址,把 Subject 设为类似「This week's post ideas」,把 Body 设为 {{ context.__aiText }},这样它就会把 AI 步骤的输出带过来。
  4. 点击 Validate,修正它标出的任何问题(常见的一个:To 或 Subject 留空),然后点 Test。打开 Activity 视图,确认 AI 步骤产生了文本,且邮件步骤显示 ok(如果还没配置 SMTP 连接或 AI 密钥,则会显示清晰的跳过原因)。
  5. 点击 Activate。它现在会按你配置的计划自行运行;你不需要一直开着应用。

演练:带 AI 回复的 webhook 接入

  1. 把一个 Incoming webhook 触发器拖到画布上。它的入站 URL 由自动化自身的 id 构成(/api/workflow/hook/<automation id>);构建器里目前还没有复制 URL 的按钮,所以请从页面本身已经发出的网络请求里找到这个 id(例如在构建器打开时用浏览器的开发者工具),而不要指望它印在节点上。可选地设置一个 HMAC 密钥,这样只有携带有效签名的请求才会被接受。
  2. 把一个外部表单工具、CRM 或聊天挂件的 webhook 目标指向那个 URL,使用类似 { "email": "...", "message": "..." } 的 JSON 主体。
  3. 在触发器之后拖一个 Set a variable 节点,把一个你稍后会复用的字段规范化,例如键为 customerEmail,值为 {{ context.email }}
  4. 在它之后拖一个 Generate copy 节点,提示词例如 Write a short, friendly reply to: {{ context.message }}
  5. 拖一个 Slack / Discord 节点,粘贴你频道的入站 webhook URL,把消息设为 New submission from {{ context.customerEmail }}: {{ context.__aiText }}
  6. 先 Validate,然后用一个示例 JSON 主体 Test(任意 HTTP 客户端,或你工具自带的「发送测试事件」按钮都行,因为它只需要向 webhook URL 发一个 POST)。查看 Activity,然后 Activate。

演练:保存后按条件分支

  1. 从一个 Design updated 触发器开始;在设计/工作区事件触发器中,这是今天应用会自动触发的那一个,每当设计被保存时触发(参见 触发器)。
  2. 拖上一个 Pick a part,让后续步骤有一个具体对象可操作;打开部件选择器,选一个项目,再选它内部的一个页面、画框或幻灯片。
  3. 拖上一个 Condition (yes/no) 节点。它的检查器会构建一条规则(一个字段、一个比较方式,例如等于或包含,以及一个值),而不是一条原始的手写表达式;规则两侧都可以从运行的上下文中取值。
  4. yes 分支上,加一个 In-app notification,告诉你的团队这个部件已可供审核。在 no 分支上,加一个 Write an audit entry 步骤,让直通的情况也被记录下来。
  5. 先 Validate,再 Test;Test 会立即运行,与触发器无关,因此你可以在不实际保存设计的情况下测试两个分支。确认两条路径都在 Activity 中正确出现,然后 Activate。

疑难排解

  • 某个节点的 Settings 标签页看起来是空的。 只有动作类节点才有 On error / Retry / Note 标签页。触发器和逻辑节点(Condition、Filter、Delay、Set a variable 等)没有需要重试的副作用,所以它们的 Settings 标签页除了 Note 字段之外空无一物。
  • 我设了「Route to an error output」,但没有地方可以接出失败路径。 只有在你翻开该设置之后,节点本身才会出现第二个红色连接点;再看看节点底部;新的「Hata」把手就在正常输出旁边。
  • 复制/粘贴(Ctrl/Cmd+C/V)好像没反应。 粘贴出来的副本会相对原节点略微偏移一小段随机抖动,而不是精确地叠在它上面;请看源节点的正下方偏右一点的位置。
  • Validate 通过了,但 Activate 仍然失败。 Activate 会在一步之内重新校验并发布;如果某个字段依赖实时数据(例如一个此后已被删除的文件夹),即便一分钟前 Validate 看起来没问题,此刻它也可能失败。重新打开失败节点的检查器,重新选一次那个值。
  • 有个必填字段报错,但我找不到它。 Validate 的消息会指明节点和字段,但检查器只显示当前满足其 displayIf 条件的字段;一个字段可以既是必填又被隐藏,如果它的可见性由另一个字段控制(例如 HTTP 节点的主体只有在选了一个携带主体的方法之后才出现)。

提示

先 Validate 再 Activate

校验会在你尝试上线之前,捕捉空图、多于一个触发器、留空的必填字段、悬空的连接,或未接线的分支。

更改会自行保存

在你停止输入或移动某个东西片刻之后,编辑会自动保存;工具栏的状态文字会确认这一点。没有单独的保存按钮。

删除节点会移除它的边

没有单独的清理连接的步骤;删除一个节点会连带删除任何触及它的边。

相关内容