n8n을 본격적으로 사용하기 전에 전체 구조를 먼저 이해해두면, 워크플로를 설계하거나 문제를 해결할 때 훨씬 수월합니다. 여기서는 앞에서 간략히 언급했던 워크플로와 노드라는 개념이 무엇인지, 그리고 이를 실제로 다룰 때 화면의 어떤 부분에서 어떤 설정을 조작하는지까지 전체적인 구조를 살펴보겠습니다.
[01] 워크플로란?
워크플로는 n8n에서 자동화 프로세스를 구성하는 기본 단위입니다. 하나의 워크플로는 여러 개의 작업 단계를 순차적으로 연결하여 하나의 자동화 흐름을 만드는 것으로, 각 단계는 하나의 노드로 표현합니다.
워크플로는 보통 트리거 노드부터 시작됩니다. 트리거는 워크플로를 실행하는 조건이나 신호로, ‘매일 아침 9시에 실행’, ‘웹훅이 호출되었을 때 실행’, ‘특정 이메일이 도착했을 때 실행’ 등이 여기에 해당합니다. 트리거로 시작된 워크플로는 이후 데이터를 가져오거나 외부 서비스를 호출하는 노드로 이어지고, 마지막에는 메시지를 전송하거나 파일로 저장 또는 결과를 기록하는 등의 마무리 작업을 수행하며 종료됩니다.
한 번 만든 워크플로는 계속해서 재사용할 수 있고 각 워크플로는 서로 독립적으로 작동하므로 여러 개를 만들어도 충돌 없이 운용할 수 있습니다. 따라서 필요한 자동화 작업을 목적별로 나누어 각 워크플로로 설계하는 것이 좋습니다.
<한 걸음 더!> 샘플 워크플로 참고하기
워크플로를 처음부터 만드는 것이 어렵게 느껴진다면 n8n에서 제공하는 워크플로 템플릿Templates을 활용할 수도 있습니다. 화면 왼쪽 아래에 상자 모양의 [Templates] 버튼을 클릭하면 n8n 공식 템플릿 페이지로 이동할 수 있습니다.
n8n 공식 템플릿 페이지는 4,000개가 넘는 검증된 워크플로 템플릿을 제공하며, 버튼 한 번으로 자신의 n8n 환경에 그대로 복사해올 수 있습니다. 각 템플릿은 워크플로의 전체 구조와 모든 노드 설정을 포함하기 때문에 템플릿을 열어보면 구조를 분석하고 동작 방식을 이해할 수 있습니다. 또한 일부 템플릿에는 노드마다 사용법이나 설명이 메모 형태로 포함되어 있어 처음 접하는 사용자도 각 노드가 어떤 역할을 하는지 쉽게 이해할 수 있습니다. 템플릿은 그대로 실행해 활용할 수도 있고, 필요한 부분만 수정해 자신의 업무 흐름에 맞게 커스터마이징할 수도 있습니다.
인기 있는 템플릿으로는 Gmail에 새 메일이 도착하면 자동으로 슬랙 채널에 알림을 보내는 워크플로(Auto-Categorize Gmail Emails with AI and Send Prioritized Slack Alerts)나 줌 회의 내용을 AI로 요약해서 참석자들에게 이메일로 전송하는 워크플로(Zoom AI Meeting Assistant creates mail summary, ClickUp tasks and follow-up call)가 있습니다. 이런 템플릿을 살펴보면 해당 템플릿을 사용하지 않더라도 워크플로 설계에 대한 감을 익힐 수 있습니다. 또, 업무 자동화 아이디어도 얻을 수도 있기 때문에 참고용으로 여러 템플릿을 둘러보는 것도 추천합니다.
[02] 노드와 연결
워크플로의 각 단계는 노드라고 불리는 단위 작업으로 구성됩니다. 각 노드는 특정한 기능을 담당하는 작은 프로그램과 같습니다. n8n에서 제공하는 다양한 종류의 노드들을 조합하면 높은 차원의 흐름을 만들 수 있습니다. 노드는 역할에 따라 크게 3가지로 나뉩니다.
트리거 노드: 워크플로를 시작하는 조건이나 신호
로직 노드: 흐름을 제어하거나 데이터를 가공
액션 노드: 실제 작업을 수행
워크플로는 트리거 노드가 설정된 조건에 따라 시작되고, 이어서 로직 노드가 데이터를 처리한 뒤 액션 노드가 필요한 작업을 수행하는 방식으로 진행됩니다.
여기서는 편의상 3가지 노드로 분류했지만, 노드의 종류는 매우 다양합니다. n8n에서 공식적으로 제공하는 노드 외에도 전 세계 사용자들이 만든 커뮤니티 노드도 사용할 수 있습니다. 그리고 이런 액션 노드들 사이에 조건을 나누거나 반복을 설정하는 로직 노드를 추가할 수 있습니다. 로직 노드는 IF, Switch, Wait, Loop와 같이 워크플로에 복잡한 조건을 만들거나 데이터를 변환하는 작업을 합니다.
개별 노드를 더 자세히 살펴볼까요? 각 노드는 기본적으로 입력 포트Input와 출력 포트Output를 가집니다. 입력 포트에서 이전 노드의 데이터를 받아 작업을 수행한 뒤 출력 포트로 결과를 다음 노드에 전달합니다.
입력 포트와 출력 포트는 캔버스의 노드에서 다음과 같은 형태로 표시됩니다.
노드 출력 포트 옆에 나타나는 ➊ [+] 버튼을 클릭해 새로운 노드를 추가하기 때문에 추가된 노드는 자동으로 앞선 노드와 화살표로 연결됩니다. 노드 간 연결선 위에 마우스를 올리면 ➋ [+]와 ➌ [휴지통] 아이콘이 나타나며, 노드 사이에 새 노드를 추가하거나 연결을 삭제할 수 있습니다.
떨어진 노드를 연결하고 싶다면 노드의 출력 포트를 클릭한 채로 다음 노드로 드래그 앤 드롭하면 됩니다.
이와 같이 연결선을 따라 데이터가 이전 노드에서 다음 노드로 전달되며, 각 노드는 전달받은 데이터를 기반으로 설정된 매개변수에 따라 작업을 수행합니다. 매개변수란 이 노드에서 어떤 작업을 수행할지를 결정하는 주요 설정값입니다. 요청할 URL, 사용할 계정, 반복 횟수, 필터 조건 등이 여기에 포함됩니다.
[03] 워크플로 구조 이해하기
기본적으로 n8n에서는 노드들이 연결된 순서대로 하나씩 실행됩니다. 앞선 노드가 실행되고, 그 결과가 다음 노드로 전달되면 그 노드가 이어서 작동하는 식입니다. 예를 들어 ‘구글 시트에서 데이터를 불러오는 노드’ 다음에 ‘슬랙으로 전송하는 노드’를 연결하면 먼저 시트에서 데이터를 읽고 나서 그 값을 가지고 슬랙 메시지를 보내는 순서로 실행됩니다.
노드가 나열된 위치를 기반으로 실행 순서를 보면 기본적으로 노드들이 왼쪽에서 오른쪽, 위에서 아래 순서로 실행됩니다. 즉 먼저 연결된 노드가 먼저 실행되고, 같은 시점에 여러 노드가 연결되어 있으면 위에 있는 노드가 먼저, 그다음 아래쪽 노드가 실행됩니다.
중간에 IF 노드나 Switch 노드와 같은 특수 노드를 사용하면 조건에 따라 두 갈래로 나뉘는 흐름을 만들 수도 있습니다. 예를 들어 조건이 참일 때만 슬랙에 알림을 보내고, 거짓이면 이메일로 보고서를 보내는 흐름을 만드는 것이죠.
또는 오류가 발생했을 때 별도의 경로를 구성하는 방식에서도 분기를 만들 수 있습니다. n8n에서는 어떤 노드에서 오류가 발생하면 기본적으로 그 지점에서 워크플로가 멈춥니다. 하지만 오류 상황에 따라 별도의 경로를 구성해두면 문제가 생겼을 때 다른 노드로 흐름을 전환하거나, 관리자에게 알림을 보내는 등의 대응을 할 수 있습니다. 조건에 따라 분기되는 워크플로는 뒤에서 다시 한번 다루겠습니다.
[04] 워크플로 실행 및 결과 확인하기
완성된 워크플로를 실제로 작동시킬 때는 해당 워크플로 캔버스 오른쪽 위에 있는 [Inactive] 버튼을 눌러서 활성화하면 됩니다. 이렇게 활성화하면 실제 시작 노드로 설정되어 있는 조건에 따라서 전체 워크플로가 동작합니다. 활성화된 워크플로는 다시 비활성하지 않으면 계속 작동하기 때문에 사용하지 않을 때는 반드시 다시 버튼을 클릭하여 비활성화합니다.
워크플로 전체를 테스트용으로 한 번 실행할 때는 캔버스 아래의 [Execute workflow]를 클릭합니다. 이 버튼은 테스트용 시작 버튼이기 때문에 시작 노드가 어떤 트리거로 선택되어 있는지와 관계없이 현재 시점에서 워크플로가 바로 실행됩니다.
워크플로 전체를 테스트하지 않고 하나의 개별 노드를 단독으로 실행해보는 것도 가능합니다. 노드를 더블클릭하여 설정 패널을 열고 상단에 있는 [Execute step] 버튼을 누르면 그 노드만 따로 실행할 수 있습니다.
워크플로가 실행되고 나면 각 노드의 입력값과 출력 결과를 하나씩 확인할 수 있습니다. 앞에서 설명한 것처럼 노드 설정 패널의 왼쪽에는 Input 탭이, 오른쪽에는 Output 탭이 나타납니다. 이 탭들을 통해 어떤 데이터가 들어왔고 어떤 결과가 나갔는지를 시각적으로 확인할 수 있습니다.
n8n의 모든 데이터는 기본적으로 JSON 형식으로 처리됩니다. 노드 하나가 실행되면 그 노드의 출력 결과가 JSON 형식으로 만들어지고, 다음 노드의 입력으로 자동 전달됩니다.
데이터는 단순한 텍스트나 숫자뿐 아니라, 배열처럼 여러 항목을 가진 구조일 수도 있습니다. 예를 들어 구글 시트에서 여러 줄의 데이터를 가져오면, 각 줄이 하나의 JSON 객체가 되고, 이 객체들이 모여 배열 형태로 전달됩니다. 다음 노드에서는 이 배열을 반복 처리하거나, 조건에 따라 특정 항목만 골라내는 작업을 할 수 있습니다.
모든 워크플로 실행 결과는 자동으로 기록됩니다. 캔버스 상단의 [Executions] 탭을 클릭하면 지금까지 실행된 모든 기록이 시간순으로 정리되어 있습니다. 각 항목을 클릭하면 해당 실행이 성공했는지 실패했는지, 어느 노드에서 오류가 났는지, 얼마나 시간이 걸렸는지를 하나씩 살펴볼 수 있습니다. 특정 노드에서 문제가 생겼다면, 노드를 클릭했을 때 오류 메시지와 오류 발생 위치가 함께 표시됩니다. 이 정보를 바탕으로 어떤 설정이 잘못되었는지, 자료 형식에 문제가 있는 건지 등을 파악해 수정할 수 있습니다.
최신 버전의 n8n에는 워크플로 창 상단에 Evaluations라는 기능이 새로 추가되었습니다. 이 메뉴는 AI를 사용하는 워크플로에 대해 테스트 데이터셋을 돌려보고 정답 대비 출력을 비교하여 메트릭을 산출하는 등 모델이나 노드의 성능을 실험적으로 평가할 수 있도록 만든 기능입니다.
따라서 출력이 매번 달라질 수 있는 AI 기반 워크플로에 한해 이 Evaluations 기능이 필요하며, 결과가 일정한 단순 자동화 워크플로에서는 굳이 이 기능을 쓸 필요는 없습니다. 또한 최신 버전에 서만 제공하는 베타 기능이기 때문에 최신 버전으로 업데이트하지 않은 경우 이 기능을 사용할 수 없습니다.
