본문으로 건너뛰기

서브워크플로

하나의 워크플로 내에서 다른 워크플로를 호출할 수 있습니다. 이를 통해 마이크로서비스 스타일의 모듈화된 워크플로 구조를 구성할 수 있습니다. 또한 워크플로 규모가 너무 커져 메모리 문제가 발생할 경우, 이를 효과적으로 분할하는 방법이기도 합니다. 서브워크플로를 생성하고 호출하려면 Execute Sub-workflow 노드와 Execute Sub-workflow Trigger 노드를 사용해야 합니다.

서브워크플로의 실행 횟수는 귀하의 플랜에 포함된 월간 실행 한도 또는 활성 워크플로 수 제한에 포함되지 않습니다.

서브워크플로 설정 및 사용 방법

이 섹션에서는 부모 워크플로와 서브워크플로를 동시에 설정하는 방법을 설명합니다.

서브워크플로 생성하기

  1. 새 워크플로를 생성합니다.

기존 워크플로에서 서브워크플로 생성하기

기존 부모 워크플로 내에서 Execute Sub-workflow 노드를 통해 직접 서브워크플로를 생성할 수도 있습니다. 노드 설정에서 데이터베이스목록에서 선택을 클릭한 후, 목록에서 서브워크플로 생성을 선택하세요.

또는 오른쪽 클릭 메뉴의 서브워크플로 변환 기능을 사용해 선택한 노드를 바로 서브워크플로로 추출할 수도 있습니다.

  1. (선택 사항) 이 서브워크플로를 호출할 수 있는 워크플로를 지정합니다:
    1. 옵션 옵션 메뉴 메뉴 > 설정을 클릭하여 워크플로 설정 팝업 창을 엽니다.
    2. 다음에서 이 워크플로 호출 가능 설정을 수정합니다. 자세한 설정 정보는 워크플로 설정 문서를 참조하세요.
  2. Execute Sub-workflow Trigger 노드를 추가합니다. (트리거 노드 검색 시 "다른 워크플로에서 실행될 때"로 표시됩니다.)
  3. 입력 데이터 모드를 설정하여 서브워크플로의 입력 데이터를 정의하는 방식을 선택합니다:
    • 아래 필드로 정의: 이 모드를 선택하면 호출 측 워크플로가 제공해야 하는 개별 입력 항목의 이름과 데이터 유형을 정의합니다. 호출 측의 Execute Sub-workflow 노드 또는 Call n8n Workflow Tool 노드는 여기 정의된 필드를 자동으로 인식합니다.
    • JSON 예시로 정의: 이 모드를 선택하면 예상되는 입력 항목과 그 유형을 보여주는 JSON 객체 예시를 제공합니다.
    • 모든 데이터 허용: 이 모드를 선택하면 전달되는 모든 데이터를 무조건 수락합니다. 서브워크플로는 필수 입력 항목을 정의하지 않으며, 입력 데이터의 불일치나 누락된 값은 자체적으로 처리해야 합니다.
  4. 필요에 따라 다른 노드를 추가하여 서브워크플로 기능을 완성합니다.
  5. 서브워크플로를 저장합니다.

⚠️ 서브워크플로에는 오류가 없어야 합니다

서브워크플로에 오류가 있으면 부모 워크플로에서 이를 실행할 수 없습니다.

서브워크플로 구성 전에 데이터 로드하기

이 기능은 과거 실행 기록에서 데이터를 로드할 수 있어야 하며, n8n Cloud 및 등록된 커뮤니티 플랜에서 사용할 수 있습니다.

서브워크플로를 구성하기 전에 먼저 데이터를 로드하고 싶다면:

  1. 서브워크플로를 생성하고 Execute Sub-workflow Trigger 노드를 추가합니다.
  2. 노드의 입력 데이터 모드모든 데이터 허용으로 설정하거나, 알려진 입력 항목이 있다면 필드 또는 JSON으로 정의합니다.
  3. 서브워크플로 설정에서 성공한 프로덕션 실행 저장 옵션을 **'저장'**으로 변경합니다.
  4. 부모 워크플로 설정으로 이동하여 실행합니다.
  5. 과거 실행 기록에서 데이터를 로드하는 단계를 따릅니다.
  6. 필요 시, 부모 워크플로가 전달하는 입력과 일치하도록 입력 데이터 모드를 조정합니다.

이제 트리거 노드에서 예제 데이터를 고정하여 워크플로 나머지 부분을 실제 데이터로 개발할 수 있습니다.

서브워크플로 호출하기

  1. 서브워크플로를 호출하고자 하는 부모 워크플로를 엽니다.
  2. Execute Sub-workflow 노드를 추가합니다.
  3. Execute Sub-workflow 노드에서 호출할 서브워크플로를 설정합니다. 워크플로 ID, 로컬 파일에서 워크플로 로드, 노드 파라미터로 워크플로 JSON 직접 전달, 또는 URL로 대상 워크플로를 지정할 수 있습니다.

워크플로 ID 찾는 방법

서브워크플로의 ID는 해당 워크플로 URL 끝부분에 있는 알파벳과 숫자로 구성된 문자열입니다.

  1. 서브워크플로에서 정의한 필수 입력 항목을 작성합니다.
  2. 워크플로를 저장합니다.

워크플로를 실행하면 데이터가 서브워크플로로 전송되어 해당 워크플로가 실행됩니다.

Execute Sub-workflow 노드를 열고 서브 실행 보기 링크를 클릭하면 부모 워크플로에서 서브워크플로로 이어지는 실행 흐름을 추적할 수 있습니다. 마찬가지로, 서브워크플로의 실행 기록에도 부모 워크플로 실행 기록으로 연결되는 링크가 포함되어 있어 양방향 탐색이 가능합니다.

워크플로 간 데이터 전달 방식

구체적인 예시로 설명하겠습니다: 워크플로 A에 있는 Execute Sub-workflow 노드가 워크플로 B라는 다른 워크플로를 호출한다고 가정합니다.

  1. Execute Sub-workflow 노드는 데이터를 워크플로 BExecute Sub-workflow Trigger 노드(캔버스 상에서는 "다른 노드에서 실행될 때"로 표시됨)로 전달합니다.
  2. 워크플로 B의 마지막 노드는 처리 결과 데이터를 다시 워크플로 AExecute Sub-workflow 노드로 반환합니다.

서브워크플로 변환

기존 워크플로를 서브워크플로로 분할하는 방법에 대해서는 서브워크플로 변환 문서를 참조하세요.