集成节点/Built in_nodes/Core_nodes
执行子工作流触发器节点#
该节点用于响应另一个工作流而启动当前工作流,应作为工作流中的第一个节点。
n8n 支持从其他工作流调用工作流,这在以下场景中特别有用:
- 工作流复用:例如,多个工作流从不同来源提取并处理数据后,可以统一调用同一个报表生成工作流
- 拆分复杂工作流:将大型工作流分解为更小的组件模块
使用方法#
该节点响应来自执行子工作流或调用 n8n 工作流工具节点的调用而运行。
创建子工作流#
- 创建新的工作流 从现有工作流创建子工作流 您可以选择使用执行子工作流节点直接从现有的父工作流创建子工作流。在该节点中,选择数据库和从列表中选择选项,然后在列表中选择创建子工作流。 您还可以通过右键菜单中的子工作流转换直接提取选定的节点。
- 可选:配置哪些工作流可以调用此子工作流:
- 选择选项 !选项菜单 菜单 > 设置。n8n 将打开工作流设置模态框。
- 更改可被以下对象调用设置。有关配置工作流的更多信息,请参阅工作流设置。
- 添加执行子工作流触发器节点(如果在触发器节点下搜索,该节点也命名为当被其他工作流执行时)。
- 设置输入数据模式以选择如何定义子工作流的输入数据:
- 使用下方字段定义:选择此模式可定义调用工作流需要提供的各个输入名称和数据类型。执行子工作流节点或调用 n8n 工作流工具节点将自动获取此处定义的字段。
- 使用 JSON 示例定义:选择此模式可提供示例 JSON 对象,展示预期的输入项及其类型。
- 接受所有数据:选择此模式可无条件接受所有数据。子工作流不会定义任何必需的输入项。此子工作流必须处理任何输入不一致或缺失值的情况。
- 根据需要添加其他节点以构建子工作流功能。
- 保存子工作流。
子工作流不得包含错误 如果子工作流中存在错误,父工作流将无法触发该子工作流。
构建前向子工作流加载数据
此功能需要具备从历史执行记录加载数据的能力,该功能在 n8n Cloud 和已注册的社区计划中可用。
若要在构建子工作流时预加载数据:
- 创建子工作流并添加 Execute Sub-workflow Trigger 节点
- 将节点的输入数据模式设置为接受所有数据,若输入项已知也可通过字段或 JSON 定义
- 在子工作流设置中,将保存成功生产执行记录设为保存
- 跳转至父工作流配置并执行该工作流
- 按照从历史执行记录加载数据的步骤操作
- 如需调整输入数据模式以匹配父工作流的输入数据
现在您可以在触发器节点中固定示例数据,从而在配置工作流其余部分时使用真实数据。
调用子工作流#
- 打开需要调用子工作流的工作流
- 添加 Execute Sub-workflow 节点
- 在节点中设置要调用的子工作流:可通过ID调用、从本地文件加载工作流、在节点中添加工作流JSON参数,或通过URL指定工作流
获取工作流ID 子工作流的ID即其URL末尾的字母数字字符串
- 填写子工作流定义的必需输入项
- 保存工作流
当工作流执行时,它会将数据传递给子工作流并运行该子工作流。 您可以通过打开"执行子工作流"节点并选择 查看子执行 链接,来跟踪从父工作流到子工作流的执行流程。同样地,子工作流的执行记录中也包含返回父工作流执行记录的链接,方便反向导航。
模板与示例#
浏览执行子工作流触发器集成模板,或搜索所有模板
工作流间的数据传递机制#
举例说明,假设您在工作流A中有一个执行子工作流节点。该节点调用另一个名为工作流B的工作流:
- 执行子工作流节点将数据传递给工作流B中的执行子工作流触发器节点(在画布中显示为"当被其他节点执行时")
- 工作流B的最后一个节点将数据传回工作流A中的执行子工作流节点