서브 워크플로
하나의 워크플로에서 다른 워크플로를 호출할 수 있습니다. 서브 워크플로 실행은 플랜의 월간 실행 횟수 또는 활성 워크플로 제한에 포함되지 않습니다. 이 섹션은 부모 워크플로와 서브 워크플로를 모두 설정하는 방법을 안내합니다.
하나의 워크플로에서 다른 워크플로를 호출할 수 있습니다. 이를 통해 모듈식, 마이크로서비스 형태의 워크플로를 구축할 수 있습니다. 또한 워크플로가 메모리 문제를 일으킬 만큼 커졌을 때도 도움이 됩니다. 서브 워크플로 생성에는 Execute Workflow 노드와 Execute Sub-workflow Trigger 노드를 사용합니다.
서브 워크플로 실행은 플랜의 월간 실행 횟수 또는 활성 워크플로 제한에 포함되지 않습니다.
서브 워크플로 설정 및 사용#
이 섹션은 부모 워크플로와 서브 워크플로를 모두 설정하는 방법을 안내합니다.
서브 워크플로우 만들기#
- 새 워크플로우를 만듭니다.
Execute Sub-workflow 노드를 사용하여 기존 부모 워크플로우에서 직접 서브 워크플로우를 만들 수 있습니다. 노드에서 Database와 From list 옵션을 선택한 후 목록에서 Create a sub-workflow를 선택하세요.
컨텍스트 메뉴의 [Sub-workflow conversion](/workflows/subworkflow-conversion.md)을 사용하여 선택한 노드를 직접 추출할 수도 있습니다.
- 선택 사항: 서브 워크플로우를 호출할 수 있는 워크플로우를 설정합니다:
- Options
메뉴 > Settings를 선택합니다. n8n이 Workflow settings 모달을 엽니다. - This workflow can be called by 설정을 변경합니다. 워크플로우 설정에 대한 자세한 내용은 워크플로우 설정을 참조하세요.
- Options
- Execute Sub-workflow 트리거 노드를 추가합니다(트리거 노드에서 검색하는 경우 When Executed by Another Workflow라는 제목으로도 표시됩니다).
- Input data mode를 설정하여 서브 워크플로우의 입력 데이터를 정의하는 방법을 선택합니다:
- Define using fields below: 이 모드를 선택하면 호출 워크플로우가 제공해야 하는 개별 입력 이름과 데이터 타입을 정의합니다. 호출 워크플로우의 Execute Sub-workflow 노드 또는 Call n8n Workflow Tool 노드가 여기서 정의된 필드를 자동으로 가져옵니다.
- Define using JSON example: 이 모드를 선택하면 예상 입력 항목과 타입을 보여주는 예시 JSON 객체를 제공합니다.
- Accept all data: 이 모드를 선택하면 모든 데이터를 무조건 허용합니다. 서브 워크플로우는 필수 입력 항목을 정의하지 않습니다. 이 서브 워크플로우는 입력 불일치 또는 누락된 값을 처리해야 합니다.
- 서브 워크플로우 기능을 구축하는 데 필요한 다른 노드를 추가합니다.
- 서브 워크플로우를 저장합니다.
서브 워크플로우에 오류가 있으면 부모 워크플로우가 이를 트리거할 수 없습니다.
이를 위해서는 이전 실행에서 데이터 로드 기능이 필요하며, n8n Cloud 및 등록된 Community 플랜에서 사용 가능합니다.
서브 워크플로우를 빌드하는 동안 사용할 데이터를 로드하려면:
- 서브 워크플로우를 만들고 Execute Sub-workflow Trigger를 추가합니다.
- 노드의 Input data mode를 Accept all data로 설정하거나, 이미 알고 있다면 필드 또는 JSON을 사용하여 입력 항목을 정의합니다.
- 서브 워크플로우 설정에서 Save successful production executions를 Save로 설정합니다.
- 부모 워크플로우 설정 단계로 넘어가서 실행합니다.
- 이전 실행에서 데이터 로드 단계를 따릅니다.
- 필요한 경우 Input data mode를 부모 워크플로우가 전송하는 입력과 일치하도록 조정합니다.
이제 트리거 노드에 예시 데이터를 고정하여 워크플로우의 나머지 부분을 설정하는 동안 실제 데이터로 작업할 수 있습니다.
서브 워크플로우 호출하기#
- 서브 워크플로우를 호출하려는 워크플로우를 엽니다.
- Execute Sub-workflow 노드를 추가합니다.
- Execute Sub-workflow 노드에서 호출할 서브 워크플로우를 설정합니다. ID로 워크플로우를 호출하거나, 로컬 파일에서 워크플로우를 로드하거나, 노드에서 워크플로우 JSON을 매개변수로 추가하거나, URL로 워크플로우를 대상으로 지정하는 방법을 선택할 수 있습니다.
서브 워크플로우의 ID는 URL 끝에 있는 영숫자 문자열입니다.
- 서브 워크플로우에서 정의한 필수 입력 항목을 채웁니다.
- 워크플로우를 저장합니다.
워크플로우가 실행되면 서브 워크플로우로 데이터를 전송하고 실행합니다.
Execute Sub-workflow 노드를 열고 View sub-execution 링크를 선택하면 부모 워크플로우에서 서브 워크플로우로의 실행 흐름을 따라갈 수 있습니다. 마찬가지로 서브 워크플로우의 실행에는 반대 방향으로 탐색할 수 있는 부모 워크플로우 실행으로의 링크가 포함되어 있습니다.
워크플로 간 데이터 전달 방법#
예를 들어, Workflow A에 Execute Sub-workflow 노드가 있다고 가정해 보겠습니다. Execute Sub-workflow 노드는 Workflow B라는 다른 워크플로우를 호출합니다:
- Execute Sub-workflow 노드는 Workflow B의 Execute Sub-workflow Trigger 노드(캔버스에서 "When executed by another node"라고 표시됨)로 데이터를 전달합니다.
- Workflow B의 마지막 노드가 Workflow A의 Execute Sub-workflow 노드로 데이터를 다시 전송합니다.
서브 워크플로 변환#
기존 워크플로를 서브 워크플로로 분리하는 방법은 서브 워크플로 변환을 참조하세요.
