서브워크플로로 변환하기
서브워크플로로 변환하기
워크플로가 커지면 반복되는 부분을 서브워크플로로 쪼개 재사용하는 게 좋아요. n8n 1.97.0부터 캔버스에서 노드 몇 개를 선택해 서브워크플로로 바로 변환할 수 있습니다. 다른 노드를 참조하는 표현식도 자동으로 갱신되어 Execute Workflow Trigger 노드의 파라미터로 추가돼요.
출처: 공식문서
본문
기능 가용성: 서브워크플로 변환은 n8n 1.97.0부터 사용할 수 있습니다.
서브워크플로 변환을 사용해 워크플로를 재사용 가능한 부분으로 리팩토링하세요. 다른 노드를 참조하는 표현식은 자동으로 갱신되어 Execute Workflow Trigger 노드의 파라미터로 추가됩니다.
서브워크플로로 만들 노드 선택하기
워크플로의 일부를 서브워크플로로 변환하려면 원래 워크플로에서 변환할 노드를 선택해야 합니다.
유효한 노드 그룹을 선택하세요. 선택은 연속적이어야 하고, 많아야 하나의 시작 노드와 하나의 끝 노드로 나머지 워크플로와 연결되어야 합니다. 선택은 다음 조건을 충족해야 합니다:
- 트리거 노드를 포함하지 않아야 합니다.
- 선택 안에서 단 하나의 노드만 선택 밖의 노드에서 오는 인입 연결을 가질 수 있습니다.
- 그 노드는 여러 인입 연결을 가질 수 있지만 입력 분기는 하나뿐이어야 합니다(예: Merge 노드가 될 수 없음).
- 그 노드는 선택 안의 다른 노드로부터 인입 연결을 가질 수 없습니다.
- 선택 안에서 단 하나의 노드만 선택 밖의 노드로 나가는 연결을 가질 수 있습니다.
- 그 노드는 여러 출력 연결을 가질 수 있지만 출력 분기는 하나뿐이어야 합니다(예: If 노드가 될 수 없음).
- 그 노드는 선택 안의 다른 노드로 나가는 연결을 가질 수 없습니다.
- 선택은 입력·출력 노드 사이의 모든 노드를 포함해야 합니다.
워크플로 일부를 서브워크플로로 변환하는 방법
캔버스에서 원하는 노드를 선택하고, 캔버스 배경을 우클릭한 뒤 Convert to sub-workflow를 선택하세요.
유의할 점
대부분의 서브워크플로 변환은 문제없이 동작하지만, 주의할 점과 제한 사항이 있습니다:
- 입력·출력 타입 제약은 직접 설정해야 합니다: 기본적으로 서브워크플로 입력·출력은 모든 타입을 허용합니다. 서브워크플로의 Execute Sub-workflow Trigger 노드와 Edit Fields (set) 노드(서브워크플로에 출력이 있을 때만 포함되고 Return으로 표시)에서 예상 타입을 설정할 수 있습니다.
- AI 노드 지원 제한: AI 툴 같은 서브노드를 다룰 때는 전부 선택해야 하며, 다른 AI 에이전트와 공유하는 노드는 변환 전에 복제해야 할 수 있습니다.
- v1 실행 순서 사용: 새 워크플로는 부모 워크플로의 설정과 무관하게
v1실행 순서를 사용합니다. 설정에서 되돌릴 수 있습니다. first(),last(),all()같은 접근자 함수는 주의 필요: 이 함수를 쓰는 표현식은 서브워크플로 컨텍스트로 항상 깔끔하게 변환되진 않습니다. n8n이 기능을 보존하려 변환할 수 있지만, 새 컨텍스트에서 의도대로 동작하는지 확인해야 합니다.- 서브노드 파라미터 접미사: n8n은 이 함수들이 접근하는 변수 이름에
_firstItem,_lastItem,_allItems같은 접미사를 추가합니다. 서브워크플로 컨텍스트에서는 아이템 순서가 다를 수 있으므로 원래 표현식에 대한 정보를 보존하기 위함입니다.
- 서브노드 파라미터 접미사: n8n은 이 함수들이 접근하는 변수 이름에
itemMatching함수는 고정 인덱스가 필요합니다:itemMatching함수를 쓸 때 인덱스 값에 표현식을 사용할 수 없습니다. 고정 숫자를 전달해야 합니다.
더 알아보기
- 서브워크플로: 더 작은 조각으로 워크플로 나누기
- 실행 순서: 워크플로 노드 실행 순서 이해하기