Appearance
工作流
工作流将一系列操作步骤固化为可重复执行的流程。当某项任务需要反复执行时,工作流比每次手动操作更高效、更可靠。
核心概念
节点
节点代表工作流中的一步动作。每个节点执行一个明确的操作,例如调用 Agent、处理数据或发送通知。
连线
连线定义节点之间的执行顺序。除了顺序连接外,连线还支持条件分支——根据上一步的结果决定走哪条路径。
变量
变量负责在节点之间传递数据。上一个节点的输出可以作为下一个节点的输入,通过变量将整个流程串联起来。
TIP
理解这三个概念是使用工作流的基础。节点决定"做什么",连线决定"怎么走",变量决定"传什么"。
页面结构
工作流包含两层界面:
| 层级 | 路径 | 功能 |
|---|---|---|
| 列表层 | /workflows | 查看所有工作流、编辑、查看执行记录 |
| 设计层 | /workflows/:id | 拖拽节点、配置参数、连接步骤 |
执行中心(/workflows/executions)用于查看所有工作流的运行记录和状态。
创建流程
1. 新建工作流
在工作流列表页点击「新建」,填写名称和描述。
2. 添加节点
在设计画布中从节点面板拖入所需节点。节点按功能分为以下类别,每种节点需要配置对应的执行参数。
3. 连接节点
通过连线将节点按执行顺序连接。如果需要条件分支,在连线上设置判断条件。
4. 配置变量
设置节点之间的数据传递关系,确保每个节点能获取到所需的输入数据。
5. 保存并运行
完成设计后保存工作流,然后手动触发运行或交给自动化定时执行。
WARNING
保存前请确认所有节点的必填参数已配置完成,否则运行时会出错。
节点类型参考
UI 自动化节点
ui_script — 执行 UI 自动化脚本
运行预先录制或编写的 UI 自动化脚本。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| scriptId | 文本 | 是 | 要执行的脚本 ID |
| scriptVersion | 文本 | 否 | 脚本版本号,不填则使用最新版本 |
| humanLikeDefault | 布尔 | 否 | 是否启用拟人化操作(模拟真实用户的操作速度和节奏) |
| fallbackPolicy | 文本 | 否 | 脚本执行失败时的回退策略 |
browser_automation — 浏览器自动化
在浏览器中执行指定操作。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| browserType | 文本 | 否 | 浏览器类型,默认使用系统浏览器 |
| urlPattern | 文本 | 是 | 目标页面的 URL 匹配模式 |
| actionType | 下拉选择 | 是 | 操作类型:click(点击)、input(输入)、wait(等待)、extract(提取) |
| selector | 文本 | 是 | 目标元素的 CSS 选择器或定位器 |
| inputValue | 文本 | 否 | 输入内容,当 actionType 为 input 时必填 |
| waitTimeoutMs | 数字 | 否 | 等待超时时间(毫秒),当 actionType 为 wait 时使用 |
click — 点击
对目标元素执行点击操作。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| clickType | 下拉选择 | 否 | 点击类型:single(单击,默认)、double(双击)、right(右键) |
| waitAfter | 数字 | 否 | 点击后的等待时间(毫秒),用于等待页面响应 |
input — 输入文本
向目标元素输入文本内容。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| text | 文本 | 是 | 要输入的文本内容 |
| clearBefore | 布尔 | 否 | 输入前是否清空已有内容,默认 false |
drag_drop — 拖放
将元素从一个位置拖拽到另一个位置。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sourceSelector | 文本 | 是 | 拖拽起始元素的选择器 |
| targetSelector | 文本 | 是 | 拖拽目标位置的选择器 |
scroll — 滚动
在页面或元素内执行滚动操作。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| direction | 下拉选择 | 是 | 滚动方向:down(向下)、up(向上) |
| amount | 数字 | 否 | 滚动距离(像素),不填则滚动一屏 |
hover — 悬停
将鼠标悬停在目标元素上。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| duration | 数字 | 否 | 悬停持续时间(毫秒) |
keyboard — 键盘操作
模拟键盘按键操作。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| keys | 文本 | 是 | 按键组合,如 Enter、Ctrl+A、Tab |
delay — 延时等待
暂停执行指定时间。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| duration | 数字 | 是 | 等待时间(毫秒) |
datetime — 日期时间
执行日期时间相关的计算和格式化。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | 下拉选择 | 是 | 操作类型:now(获取当前时间)、format(格式化)、add(加减时间)、diff(计算差值) |
| value | 文本 | 否 | 输入的时间值,now 操作时不需要 |
| format | 文本 | 否 | 时间格式,如 YYYY-MM-DD HH:mm:ss |
| amount | 数字 | 否 | 增减的数量,add 操作时使用 |
| unit | 文本 | 否 | 时间单位(如 days、hours、minutes),add 操作时使用 |
流程控制节点
variable — 变量操作
对工作流变量进行读写操作。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| operation | 下拉选择 | 是 | 操作类型:set(设置)、get(读取)、delete(删除) |
| name | 文本 | 是 | 变量名称 |
| value | 文本 | 否 | 变量值,set 操作时必填 |
compare — 条件比较
根据条件判断结果选择不同的执行分支。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| left | 文本 | 是 | 左侧比较值,支持变量引用 |
| operator | 下拉选择 | 是 | 比较运算符:==(等于)、!=(不等于)、>(大于)、<(小于)、contains(包含) |
| right | 文本 | 是 | 右侧比较值,支持变量引用 |
data_extract — 数据提取
从文本或结构化数据中提取目标内容。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| source | 文本 | 是 | 数据来源,支持变量引用 |
| pattern | 文本 | 是 | 提取模式(正则表达式或 JSONPath) |
编排节点
approval — 人工审批
暂停工作流执行,等待人工审批后继续。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| title | 文本 | 是 | 审批标题,显示在审批通知中 |
| message | 文本 | 否 | 审批说明,描述需要审批的具体内容 |
| timeoutMs | 数字 | 否 | 超时时间(毫秒),超时后自动拒绝或跳过 |
| outputVar | 文本 | 否 | 存储审批结果的变量名 |
wait_for_input — 等待输入
暂停工作流执行,等待用户提供输入后继续。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| title | 文本 | 是 | 输入提示标题 |
| message | 文本 | 否 | 输入提示说明 |
| inputKey | 文本 | 是 | 存储输入值的变量名 |
| inputType | 下拉选择 | 否 | 输入类型:text(文本,默认)、number(数字)、json(JSON 数据) |
| timeoutMs | 数字 | 否 | 超时时间(毫秒) |
集成节点
http_request — HTTP 请求
发送 HTTP 请求并获取响应。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| method | 下拉选择 | 是 | 请求方法:GET、POST、PUT、DELETE |
| url | 文本 | 是 | 请求地址,支持变量引用 |
| body | 文本 | 否 | 请求体内容,POST 和 PUT 时使用 |
subworkflow — 子工作流
调用另一个工作流作为子流程执行。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| workflowId | 文本 | 是 | 要调用的工作流 ID,从已有工作流列表中选择 |
文件操作节点
file_selector — 文件选择
弹出文件选择对话框,由用户选择文件或目录。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| mode | 下拉选择 | 是 | 选择模式:open(打开文件)、save(保存文件)、folder(选择目录) |
file_operation — 文件操作
对本地文件执行读写等操作。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| operation | 下拉选择 | 是 | 操作类型:read(读取)、write(写入)、delete(删除)、copy(复制)、move(移动) |
| path | 文本 | 是 | 文件路径,支持变量引用 |
系统节点
clipboard — 剪贴板
操作系统剪贴板内容。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| operation | 下拉选择 | 是 | 操作类型:copy(复制到剪贴板)、paste(从剪贴板粘贴)、get(获取剪贴板内容) |
| content | 文本 | 否 | 要复制到剪贴板的内容,copy 操作时必填 |
shell_command — 执行命令
在系统终端中执行命令。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| command | 文本 | 是 | 要执行的命令 |
| workingDir | 文本 | 否 | 工作目录,不填则使用默认目录 |
app_control — 应用控制
控制本地应用程序的启动和关闭。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| operation | 下拉选择 | 是 | 操作类型:launch(启动)、close(关闭)、activate(激活到前台) |
| appName | 文本 | 是 | 应用程序名称 |
notification — 通知
发送系统通知。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| title | 文本 | 是 | 通知标题 |
| message | 文本 | 是 | 通知内容 |
| level | 下拉选择 | 否 | 通知级别:info(信息,默认)、success(成功)、warning(警告)、error(错误) |
工作流与自动化的关系
工作流定义"怎么做",自动化定义"什么时候做"。
一个工作流可以被多个自动化规则引用。例如,同一个数据整理工作流可以被"每日定时"和"收到通知时"两种触发方式调用。
适用场景
| 场景 | 示例 |
|---|---|
| 重复性任务 | 每日数据整理、周报生成 |
| 多步骤流程 | 数据采集 → 清洗 → 分析 → 输出 |
| 团队复用 | 将验证过的流程共享给团队成员 |
| 条件分支 | 根据审核结果执行不同后续操作 |