금. 8월 15th, 2025

G: 안녕하세요, 자동화와 노코드 도구에 관심이 많으신 여러분! 🚀 오늘은 n8n의 핵심 중의 핵심, 바로 ‘If 노드’에 대해 초보자도 쉽게 이해하고 활용할 수 있도록 자세히 설명해 드릴 거예요. If 노드는 워크플로우의 흐름을 제어하는 데 필수적인 요소로, 여러분의 자동화를 훨씬 더 똑똑하고 유연하게 만들어 줄 마법 같은 존재랍니다. ✨

이 글을 통해 If 노드의 기본 개념부터 심화 활용까지, 10가지 실제 시나리오와 함께 생생하게 배워볼까요?


1. n8n If 노드, 왜 중요할까요? 🤔

n8n(n8n.io)은 다양한 웹 서비스와 앱을 연결하여 작업을 자동화하는 오픈 소스 워크플로우 자동화 도구입니다. 이 과정에서 우리는 단순히 순서대로 작업을 실행하는 것을 넘어, 특정 조건에 따라 다른 행동을 취해야 할 때가 많아요. 예를 들어, “이메일 제목에 ‘긴급’이라는 단어가 있으면 슬랙으로 알림을 보내고, 아니면 일반 처리하라”와 같은 조건부 로직 말이죠.

바로 이때 If 노드가 등장합니다! If 노드는 입력된 데이터(정보)를 기반으로 특정 조건을 검사하고, 그 조건이 참(True)인지 거짓(False)인지에 따라 워크플로우의 흐름을 두 갈래로 나누는 역할을 해요. 마치 길을 가다가 “오른쪽으로 갈까? 왼쪽으로 갈까?”를 결정하는 이정표와 같다고 생각하시면 됩니다. 🧭


2. If 노드의 기본 구조 파헤치기 🔬

n8n 워크플로우에 If 노드를 추가하면, 다음과 같은 주요 설정들을 볼 수 있습니다.

2.1. 입력(Input) 데이터: 무엇을 검사할 것인가?

If 노드는 이전 노드에서 넘어온 데이터를 검사합니다. 예를 들어, Gmail 노드에서 받은 이메일의 제목, 본문, 발신자 등의 정보가 입력 데이터가 될 수 있죠. 우리는 이 데이터 중 특정 값({{ $json.propertyName }} 형태로 참조)을 선택하여 조건을 걸게 됩니다.

2.2. 조건(Conditions) 설정: 어떤 기준으로 판단할 것인가?

이 부분이 If 노드의 핵심입니다. 조건을 설정할 때는 주로 세 가지 요소를 조합합니다.

  1. 값 1 (Value 1): 검사할 대상 값입니다. 주로 이전 노드에서 넘어온 데이터를 표현식(Expression)으로 참조합니다. 예: {{ $json.emailSubject }} (이메일 제목)
  2. 연산자 (Operation): 값 1과 값 2를 어떻게 비교할지 결정합니다. 다양한 연산자가 제공됩니다.
    • 문자열(String): Equals(같음), Not Equals(같지 않음), Contains(포함), Starts With(시작), Ends With(끝), Is Empty(비어있음), Is Not Empty(비어있지 않음) 등
    • 숫자(Number): Equals, Not Equals, Greater Than(보다 큼), Greater Than Or Equal(크거나 같음), Less Than(보다 작음), Less Than Or Equal(작거나 같음) 등
    • 불리언(Boolean): Is True(참), Is False(거짓)
    • 날짜(Date): After(이후), Before(이전), Between(사이) 등
    • 정규식(Regex): 특정 패턴 매칭 🔍
  3. 값 2 (Value 2): 비교할 기준 값입니다. 직접 입력하거나, 또 다른 표현식으로 참조할 수 있습니다. 예: "긴급", 10000, true

2.3. 논리 그룹 (AND / OR): 여러 조건을 조합하기 🤝

때로는 하나의 조건만으로는 부족할 수 있습니다. If 노드에서는 여러 조건을 AND 또는 OR로 묶어 복합적인 판단을 내릴 수 있습니다.

  • AND (모두 참): 모든 조건이 동시에 참이어야 전체 조건이 참이 됩니다. (예: 금액이 10000원 이상 AND 주문 수량이 5개 이상)
  • OR (하나라도 참): 여러 조건 중 하나라도 참이면 전체 조건이 참이 됩니다. (예: 주문 상태가 '취소됨' OR 주문 상태가 '환불됨')

2.4. 출력 (Output): 참(True)과 거짓(False) ➡️

조건을 설정하고 나면, If 노드는 두 개의 출력 브랜치(Branch)를 가집니다.

  • True (참): 조건이 만족되었을 때 실행될 다음 노드를 연결합니다.
  • False (거짓): 조건이 만족되지 않았을 때 실행될 다음 노드를 연결합니다.

3. n8n If 노드 10가지 활용 시나리오 (예시와 함께!) 💡

자, 이제 실생활과 업무에서 If 노드를 어떻게 활용할 수 있는지 10가지 시나리오를 통해 자세히 알아봅시다!


📌 시나리오 1: 중요 이메일 자동 분류 및 알림 📧

  • 문제: 중요한 이메일이 너무 많아 놓치기 쉽고, 매번 수동으로 확인해야 합니다.
  • 활용: 특정 키워드를 포함한 이메일만 슬랙으로 알림을 보내고, 나머지는 일반 받은 편지함으로 처리합니다.
  • If 노드 설정:
    • 값 1: {{ $json.subject }} (이메일 제목)
    • 연산자: String: Contains
    • 값 2: "긴급" 또는 "중요"
  • 워크플로우: Gmail 노드 -> If 노드
    • True 브랜치: Slack 노드 (긴급 알림 발송)
    • False 브랜치: (일반 이메일 처리, 필요시 다른 노드 연결)

📌 시나리오 2: 리드(Lead) 자격 검증 및 할당 💰

  • 문제: 들어오는 잠재 고객(리드) 중 가치가 높은 리드를 자동으로 구분하여 적절한 영업 담당자에게 배정하고 싶습니다.
  • 활용: 리드의 예상 예산이 일정 금액 이상이거나 특정 산업군에 속하는지 확인합니다.
  • If 노드 설정:
    • 조건 그룹 1 (AND):
      • 값 1: {{ $json.budget }} (예상 예산) / 연산자: Number: Greater Than Or Equal / 값 2: 100000 (10만 원)
      • 값 1: {{ $json.industry }} (산업군) / 연산자: String: Equals / 값 2: "IT"
  • 워크플로우: 웹훅(폼 제출) -> If 노드
    • True 브랜치: CRM 노드 (고가치 리드로 할당)
    • False 브랜치: CRM 노드 (일반 리드로 할당)

📌 시나리오 3: 주문 금액에 따른 배송 정책 적용 📦

  • 문제: 주문 금액이 일정 수준 이상이면 무료배송을 적용하고, 그렇지 않으면 표준 배송을 적용해야 합니다.
  • 활용: 총 주문 금액을 확인하여 무료배송 여부를 결정합니다.
  • If 노드 설정:
    • 값 1: {{ $json.totalAmount }} (총 주문 금액)
    • 연산자: Number: Greater Than Or Equal
    • 값 2: 50000 (5만 원)
  • 워크플로우: 전자상거래 플랫폼 노드 (새 주문) -> If 노드
    • True 브랜치: 배송 시스템 노드 (무료 배송 옵션)
    • False 브랜치: 배송 시스템 노드 (표준 배송 옵션)

📌 시나리오 4: 콘텐츠 게시 상태에 따른 알림 ✍️

  • 문제: 블로그 글이 ‘게시됨’ 상태로 변경되면 자동으로 소셜 미디어에 공유하고 싶습니다.
  • 활용: 콘텐츠의 상태 값을 확인하여 게시 여부를 판단합니다.
  • If 노드 설정:
    • 값 1: {{ $json.status }} (콘텐츠 상태)
    • 연산자: String: Equals
    • 값 2: "published"
  • 워크플로우: CMS 노드 (콘텐츠 업데이트) -> If 노드
    • True 브랜치: Twitter 노드, Facebook 노드 (소셜 미디어 공유)
    • False 브랜치: (아무것도 하지 않음 또는 다른 처리)

📌 시나리오 5: 주말/평일 알림 분리 🗓️

  • 문제: 주말에는 업무 관련 알림을 보내고 싶지 않거나, 다른 내용의 알림을 보내고 싶습니다.
  • 활용: 현재 요일을 확인하여 주말인지 평일인지 구분합니다.
  • If 노드 설정:
    • 값 1: {{ $now.getDay() }} (현재 요일을 숫자로 가져옴, 0=일요일, 1=월요일…)
    • 연산자: Number: Equals
    • 값 2: (일요일)
    • OR 그룹:
      • 값 1: {{ $now.getDay() }}
      • 연산자: Number: Equals
      • 값 2: 6 (토요일)
  • 워크플로우: 스케줄 노드 (매일 실행) -> If 노드
    • True 브랜치: Slack 노드 (주말 특별 알림)
    • False 브랜치: Slack 노드 (평일 업무 알림)

📌 시나리오 6: 첨부 파일 유형별 처리 📂

  • 문제: 이메일이나 폼을 통해 받은 첨부 파일 중 PDF 파일만 따로 저장하고 싶습니다.
  • 활용: 첨부 파일의 확장자를 확인하여 PDF 파일인지 판단합니다.
  • If 노드 설정:
    • 값 1: {{ $json.fileName }} (첨부 파일명)
    • 연산자: String: Ends With
    • 값 2: ".pdf"
  • 워크플로우: 이메일 노드 (새 첨부 파일) -> If 노드
    • True 브랜치: Google Drive 노드 (PDF 파일 저장)
    • False 브랜치: (다른 유형의 파일 처리 또는 무시)

📌 시나리오 7: 사용자 역할에 따른 접근 권한 제어 👑

  • 문제: 웹사이트나 시스템에 로그인하려는 사용자의 역할에 따라 다른 페이지나 기능을 보여주고 싶습니다.
  • 활용: 사용자 데이터의 ‘역할(role)’ 값을 확인하여 관리자 여부를 판단합니다.
  • If 노드 설정:
    • 값 1: {{ $json.userRole }} (사용자 역할)
    • 연산자: String: Equals
    • 값 2: "admin"
  • 워크플로우: 인증 노드 (로그인 성공) -> If 노드
    • True 브랜치: 웹사이트 리디렉션 노드 (관리자 페이지)
    • False 브랜치: 웹사이트 리디렉션 노드 (일반 사용자 페이지)

📌 시나리오 8: 폼 제출 시 필수 필드 유효성 검사 📝

  • 문제: 사용자로부터 받은 폼 데이터 중 필수 필드가 누락되었는지 자동으로 확인하고, 누락 시 알림을 보내고 싶습니다.
  • 활용: 특정 필드의 값이 비어있는지 검사합니다.
  • If 노드 설정:
    • 조건 그룹 1 (AND):
      • 값 1: {{ $json.name }} / 연산자: String: Is Not Empty
      • 값 1: {{ $json.email }} / 연산자: String: Is Not Empty
      • 값 1: {{ $json.message }} / 연산자: String: Is Not Empty
  • 워크플로우: 웹훅 (폼 제출) -> If 노드
    • True 브랜치: 데이터베이스 노드 (유효한 데이터 저장)
    • False 브랜치: 이메일 노드 (폼 작성자에게 오류 알림), Slack 노드 (내부 담당자에게 알림)

📌 시나리오 9: API 응답 상태 코드에 따른 오류 처리 ✅/❌

  • 문제: 외부 API를 호출한 후 응답이 성공(200 OK)이 아닌 경우에만 오류 알림을 받고 싶습니다.
  • 활용: API 응답의 상태 코드(Status Code)를 확인합니다.
  • If 노드 설정:
    • 값 1: {{ $json.statusCode }} (API 응답 상태 코드)
    • 연산자: Number: Not Equals
    • 값 2: 200
  • 워크플로우: HTTP Request 노드 (API 호출) -> If 노드
    • True 브랜치: Slack 노드 또는 이메일 노드 (API 오류 알림)
    • False 브랜치: 데이터베이스 노드 (성공적인 API 응답 처리)

📌 시나리오 10: 고객 지원 문의 내용 키워드 분석 💬

  • 문제: 고객 지원 채널로 들어오는 문의 중 ‘환불’ 또는 ‘취소’와 같은 특정 키워드를 포함하는 문의를 우선 처리하고 싶습니다.
  • 활용: 고객 문의 내용에서 특정 키워드가 포함되어 있는지 검사합니다.
  • If 노드 설정:
    • 값 1: {{ $json.customerMessage }} (고객 문의 내용)
    • 연산자: String: Contains
    • 값 2: "환불"
    • OR 그룹:
      • 값 1: {{ $json.customerMessage }}
      • 연산자: String: Contains
      • 값 2: "취소"
  • 워크플로우: 고객 지원 플랫폼 노드 (새 문의) -> If 노드
    • True 브랜치: CRM 노드 (우선순위 높게 설정), Slack 노드 (긴급 알림)
    • False 브랜치: CRM 노드 (일반 문의로 처리)

4. If 노드 활용 시 유용한 팁 ✨

  • 간단하게 시작하기: 처음부터 복잡한 조건을 만들기보다, 간단한 조건으로 시작하여 점차 확장해나가는 것이 좋습니다.
  • 테스트 또 테스트! 🧪 워크플로우를 활성화하기 전에, 반드시 ‘테스트 워크플로우’ 기능을 사용하여 If 노드가 의도한 대로 작동하는지 확인하세요. 다양한 케이스의 더미 데이터를 넣어보는 것이 중요합니다.
  • 명확한 이름 사용: If 노드 이름이나 조건 설명을 명확하게 작성하여 나중에 워크플로우를 수정하거나 다른 사람이 볼 때 쉽게 이해할 수 있도록 하세요. (예: “만약_주문금액_5만이상” 대신 “주문 금액이 5만원 이상이면”)
  • 중첩 If 노드 vs. Switch 노드: 복잡한 다중 분기가 필요할 때는 If 노드를 여러 개 중첩할 수도 있지만, 가독성이 떨어질 수 있습니다. 이럴 때는 Switch 노드를 사용하여 하나의 입력 값에 따라 여러 개의 분기를 깔끔하게 처리하는 것이 더 효과적일 수 있습니다. If 노드가 참/거짓 이분법이라면, Switch 노드는 ‘A일 때’, ‘B일 때’, ‘C일 때’처럼 다중 선택에 가깝습니다.

5. 마무리하며 🙏

If 노드는 n8n 자동화의 핵심적인 ‘두뇌’ 역할을 합니다. 단순히 작업을 순서대로 실행하는 것을 넘어, 데이터의 흐름을 제어하고 스마트한 의사결정을 내릴 수 있게 해주죠. 오늘 함께 살펴본 10가지 시나리오를 통해 If 노드의 무궁무진한 활용 가능성을 엿보셨기를 바랍니다.

이제 여러분의 워크플로우에 If 노드를 적용하여, 더 똑똑하고 효율적인 자동화를 만들어보세요! 궁금한 점이 있다면 언제든지 n8n 커뮤니티나 공식 문서를 참고하시면 큰 도움이 될 거예요.

행복한 자동화 여정 되시길 바랍니다! 🌟

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다