서브 워크플로우 실행#
Execute Sub-workflow 노드를 사용하여 n8n을 실행하는 호스트 머신에서 다른 워크플로우를 실행합니다.
노드 매개변수#
출처#
노드가 서브 워크플로우의 정보를 가져올 위치를 선택합니다:
- 데이터베이스: 이 옵션을 선택하면 ID로 데이터베이스에서 워크플로우를 로드합니다. 또한 아래 중 하나를 입력해야 합니다:
- 목록에서 선택: 계정에서 사용 가능한 워크플로우 목록에서 워크플로우를 선택합니다.
- 워크플로우 ID: 워크플로우의 ID를 입력합니다. 워크플로우의 URL은
/workflow/
다음에 ID가 포함됩니다. 예를 들어, 워크플로우의 URL이https://my-n8n-acct.app.n8n.cloud/workflow/abCDE1f6gHiJKL7
인 경우, 워크플로우 ID는abCDE1f6gHiJKL7
입니다.
- 로컬 파일: 이 옵션을 선택하면 로컬에 저장된 JSON 파일에서 워크플로우를 로드합니다. 또한 아래를 입력해야 합니다:
- 워크플로우 경로: 노드가 실행할 로컬 JSON 워크플로우 파일의 경로를 입력합니다.
- 매개변수: 이 옵션을 선택하면 매개변수에서 워크플로우를 로드합니다. 또한 아래를 입력해야 합니다:
- 워크플로우 JSON: 노드가 실행할 JSON 코드를 입력합니다.
- URL: 이 옵션을 선택하면 URL에서 워크플로우를 로드합니다. 또한 아래를 입력해야 합니다:
- 워크플로우 URL: 워크플로우를 로드할 URL을 입력합니다.
워크플로우 입력#
데이터베이스와 목록에서 선택 옵션을 사용하여 서브 워크플로우를 선택하면 서브 워크플로우의 입력 항목이 자동으로 표시되며, 값을 입력하거나 매핑할 준비가 됩니다.
요청된 입력 항목을 선택적으로 제거할 수 있으며, 이 경우 서브 워크플로우는 해당 항목의 값으로 null
을 받습니다. 또한 유형 변환 시도를 활성화하여 데이터를 서브 워크플로우 항목의 요청된 유형으로 자동으로 변환하려고 시도할 수 있습니다.
서브 워크플로우의 워크플로우 입력 트리거 노드가 "모든 데이터 수신" 입력 데이터 모드를 사용하면 입력 항목이 나타나지 않습니다.
모드#
이 매개변수를 사용하여 노드의 실행 모드를 제어합니다. 아래 옵션 중에서 선택합니다:
- 모든 항목을 한 번 실행: 모든 입력 항목을 단일 노드 실행에 전달합니다.
- 각 항목을 한 번 실행: 각 입력 항목에 대해 한 번씩 노드를 실행합니다.
노드 옵션#
이 노드는 하나의 옵션을 포함합니다: 서브 워크플로우 완료 대기. 이를 통해 서브 워크플로우가 완료될 때까지 메인 워크플로우가 다음 단계로 진행해야 하는지(켜기) 또는 메인 워크플로우가 기다리지 않고 계속 진행해야 하는지(끄기) 제어할 수 있습니다.
템플릿 및 예제#
서브 워크플로우 설정 및 사용#
이 섹션에서는 부모 워크플로우와 서브 워크플로우를 설정하는 방법을 설명합니다.
하위 워크플로 생성하기#
-
새로운 워크플로를 생성합니다.
기존 워크플로에서 하위 워크플로 생성
기존 부모 워크플로에서 직접 하위 워크플로를 생성할 수도 있습니다. 이를 위해 Execute Sub-workflow 노드를 사용하세요. 노드에서 Database 및 From list 옵션을 선택한 후, 목록에서 Create a sub-workflow를 선택하세요.
-
선택 사항: 어떤 워크플로가 하위 워크플로를 호출할 수 있는지 설정합니다.
- 옵션(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): 호출하는 워크플로가 제공해야 할 개별 입력 이름과 데이터 유형을 지정합니다.
- JSON 예제를 사용하여 정의(Define using JSON example): 기대하는 입력 항목과 유형을 설명하는 JSON 예제를 제공합니다.
- 모든 데이터 수락(Accept all data): 모든 데이터를 조건 없이 허용합니다. 이 경우, 하위 워크플로는 필수 입력 항목을 정의하지 않으며, 입력 데이터의 일관성이나 누락된 값을 직접 처리해야 합니다.
-
하위 워크플로의 기능을 구현하는 데 필요한 다른 노드들을 추가합니다.
-
하위 워크플로를 저장합니다.
하위 워크플로에 오류가 없어야 함
하위 워크플로에 오류가 있으면 부모 워크플로에서 트리거할 수 없습니다.
하위 워크플로를 만들기 전에 데이터 로드
하위 워크플로를 구성하는 동안 데이터를 로드하려면 이전 실행에서 데이터 로드 기능이 필요합니다. 이 기능은 n8n Cloud 및 등록된 커뮤니티 플랜에서 사용할 수 있습니다.
하위 워크플로에서 데이터를 로드하려면:
- 하위 워크플로를 생성하고 Execute Sub-workflow Trigger 노드를 추가합니다.
- 노드의 입력 데이터 모드(Input data mode) 를 모든 데이터 수락(Accept all data) 으로 설정하거나, 이미 입력 항목을 알고 있다면 필드 또는 JSON을 사용하여 정의합니다.
- 하위 워크플로의 설정에서 성공한 프로덕션 실행 저장(Save successful production executions) 옵션을 저장(Save) 으로 변경합니다.
- 부모 워크플로 설정 단계로 이동하여 실행을 실행합니다.
- 이전 실행에서 데이터 로드 단계를 따릅니다.
- 필요하면 입력 데이터 모드 를 부모 워크플로에서 전송하는 입력 데이터에 맞게 조정합니다.
이제 트리거 노드에서 예제 데이터를 고정(Pin)할 수 있으며, 실제 데이터를 사용하여 워크플로를 구성할 수 있습니다.
하위 워크플로 호출하기#
- 하위 워크플로를 호출할 워크플로를 엽니다.
- Execute Sub-workflow 노드를 추가합니다.
-
Execute Sub-workflow 노드에서 호출할 하위 워크플로를 설정합니다.
워크플로를 다음 방법 중 하나로 호출할 수 있습니다.- 워크플로 ID로 호출
- 로컬 파일에서 워크플로 로드
- 노드의 매개변수로 워크플로 JSON 추가
- URL을 통해 워크플로 호출
워크플로 ID 찾기
하위 워크플로의 ID는 해당 URL의 마지막 부분에 있는 영숫자 문자열입니다.
-
하위 워크플로에서 정의한 필수 입력 항목을 입력합니다.
- 워크플로를 저장합니다.
이제 워크플로가 실행될 때 하위 워크플로로 데이터를 전송하고 실행을 진행합니다.
부모 워크플로에서 하위 워크플로 실행 흐름을 추적하려면 Execute Sub-workflow 노드에서 하위 실행 보기(View sub-execution) 링크를 선택하세요.
반대로 하위 워크플로의 실행에서 부모 워크플로 실행으로 이동할 수도 있습니다.
워크플로우 간 데이터 전송 방법#
예를 들어, 워크플로 A(Workflow A) 에 Execute Sub-workflow 노드가 있다고 가정해 보겠습니다.
이 노드는 워크플로 B(Workflow B) 를 호출합니다.
- Execute Sub-workflow 노드는 데이터를 워크플로 B 의 Execute Sub-workflow Trigger 노드(캔버스에서는 "When executed by another node"로 표시됨)로 전달합니다.
- 워크플로 B 의 마지막 노드는 처리된 데이터를 워크플로 A 의 Execute Sub-workflow 노드로 다시 반환합니다.