11. n8n IF 노드 사용법: 조건에 따라 업무 흐름 나누기

문의 이메일이 구글시트에 다 저장되긴 하는데, 긴급한 문의를 뒤늦게 발견하는 일이 생겼어요. 그때 IF 노드로 "긴급"이 들어간 메일만 골라서 바로 알림을 보내는 분기를 만들었어요. 처음엔 어렵게 느껴졌는데, 막상 만들어보니 구조 자체는 단순했어요.

IF 노드는 자동화 흐름 중간에서 "이 조건에 해당하면 A로 보내고, 아니면 B로 보낸다"는 판단을 맡는 노드예요. 지금까지 Set 노드로 데이터를 정리했다면, IF 노드는 그 데이터를 기준으로 흐름을 나누는 단계예요.

이번 글에서는 IF 노드 개념, 설정 방법, 실습 구조, 그리고 처음에 자주 막히는 부분을 정리해볼게요.






IF 노드가 하는 일

IF 노드는 하나의 조건을 확인하고, 결과에 따라 데이터를 두 경로로 나눠요.

  • true 경로 — 조건에 맞는 데이터가 지나가는 길
  • false 경로 — 조건에 맞지 않는 데이터가 지나가는 길
IF 노드는 데이터를 없애는 노드가 아니에요. 조건에 따라 데이터가 지나갈 길을 나누는 노드예요. 두 경로 모두 데이터가 존재해요.

예를 들어 이메일 제목에 "긴급"이 포함되어 있는지 확인하는 조건이라면 이렇게 돼요.

TRUE 경로
조건 충족
제목에 "긴급" 포함
→ 담당자에게 즉시 알림
FALSE 경로
조건 미충족
제목에 "긴급" 없음
→ 구글시트에 일반 저장

"맞으면 true, 아니면 false." 이게 IF 노드의 전부예요. 처음에 true/false라는 단어가 낯설어도, 실제로는 "이쪽 길이냐, 저쪽 길이냐"를 나누는 것뿐이에요.

IF 노드가 필요한 상황들

단순히 데이터를 저장하는 수준을 넘으면 대부분 IF 노드가 필요해져요. 자주 쓰이는 상황은 이런 것들이에요.

  • 이메일 제목에 "긴급", "환불", "오류" 같은 단어가 포함된 경우만 알림 보내기
  • 신청 인원이 10명 이상이면 단체 문의로 분류하기
  • RSS 글 제목에 특정 키워드가 있는 것만 구글시트에 저장하기
  • 문의 상태가 "대기"인 항목만 담당자에게 알림 보내기
  • 광고 클릭 수가 0보다 클 때만 성과 보고에 포함하기

공통점은 "모든 데이터를 똑같이 처리하지 않고, 조건에 따라 다르게 처리하고 싶다"는 거예요.

IF 노드 조건 설정, 실제로 어떻게 하나?

IF 노드를 클릭하면 설정 패널이 열려요. 여기서 "무엇을 비교할지"와 "어떤 기준으로 비교할지"를 정해요.

1
비교할 값 선택 이전 노드의 Output 필드 중에서 조건을 확인할 값을 선택해요. 예: email_subject, status, people_count
2
비교 방식 선택 포함(contains), 같음(equals), 보다 큼(greater than), 비어있음(is empty) 등에서 골라요.
3
기준값 입력 비교할 기준값을 직접 입력해요. 예: "긴급", "대기", 10
4
true/false 경로에 다음 노드 연결 IF 노드 오른쪽에 true 출력 포인트와 false 출력 포인트가 따로 있어요. 각각에 다음 노드를 연결해요.
IF 노드를 설정하기 전에 이전 노드를 실행하고 Output 탭에서 필드 이름을 먼저 확인해요. IF 노드에서 email_subject로 조건을 만들었는데 항상 false로 빠진 적이 있었어요. 확인해보니 Set 노드 Output의 필드 이름이 subject였어요. 이름 하나 차이로 조건이 작동하지 않았던 거예요.

자주 쓰는 조건 유형 3가지

1. 문자 조건 — 특정 단어 포함 여부

이메일 제목이나 본문에 특정 단어가 있는지 확인해요. "contains(포함)", "equals(같음)", "starts with(시작)" 같은 비교 방식을 선택할 수 있어요.

비교할 값: email_subject
비교 방식: contains (포함)
기준값: 긴급
→ 제목에 "긴급"이 들어있으면 true

2. 숫자 조건 — 크기 비교

신청 인원, 금액, 클릭 수 같은 숫자 데이터를 기준으로 나눌 수 있어요.

비교할 값: people_count
비교 방식: greater than or equal (이상)
기준값: 10
→ 신청 인원이 10명 이상이면 true

숫자 조건에서 주의할 점이 있어요. 신청 인원을 숫자 10과 비교하는 조건을 만들었는데 이상하게 작동한 적이 있어요. 확인해보니 값이 숫자가 아니라 문자열 "10"으로 들어와 있었어요. 숫자 비교가 이상하게 작동한다면 값의 타입을 먼저 확인해야 해요.

3. 상태값 조건 — 정해진 값과 일치 여부

Set 노드에서 만든 status, inquiry_type 같은 상태값을 기준으로 나눌 수 있어요.

비교할 값: status
비교 방식: equals (같음)
기준값: 대기
→ 상태가 "대기"이면 true, 아니면 false

실습 예시 — 긴급 문의와 일반 문의 분류하기

처음에는 실제 Gmail 없이 Manual Trigger + Set 노드 + IF 노드 조합으로 연습하는 게 좋아요. 조건이 제대로 작동하는지 확인한 뒤에 실제 이메일이나 알림을 연결해요.

목표: 제목에 "긴급"이 포함되면 긴급 문의, 없으면 일반 문의로 분류

단계노드역할
1단계Manual Trigger직접 실행해서 테스트
2단계Set 노드샘플 문의 데이터 만들기
3단계IF 노드email_subject에 "긴급" 포함 여부 확인
4단계 (true)Set 노드inquiry_type = "긴급 문의" 표시
4단계 (false)Set 노드inquiry_type = "일반 문의" 표시

4단계에서 알림 노드나 Google Sheets 노드 대신 Set 노드를 연결하는 이유는, 조건 분기가 제대로 되는지 확인하는 게 먼저이기 때문이에요. 분기가 확인되면 그 뒤에 실제 알림 노드를 붙이면 돼요.

TRUE → 긴급 문의
실제 업무 연결 예시
Telegram 알림 → Google Sheets (긴급 탭 저장)
FALSE → 일반 문의
실제 업무 연결 예시
Google Sheets (일반 탭 저장)

IF vs Filter vs Switch — 언제 뭘 쓸까?

n8n에는 조건과 관련된 노드가 여러 개 있어요. 처음에 헷갈릴 수 있는 세 가지를 간단히 비교할게요.

노드역할언제 쓰나
IF 노드 true / false 두 갈래로 분기 긴급 vs 일반처럼 두 방향으로 나눌 때
Filter 노드 조건에 맞는 데이터만 통과 특정 키워드 글만 남기고 나머지 제거할 때
Switch 노드 여러 조건에 따라 여러 갈래 분기 결제·오류·제휴 등 3가지 이상 분류할 때

IF 노드는 두 갈래, Switch 노드는 세 갈래 이상이에요. 처음에는 IF 노드로 두 갈래 분기 구조를 익히고, 나중에 Switch 노드로 확장하는 순서가 좋아요.

IF 노드에서 초보자가 자주 막히는 4가지

1. true와 false 경로를 반대로 연결한다

처음에 true 경로에 일반 저장을, false 경로에 알림을 연결했는데 긴급 문의가 저장되고 일반 문의에 알림이 가는 반대 결과가 나왔어요. IF 노드 오른쪽의 true 출력 포인트와 false 출력 포인트 위치를 반드시 확인해야 해요.

2. 필드 이름이 달라서 항상 false로만 이동한다

IF 노드에서 email_subject로 조건을 만들었는데 이전 노드 Output 필드 이름이 subject인 경우, 값을 찾지 못해서 항상 false로 빠져요. 조건 설정 전에 이전 노드 Output 탭에서 실제 필드 이름을 확인해야 해요.

3. 조건을 처음부터 복잡하게 만든다

AND 조건 3개를 한꺼번에 넣었다가 항상 false가 나와서 어디가 문제인지 한참 찾은 적이 있어요. 조건 하나씩 테스트해서 작동을 확인한 뒤 조건을 추가하는 방식이 훨씬 빠르게 해결돼요.

4. 테스트 단계에서 바로 알림 노드를 연결한다

조건 분기가 제대로 되는지 확인하기 전에 Telegram이나 이메일 노드를 연결하면, 조건 실수로 불필요한 메시지가 발송될 수 있어요. true/false Set 노드로 분기 결과만 먼저 확인한 뒤 실제 알림 노드를 붙여야 해요.

IF 노드가 이상하게 작동할 때 확인 순서

  • 이전 노드 Output 탭에서 실제 필드 이름이 조건에 입력한 이름과 같은지 확인
  • 조건에 사용할 값이 비어 있지 않은지 Output에서 확인
  • 숫자 비교라면 값이 문자열이 아니라 숫자 타입인지 확인
  • true 경로와 false 경로가 의도한 방향으로 연결되어 있는지 확인
  • 조건이 여러 개라면 하나씩 테스트해서 어느 조건에서 막히는지 좁히기

IF 노드 사용 시 주의할 보안 포인트

IF 노드 조건에 사용되는 데이터가 이메일 주소, 문의 내용, 주문 금액, 결제 상태 같은 개인정보일 수 있어요. true 경로에 알림 노드를 연결할 때는 어떤 데이터가 메시지에 포함되는지 반드시 확인해야 해요.
  • 실습 중 조건 테스트는 샘플 데이터로 하기
  • 알림 메시지에 고객 이름·이메일·문의 내용이 포함된다면 수신 범위 확인하기
  • 자동 발송 전에 수동 실행으로 어떤 데이터가 어느 경로로 가는지 먼저 확인하기
  • 조건 실수로 엉뚱한 경로에 개인정보가 전달되지 않도록 테스트 철저히 하기

마무리: IF 노드는 자동화를 더 실무적으로 만드는 분기점

IF 노드는 자동화 흐름에서 "맞으면 이쪽, 아니면 저쪽"으로 길을 나누는 노드예요. 세 가지만 기억하면 돼요.

  • 비교할 값 — 이전 노드 Output의 어떤 필드를 확인할지
  • 비교 방식 — 포함, 같음, 크기 비교 등
  • true/false 경로 — 각 결과에 맞는 다음 노드를 연결

처음엔 Manual Trigger → Set 노드 → IF 노드 → 결과 확인용 Set 노드 순으로 연습하면 안전해요. 조건 분기가 제대로 되는 걸 확인한 뒤에 실제 알림 노드나 구글시트 저장 노드를 붙이는 순서가 좋아요.

IF 노드를 익히고 나면 자동화가 훨씬 실무적으로 바뀌어요. 모든 데이터를 똑같이 처리하는 게 아니라, 중요한 건 빠르게 알리고 일반적인 건 차분하게 저장하는 흐름을 만들 수 있거든요.

다음 글에서는 Schedule Trigger 사용법을 살펴볼게요. 매일 정해진 시간에 워크플로우를 자동으로 실행하는 방법을 익히면 업무 체크리스트, 정기 알림, 주간 보고 자동화로 이어갈 수 있어요.


※ 이 글은 n8n 비개발자 자동화 시리즈 11화입니다. n8n의 노드 이름과 화면 구성은 버전에 따라 달라질 수 있으며, 실제 사용 전에 공식 문서를 함께 확인해주세요.

참고자료

  • n8n Docs, IF node
  • n8n Docs, Splitting workflows with conditional nodes
  • n8n Docs, Manual Trigger node
  • n8n Docs, Edit Fields (Set) node
  • n8n Docs, Understanding the data structure
  • n8n Docs, Expressions
  • n8n Docs, Expression reference
  • n8n Docs, Filter node
  • n8n Docs, Switch node
  • n8n Docs, Filtering orders
  • n8n Docs, Executions
  • n8n Docs, Execution data redaction