서브워크플로
하나의 워크플로 내에서 다른 워크플로를 호출할 수 있습니다. 이를 통해 마이크로서비스 스타일의 모듈화된 워크플로 구조를 구성할 수 있습니다. 또한 워크플로 규모가 너무 커져 메모리 문제가 발생할 경우, 이를 효과적으로 분할하는 방법이기도 합니다. 서브워크플로를 생성하고 호출하려면 Execute Sub-workflow 노드와 Execute Sub-workflow Trigger 노드를 사용해야 합니다.
서브워크플로의 실행 횟수는 귀하의 플랜에 포함된 월간 실행 한도 또는 활성 워크플로 수 제한에 포함되지 않습니다.
서브워크플로 설정 및 사용 방법
이 섹션에서는 부모 워크플로와 서브워크플로를 동시에 설정하는 방법을 설명합니다.
서브워크플로 생성하기
- 새 워크플로를 생성합니다.
기존 워크플로에서 서브워크플로 생성하기
기존 부모 워크플로 내에서 Execute Sub-workflow 노드를 통해 직접 서브워크플로를 생성할 수도 있습니다. 노드 설정에서 데이터베이스 및 목록에서 선택을 클릭한 후, 목록에서 서브워크플로 생성을 선택하세요.
또는 오른쪽 클릭 메뉴의 서브워크플로 변환 기능을 사용해 선택한 노드를 바로 서브워크플로로 추출할 수도 있습니다.
- (선택 사항) 이 서브워크플로를 호출할 수 있는 워크플로를 지정합니다:
- 옵션
메뉴 > 설정을 클릭하여 워크플로 설정 팝업 창을 엽니다. - 다음에서 이 워크플로 호출 가능 설정을 수정합니다. 자세한 설정 정보는 워크플로 설정 문서를 참조하세요.
- 옵션
- Execute Sub-workflow Trigger 노드를 추가합니다. (트리거 노드 검색 시 "다른 워크플로에서 실행될 때"로 표시됩니다.)
- 입력 데이터 모드를 설정하여 서브워크플로의 입력 데이터를 정의하는 방식을 선택합니다:
- 아래 필드로 정의: 이 모드를 선택하면 호출 측 워크플로가 제공해야 하는 개별 입력 항목의 이름과 데이터 유형을 정의합니다. 호출 측의 Execute Sub-workflow 노드 또는 Call n8n Workflow Tool 노드는 여기 정의된 필드를 자동으로 인식합니다.
- JSON 예시로 정의: 이 모드를 선택하면 예상되는 입력 항목과 그 유형을 보여주는 JSON 객체 예시를 제공합니다.
- 모든 데이터 허용: 이 모드를 선택하면 전달되는 모든 데이터를 무조건 수락합니다. 서브워크플로는 필수 입력 항목을 정의하지 않으며, 입력 데이터의 불일치나 누락된 값은 자체적으로 처리해야 합니다.
- 필요에 따라 다른 노드를 추가하여 서브워크플로 기능을 완성합니다.
- 서브워크플로를 저장합니다.
⚠️ 서브워크플로에는 오류가 없어야 합니다
서브워크플로에 오류가 있으면 부모 워크플로에서 이를 실행할 수 없습니다.
서브워크플로 구성 전에 데이터 로드하기
이 기능은 과거 실행 기록에서 데이터를 로드할 수 있어야 하며, n8n Cloud 및 등록된 커뮤니티 플랜에서 사용할 수 있습니다.
서브워크플로를 구성하기 전에 먼저 데이터를 로드하고 싶다면:
- 서브워크플로를 생성하고 Execute Sub-workflow Trigger 노드를 추가합니다.
- 노드의 입력 데이터 모드를 모든 데이터 허용으로 설정하거나, 알려진 입력 항목이 있다면 필드 또는 JSON으로 정의합니다.
- 서브워크플로 설정에서 성공한 프로덕션 실행 저장 옵션을 **'저장'**으로 변경합니다.
- 부모 워크플로 설정으로 이동하여 실행합니다.
- 과거 실행 기록에서 데이터를 로드하는 단계를 따릅니다.
- 필요 시, 부모 워크플로가 전달하는 입력과 일치하도록 입력 데이터 모드를 조정합니다.
이제 트리거 노드에서 예제 데이터를 고정하여 워크플로 나머지 부분을 실제 데이터로 개발할 수 있습니다.
서브워크플로 호출하기
- 서브워크플로를 호출하고자 하는 부모 워크플로를 엽니다.
- Execute Sub-workflow 노드를 추가합니다.
- Execute Sub-workflow 노드에서 호출할 서브워크플로를 설정합니다. 워크플로 ID, 로컬 파일에서 워크플로 로드, 노드 파라미터로 워크플로 JSON 직접 전달, 또는 URL로 대상 워크플로를 지정할 수 있습니다.
워크플로 ID 찾는 방법
서브워크플로의 ID는 해당 워크플로 URL 끝부분에 있는 알파벳과 숫자로 구성된 문자열입니다.
- 서브워크플로에서 정의한 필수 입력 항목을 작성합니다.
- 워크플로를 저장합니다.
워크플로를 실행하면 데이터가 서브워크플로로 전송되어 해당 워크플로가 실행됩니다.
Execute Sub-workflow 노드를 열고 서브 실행 보기 링크를 클릭하면 부모 워크플로에서 서브워크플로로 이어지는 실행 흐름을 추적할 수 있습니다. 마찬가지로, 서브워크플로의 실행 기록에도 부모 워크플로 실행 기록으로 연결되는 링크가 포함되어 있어 양방향 탐색이 가능합니다.
워크플로 간 데이터 전달 방식
구체적인 예시로 설명하겠습니다: 워크플로 A에 있는 Execute Sub-workflow 노드가 워크플로 B라는 다른 워크플로를 호출한다고 가정합니다.
- Execute Sub-workflow 노드는 데이터를 워크플로 B의 Execute Sub-workflow Trigger 노드(캔버스 상에서는 "다른 노드에서 실행될 때"로 표시됨)로 전달합니다.
- 워크플로 B의 마지막 노드는 처리 결과 데이터를 다시 워크플로 A의 Execute Sub-workflow 노드로 반환합니다.
서브워크플로 변환
기존 워크플로를 서브워크플로로 분할하는 방법에 대해서는 서브워크플로 변환 문서를 참조하세요.