n8n 첫 워크플로우 실습: 입력부터 조건 분기까지

n8n 자동화읽기 약 6분

2026년 9월 13일 내용 개정. 공식 문서와 대조해 설명과 예제를 정리했습니다. 설치 버전에 따라 화면과 옵션 이름은 달라질 수 있습니다.

처음에는 API 키나 메일 연동 없이 데이터가 어떻게 바뀌는지 확인하는 것이 좋습니다. 이 실습에서는 Manual Trigger, Code, Edit Fields (Set), IF를 연결합니다. 외부로 메시지를 보내거나 문서를 발행하지 않고, 가상의 교육 신청 3건을 분류합니다.

이 글에서 확인할 내용: 가상 신청 3건으로 이름을 정리하고 IF의 확인 필요 분기와 정상 분기를 비교합니다. 대표 사진과 본문 사진은 작업 환경 참고용입니다. 대표 사진: Mohammad Rahmani / Unsplash.

노트북과 외부 화면으로 개발하는 작업 공간
노트북과 외부 화면으로 개발하는 작업 공간. 자동화·개발 작업 환경을 보여주는 참고 사진이며 실제 n8n 실행 화면은 아닙니다. 사진: Jefferson Santos / Unsplash

1. 새 워크플로우와 가상 입력 만들기

새 워크플로우에 Manual Trigger를 추가한 뒤 Code 노드를 연결하고 이름을 Sample로 바꿉니다. Language는 JavaScript, Mode는 Run Once for All Items를 선택한 후 다음 코드를 입력합니다.

return [
  { json: { applicationId: "A101", name: "민준", course: "엑셀 기초" } },
  { json: { applicationId: "A102", name: "  ", course: "PPT 기초" } },
  { json: { applicationId: "A103", name: "서연", course: "엑셀 기초" } }
];

워크플로우를 수동 실행하면 Sample의 Output에 3개 아이템이 보여야 합니다. 각 아이템의 applicationId, name, course를 JSON 보기로 확인하세요. Code 노드에 코드를 붙여 넣는 단계와 다른 노드의 표현식 필드에 값을 입력하는 단계는 서로 다릅니다.

2. 이름을 정리하는 Edit Fields 추가

Sample 뒤에 Edit Fields (Set)를 추가하고 Manual Mapping으로 설정합니다. Include Other Input Fields를 켜서 신청번호와 교육명도 유지합니다. 아래 필드를 추가하고 값 입력을 Expression 모드로 전환하세요. 필드 유지 옵션은 Edit Fields 공식 설명을 참고할 수 있습니다.

새 필드유형표현식
cleanNameString{{ String($json.name ?? ”).trim() }}
needsReviewBoolean{{ String($json.name ?? ”).trim().length === 0 }}

A101의 cleanName은 민준, needsReview는 false입니다. A102는 공백이 제거되어 cleanName이 빈 문자열, needsReview가 true가 되어야 합니다. A103은 서연과 false입니다. 결과가 문자 그대로 {{ … }}로 보인다면 Fixed 입력 상태인지 확인하세요.

3. IF로 확인이 필요한 신청 분류

Edit Fields 뒤에 IF를 연결합니다. Boolean 조건에서 왼쪽 값을 {{ $json.needsReview }}로 지정하고 is true를 선택합니다. true 출력은 확인 필요 신청, false 출력은 정상 신청으로 해석합니다.

출력예상 건수예상 신청번호
true1건A102
false2건A101, A103

두 출력의 건수 합계가 입력 3건과 일치하는지 확인하세요. IF 뒤에서 다른 작업을 연결하려면 출력 포트 라벨을 먼저 확인해야 합니다. 선의 위아래 위치만 보고 정상 분기를 정하지 마세요.

동료와 나란히 화면의 코드를 검토하는 모습
동료와 나란히 화면의 코드를 검토하는 모습. 자동화·개발 작업 환경을 보여주는 참고 사진이며 실제 n8n 실행 화면은 아닙니다. 사진: Compagnons / Unsplash

4. 실패 사례로 결과 확인하기

  • A101의 name을 지우고 실행하면 true가 2건이 되는지 확인합니다.
  • A102의 name을 지수로 바꾸면 true는 0건, false는 3건이 되는지 확인합니다.
  • Include Other Input Fields를 끄면 applicationId가 출력에서 빠지는지 확인한 뒤 다시 켭니다.
  • 이전 결과가 그대로 보이면 입력 노드의 고정 데이터(Pin data)를 사용 중인지 확인합니다.

true가 0건인 경우 그 분기 뒤의 노드가 실행되지 않는 것은 오류가 아닐 수 있습니다. 실행 기록에서 입력이 없었던 것인지, 실행 중 실패한 것인지 구분하는 습관이 필요합니다.

화면의 코드를 집중해서 확인하는 사람
화면의 코드를 집중해서 확인하는 사람. 자동화·개발 작업 환경을 보여주는 참고 사진이며 실제 n8n 실행 화면은 아닙니다. 사진: charlesdeluvio / Unsplash

5. 자동 실행으로 확장할 때

Manual Trigger 실습은 버튼을 눌렀을 때만 실행됩니다. 정기 실행에는 Schedule Trigger, 외부 요청에는 Webhook 등 다른 시작점이 필요합니다. 현재 공식 안내는 편집 내용 저장과 운영 버전 Publish를 구분합니다. 설치 버전에 따라 예전 Active 표시가 보일 수 있으므로 저장·게시 안내와 자신의 화면을 확인하세요.

실제 신청 데이터로 바꾸기 전에는 중복 신청번호 처리와 누락 데이터 보관 방법을 정합니다. 이 실습의 needsReview는 이름의 빈칸 여부만 확인하므로, 전화번호·신청 자격·중복 여부까지 검증했다고 해석해서는 안 됩니다.

검증 범위: 아래 결과는 가상 입력과 JavaScript 계산에 따른 예상값입니다. 실제 n8n 화면 캡처나 외부 서비스 연동을 수행한 체험담은 아닙니다.

함께 읽을 실습

n8n Docker 설치: 로컬 실습 환경과 데이터 보존 설정
n8n 아이템이란? JSON 배열과 여러 아이템의 차이