Execute Sub-workflow 노드
Execute Sub-workflow 노드를 사용하여 n8n이 실행되는 호스트 머신에서 다른 워크플로를 실행합니다. 노드가 서브 워크플로의 정보를 가져올 위치를 선택합니다: database 및 From list 옵션을 사용하여 서브 워크플로를 선택하면, 서브 워크플로의 입력 항목이 자동으로 표시되어 값을 입력하거나 매핑할 수 있습니다.
Execute Sub-workflow 노드를 사용하여 n8n이 실행되는 호스트 머신에서 다른 워크플로를 실행합니다.
노드 파라미터#
Source#
노드가 서브 워크플로의 정보를 가져올 위치를 선택합니다:
- Database: 이 옵션을 선택하면 ID로 데이터베이스에서 워크플로를 로드합니다. 다음 중 하나를 입력해야 합니다:
- From list: 계정에서 사용 가능한 워크플로 목록에서 워크플로를 선택합니다.
- Workflow ID: 워크플로의 ID를 입력합니다. 워크플로의 URL에는
/workflow/뒤에 ID가 포함됩니다. 예를 들어, 워크플로의 URL이https://my-n8n-acct.app.n8n.cloud/workflow/abCDE1f6gHiJKL7이면 Workflow ID는abCDE1f6gHiJKL7입니다.
- Local File: 이 옵션을 선택하면 로컬에 저장된 JSON 파일에서 워크플로를 로드합니다. 다음을 입력해야 합니다:
- Workflow Path: 노드가 실행할 로컬 JSON 워크플로 파일의 경로를 입력합니다.
- Parameter: 이 옵션을 선택하면 파라미터에서 워크플로를 로드합니다. 다음을 입력해야 합니다:
- Workflow JSON: 노드가 실행할 JSON 코드를 입력합니다.
- URL: 이 옵션을 선택하면 URL에서 워크플로를 로드합니다. 다음을 입력해야 합니다:
- Workflow URL: 워크플로를 로드할 URL을 입력합니다.
Workflow Inputs#
database 및 From list 옵션을 사용하여 서브 워크플로를 선택하면, 서브 워크플로의 입력 항목이 자동으로 표시되어 값을 입력하거나 매핑할 수 있습니다.
요청된 입력 항목을 선택적으로 제거할 수 있으며, 이 경우 서브 워크플로는 해당 항목의 값으로 null을 받습니다. Attempt to convert types를 활성화하면 데이터를 서브 워크플로 항목의 요청 타입으로 자동 변환할 수 있습니다.
서브 워크플로의 Workflow Input Trigger 노드가 "Accept all data" 입력 데이터 모드를 사용하는 경우 입력 항목이 표시되지 않습니다.
Mode#
이 파라미터를 사용하여 노드의 실행 모드를 제어합니다. 다음 옵션 중에서 선택하세요:
- Run once with all items: 모든 입력 항목을 노드의 단일 실행에 전달합니다.
- Run once for each item: 각 입력 항목에 대해 순서대로 노드를 한 번씩 실행합니다.
노드 옵션#
이 노드에는 Wait for Sub-Workflow Completion이라는 옵션이 포함됩니다. 이를 통해 메인 워크플로가 다음 단계로 넘어가기 전에 서브 워크플로 완료를 기다릴지(켜짐) 또는 메인 워크플로가 기다리지 않고 계속 진행할지(꺼짐) 제어할 수 있습니다.
템플릿 및 예시#
이 노드의 워크플로 템플릿은 n8n 워크플로 템플릿 갤러리에서 확인할 수 있습니다.
서브 워크플로 설정 및 사용#
이 섹션에서는 상위 워크플로와 서브 워크플로를 설정하는 방법을 안내합니다.
서브 워크플로우 만들기#
- 새 워크플로우를 만듭니다.
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 노드로 데이터를 다시 전송합니다.
