Skip to content

节点

节点目录在调色板的三个选项卡中共有 36 种节点类型:Triggers(触发器)、Actions(动作,含设计动作和 AI 动作)以及 Rules(逻辑、计时和流程控制)。每个节点都可以完整配置,放置的那一刻就会即时校验。部分动作节点已经能真正执行;也有少数节点先于对应执行器进入了目录,它们不会假装成功,而是如实记录一条“尚未接入”的步骤,详见下方的 When run(何时运行)列。

快速概览

  1. 打开与需求匹配的调色板选项卡:Triggers、Actions 或 Rules。
  2. 把节点拖到画布上。
  3. 在检查器里配置它的字段。
  4. 在依赖某个动作节点的实际效果之前,先查看下方的表格。

详细参考

Triggers(触发器)

一张图有且只有一个触发器节点来启动运行。各触发器的实际触发方式请见 触发器

节点什么会启动一次运行
Manual start你在构建器的 Test 按钮上手动触发
Scheduled按间隔、每日或每周的节奏
Incoming webhook对该自动化专属 URL 的一次调用
Design created新建了一个设计
Design updated保存了一个设计
Design shared分享或发布了一个设计
Design downloaded下载了一个设计
Part tagged给某个部件添加了标签,可选按单个标签过滤
Brand applied给某个设计应用了品牌套件
Asset uploaded有文件被添加到媒体库
AI generation done一次 AI 生成完成
New work in folder有项目被添加到指定文件夹

设计动作

节点作用字段何时运行
Pick a part先选一个项目,再选其中的一个部件(页面、画框或幻灯片);后续步骤都作用于它Part(打开部件选择器真正执行
Set status / folder修改设计的状态,并/或将其移动到某个文件夹Status、Folder真正执行
Publish a part把选中的部件发布为社区模板尚未接入
Duplicate a design创建选中设计的副本尚未接入
Generate a cover为选中的部件生成封面或缩略图尚未接入

AI 动作

通过你自己的 AI 服务商密钥运行,也就是应用中其他地方用的同一个密钥;见 自带 AI 密钥

节点作用字段何时运行
Generate copy用 LLM 写文本AI 设置(从节点中打开)只要连接了任意 AI 密钥就真正执行;否则记录一条跳过的步骤
Generate an image文本生成图像AI 设置(从节点中打开)有 OpenAI 兼容密钥时真正执行;换成其他任何服务商,或没有密钥,都会记录一条跳过的步骤
Generate a video文本生成视频AI 设置(从节点中打开)目前一律记录一条跳过的步骤;视频尚未接入任何服务商,即便配置了密钥也一样
Run an AI skill运行一个 AI Studio 技能AI 设置(从节点中打开)出图类技能与 Generate an image 相同;出视频类技能一律记录一条跳过的步骤

通知动作

节点作用字段何时运行
In-app notification在你的工作区里创建一条通知Message真正执行
Send webhook向某个 URL 发送 POST 请求URL真正执行
Slack / Discord通过 incoming webhook 发布一条消息Webhook URL、Message真正执行
Write an audit entry向审计日志追加一行真正执行
Send email发送一封邮件To、Subject、Body通过你工作区已配置的 SMTP 连接真正执行;没有连接则记录一条跳过的步骤
Add to calendar向工作区日历添加一个事件Title真正执行;它会出现在你的 Portal Calendar 活动流中

规则与逻辑

这里的每个节点都由核心引擎直接处理,所以全部都会真正执行。

节点作用字段
Condition (yes/no)根据条件把流程分成两条分支Condition
Filter条件不满足时终止流程Condition
Delay继续前先等待一段时间Amount、Unit(分钟、小时、天)
Wait until a date等到某个具体的日期和时间Date
Set a variable把一个值写入本次运行的上下文,供后续步骤使用Key、Value
Expression / template用先前的输出拼出一个值Template
HTTP request调用某个 URL 并保存响应URL、Method、Body
No-op什么都不做,一个直通步骤
Exit结束自动化

模板与条件

大多数文本和多行文本字段、Expression / template 节点,以及若干通知字段,都支持双大括号占位符,写作 {{ context.someKey }},它会取用先前节点写入本次运行的任意内容,例如你选中的部件,或一段 AI 生成的文本。

Condition (yes/no)Filter 则构建的是一条结构化规则:选一个字段、一种比较方式(等于、包含、以……开头、大于、为空等,具体取决于该字段的数据类型),再选一个值。规则的任意一侧都能同样地引用本次运行的上下文,例如把 {{ context.status }} 与固定值 approved 相比较。空规则总是通过,这也是为什么全新的 Condition 或 Filter 节点在你配置好之前会放行一切。

如何使用

操作演示:配置一个 HTTP request 步骤

  1. 从 Rules 选项卡把 HTTP request 拖到画布上,把它连接在能产出你要发送数据的那个节点之后。
  2. 设置 Method(GET、POST、PUT、PATCH 或 DELETE)和 URL;和任何文本字段一样,URL 字段也接受 {{ context.x }}
  3. 选择 Auth:None、Bearer token、Basic(user:pass)或自定义请求头,并填入随之出现的对应值字段。
  4. 对于带请求体的方法,选一个 Body 类型(JSON、表单或纯文本)并写好 Body,同样可以在需要处使用占位符。
  5. Response variable 保留默认的 __http,或改个名字,然后在下游引用结果,例如 {{ context.__http.status }},或是嵌在 {{ context.__http.body }} 里的某个值。

操作演示:通知一个 Slack 或 Discord 频道

  1. 在目标应用里,为你想发布消息的频道创建一个 incoming webhook,并复制它的 URL。
  2. Slack / Discord 拖到画布上(Actions > Notification),把那个 URL 粘贴到 Webhook URL 里。
  3. 写好 Message,用 {{ context.x }} 带入先前节点产出的任意内容。
  4. 可选地设置 Username 和 Icon emoji,让自动发出的消息在繁忙的频道里更容易辨认。
  5. 测试一次自动化;发布失败会作为一条 error 步骤显示、并附上 HTTP 状态码,而不是悄无声息地什么都不做。

常见任务

  • 每个工作日清晨触发。Scheduled 触发器上,把 Frequency 设为 Cron、表达式设为 0 9 * * 1-5,时区设为 Europe/Istanbul 之类。Cron 模式会保留一个补偿指针,所以哪怕漏掉了某一分钟(一次部署、一次冷启动),一旦补上仍会触发一次,不会被悄悄丢掉。
  • 只接受签名的 webhook 调用。 填好 Incoming webhook 触发器的 HMAC 密钥;此后调用方必须发送一个基于原始请求体计算出的 X-Signature: sha256=... 请求头,否则调用会在任何逻辑运行之前被 401 拒绝。
  • 审批后把部件移到待审。Pick a part 串接到 Set status / folder,将 Status 设为“İncelemede”(待审);它调用的是编辑器自身状态控件所用的同一条更新路径。
  • 起草一段说明文字或摘要。 Generate copy 节点的提示词可以直接引用先前的上下文,例如接在另一个 AI 步骤之后写 Summarize this in one sentence: {{ context.__aiText }}
  • 调用外部 API 并根据响应做处理。 HTTP request 节点(Rules 选项卡)可以设置 Bearer/Basic/自定义请求头认证,把响应写入一个变量(默认 __http),紧随其后的 Filter 节点便可基于该响应设卡,例如只有调用成功时才继续。
  • 给发出的 webhook 签名。 Webhook gönder(发送 webhook)动作的 Secret 字段一旦填写,就会用 HMAC-SHA256 对请求体签名,并放进 Signature header(默认 X-Signature)里发送,让接收方能验证这次调用确实来自你的自动化。
  • 把多个上下文值拼成一个字符串。Expression / template,而不是好几个 Set a variable 节点,例如在它的 Template 字段里一次写好 {{ context.name }} <{{ context.email }}>,然后在下游以 {{ context.__expr }} 引用结果。
  • 让通知链接回它所关乎的工作。 In-app notification 的 Href 字段接受 /works/<id> 这样的路径,这样在工作区里点击该通知,就能把你的团队直接带到受影响的项目。
  • 提前结束一次运行,且不算作失败。 串接一个 Filter 节点,用一条对你想丢弃的情况为假的规则;被过滤掉的运行在 Runs 中显示为 Exited,而不是 Failed,过滤之后的一切都不会运行。

疑难排查

  • 某个节点的步骤在 Activity 里显示 skipped 这要么是一次有意的过滤(条件未通过的 Filter 节点),要么是执行器确实尚未接入的节点(见上方的“何时运行”列),要么是暂时无对象可处理的动作(没有 SMTP 连接的邮件、没有匹配密钥的 AI)。这些都不是 bug;运行仍会继续到其后的步骤。
  • 某个动作节点在同一步骤上反复失败。 打开它检查器的 Settings 选项卡,设置 Retry 次数和等待时间,或把 On error 改为 Continue,好让图的其余部分照常运行;见 搭建工作流
  • 我的条件好像永远不通过(或永远不失败)。 检查它读取的字段是否真的解析出了值:{{ context.x }} 路径里的拼写错误,或某个自身被跳过的上游节点,都会让这个值为空,而除了“为空”之外的大多数比较对空值都会判为不成立。
  • 一次运行压根没有开始。 这是触发器层面的问题,不是节点问题;关于防抖、静默时段和 Active 状态的坑,见 触发器
  • Set status / folder 记录了“önce bir parça seç”(请先选一个部件)并跳过。 这个节点作用于同一次运行中先前某个 Pick a part 节点所选的部件。图中若没有它在前面,就没有可作用的对象,于是它总是带着这条消息跳过。
  • “Publish a part”“Duplicate a design”或“Generate a cover”好像什么都没做。 这三个设计动作仍然领先于它们的执行器;它们总是记录一条跳过的步骤并直通,就像依赖尚未配置的 AI 或邮件节点一样。目前无论你怎么配置都改变不了这一点。
  • 一条 Slack 消息或一个发出的 webhook 悄无声息地没送达。 先查看它在 Recent step logs 里的记录。一个失效或过期的 incoming webhook URL,或者一个返回了非 2xx 状态的目标,都会作为一条 error 步骤显示、并在消息里带上响应状态码,而不是一次被隐藏的失败。

提示

Skipped 不代表坏了

标记为“尚未接入”的节点不是 bug。运行仍会穿过它,如实记录一条“skipped”步骤,再继续到下一个节点,所以在你等待该节点执行器就绪的同时,图的其余部分照常工作。

组合使用条件与过滤

当你需要两条不同路径(是和否)时用 Condition;当你只想终止一次不合格的运行时用 Filter

相关