---
title: 工作流
description: 在构建器可用时创建、测试、部署和审查可重用的项目工作流。
---

工作流将可重复的流程转变为连接的步骤，Runner 可以使用相同的输入和规则再次运行。

> **条件：** 工作流界面存在，但当前标准项目导航不会显示工作流条目。仅在 Runner 为您的工作区显示已批准的工作流条目或 Runner 支持提供已批准的路径时使用。不要猜测或编辑 URL 来访问它。如果您的计划仅允许预览，Runner 可以显示该页面，同时保持其控件被阻止。

## 入口路径

仅在 Runner 在您的工作区中显示**工作流**条目时打开它。该页面列出当前项目的工作流。如果没有条目，请使用[功能可用性](./feature-availability)或联系支持，而不是尝试直接 URL。

## 开始前

- 工作流访问权限取决于当前功能推出和计划。
- 在测试或部署工作流之前，确认项目和连接的服务。
- 预览或保存的草稿不是活跃的；部署和激活是分开的重要操作。

## 工作流列表

当没有工作流时，选择**创建工作流**。当列表中已有项目时，使用**新建工作流**。

| 控件 | 选择后会发生什么 |
| --- | --- |
| **创建工作流**或**新建工作流** | 打开**创建工作流**。 |
| **空白** | 创建**无标题工作流**并打开其构建器。 |
| 模板卡片 | 从该模板创建工作流并打开其构建器。如果模板加载失败，**重试**会再次请求它们。 |
| 工作流名称 | 在构建器中打开该工作流。 |
| **重命名** | 使名称可编辑。输入或点击其他地方保存；Escape 取消编辑。 |
| **固定到顶部** / **取消固定** | 将工作流移入或移出固定组。它不会运行工作流。 |
| **复制** | 创建副本并在构建器中打开副本。 |
| **导出** | 将工作流下载为 JSON 文件。它不会部署或运行任何内容。 |
| **删除** | 打开确认。确认会永久删除该工作流，无法撤销。 |

使用每行的更多菜单查找**重命名**、**固定到顶部**或**取消固定**、**复制**、**导出**和**删除**。

行标签还可以显示版本是否为**活跃**、有**草稿待处理**、公开端点，或绑定到计划或事件。暂停或计划阻止标签意味着自动触发当前不活跃。

### 处理多个工作流

选择一行或多行旁边的复选框。选择栏显示选择了多少个，并提供：

- **导出**以下载选定的工作流。
- **删除**以打开批量确认。确认会永久删除每个选定的工作流。
- **清除**以移除选择而不更改任何工作流。

**全选**选择当前列表中显示的工作流。在批量删除前始终重新检查计数。

## 构建和保存

构建器画布是您添加步骤、连接它们以及配置每个步骤接收和执行的操作的地方。**添加组件**打开可搜索的组件库。画布控件可缩放、缩小、使工作流适应屏幕，并自动排列连接的步骤。

更改会自动保存；没有单独的保存按钮。返回箭头在返回工作流列表前完成待处理的保存。

| 保存状态 | 要做什么 |
| --- | --- |
| **保存中…** | 在关闭页面或部署前等待。 |
| **已保存** | 最新的画布更改已存储。 |
| **保存失败** | 检查连接后选择**重试**。 |
| **冲突 — 您的更改未被保存** | 另一个保存的版本更新。**重新加载**会丢弃冲突的本地编辑并加载保存的版本。 |

下面板包含**游乐场**和**历史记录**。在游乐场中，在运行前完成必需的文本、产品或媒体输入。当缺少必需的输入时，运行控件保持不可用。结果显示在输出区域。

构建器的更多菜单还提供**导出 JSON** 和**导入 JSON…**。导出下载当前画布。导入立即替换当前画布并触发自动保存，无需确认，因此导出备份并在导入前检查选定的文件。

## 选择正确的测试

测试可能有非常不同的后果。

| 控件 | 选择后会发生什么 |
| --- | --- |
| **模拟而不调用 API** | 打开模拟对话框。使用生成的示例数据或粘贴 JSON，然后选择**运行模拟**。写入端操作（如电子邮件、Slack 帖子和存储更改）被存根化。 |
| **实时测试 — 真实副作用，标记为 isTest** | 打开实时测试对话框。使用生成的数据、粘贴的 JSON 或可用的最近事件。**运行实时测试**进行真实的 API 调用，可以发送消息或更改连接的服务。运行在历史记录中标记为测试。 |
| **跳过等待** | 在实时测试期间，跳过配置的等待期，以便测试可以更快继续。它不会移除其他真实效果。 |
| **运行工作流** | 立即启动配置的工作流并打开历史记录。其步骤可能有真实效果；首先审查每个步骤和输入。 |
| **停止执行** | 请求当前运行停止。已完成的工作不会被反转。 |
| **缓存** | 在重新运行时，跳过输入未更改的符合条件的节点，以便您可以专注于更改的下游工作。 |

使用模拟检查分支和数据流。仅在连接账户中真实副作用可接受时使用实时测试。

## 审查运行历史记录

在下面板中打开**历史记录**以查看以前的运行。使用**实时**、**测试**或**全部**过滤列表，然后选择运行以检查其节点结果、输出、时间和错误。状态包括已完成、失败、运行中和已取消。

如果列表显示**尚无运行**，当前工作流没有记录的执行。启动另一个运行不是修复失败运行的方法；首先打开失败的运行并阅读其错误。

一些符合条件的失败节点提供**从"节点"重试**。这会立即启动新尝试，无需另一个确认。下游操作可以再次运行，因此首先检查失败运行已产生的消息或存储更改。

## 部署和激活

选择**部署**打开**部署工作流**。在继续前审查更改摘要、API 合同兼容性、验证结果和可选的更改日志。

您可以选择将部署的工作流绑定到计划或事件。一次只能选择其中一种触发类型。

- **部署**使用选定的设置发布版本。
- **激活并部署**在新的计划或事件绑定会使自动化活跃时出现。确认它会发布版本并允许未来的触发器使用真实效果自动运行。

保存错误、未解决的冲突或验证问题可能会阻止部署。解决它而不是重复选择部署。

部署后，生产状态可以显示**未部署**、**草稿待处理**或**活跃**，加上绑定的**无触发器**、**活跃**或**暂停**。打开现有绑定提供重要控件：

- **暂停**停止自动触发但保持工作流和绑定。
- **恢复**允许保留的绑定再次触发。
- **移除**永久删除绑定但不删除工作流。

每个操作打开确认并可以包括原因。在部署期间从现有绑定中移除检查会暂停该绑定而不是永久删除它。

## 版本历史记录和回滚

选择**版本历史记录**打开**版本历史记录**面板。

| 操作 | 结果 |
| --- | --- |
| **回滚** | 打开**回滚到此版本？**。**确认**使选定的部署版本取代当前部署版本。这可以改变未来运行的操作，但它不会替换当前的草稿画布。 |
| **恢复**在草稿历史记录中 | 在确认后用选定的保存草稿替换当前画布。未保存或更新的画布更改可能会丢失。 |

添加可选的回滚原因，以便其他工作区成员理解更改。在启动另一个运行前审查恢复的画布和部署状态。

## 安全操作检查清单

1. 确认您在正确的项目和工作流中。
2. 在测试或部署前等待**已保存**。
3. 完成并审查每个必需的输入。
4. 尽可能从**运行模拟**开始。
5. 仅在其连接服务效果可接受时使用实时测试或运行工作流。
6. 在部署前检查**历史记录**和输出。
7. 将**激活并部署**、回滚、恢复和删除视为需要最终审查的重要操作。

## 故障排除

| 问题 | 下一步 |
| --- | --- |
| 没有**工作流**条目可见 | 这在标准导航中是预期的。不要猜测 URL；请参阅[功能可用性](./feature-availability)或询问 Runner 支持您的工作区是否有已批准的条目。 |
| 控件被计划预览阻止 | 按照屏幕上的计划消息或询问工作区所有者关于访问权限。 |
| 模板列表失败 | 选择**重试**或创建**空白**工作流。 |
| 运行按钮不可用 | 完成每个必需的输入并修复任何无效值。 |
| 出现保存冲突 | 在选择**重新加载**前决定保存的版本是否应该获胜，因为本地冲突编辑会被丢弃。 |
| 运行失败 | 在**历史记录**中打开它，保持可见的错误和输入，并避免重复启动相同的运行。 |
| 部署被阻止 | 解决部署对话框中显示的保存、冲突、合同或验证消息。 |

## 相关指南

- [自动化](../automate-test-and-create/automations)
- [任务状态和详情](../work-with-runner/task-states-and-details)
- [Runner 任务故障排除](../help-and-reference/troubleshoot-runner-tasks)
- [功能可用性](./feature-availability)
