자동화 흐름이 단순할 때는 “조건이 맞으면 실행, 아니면 종료”만으로 충분합니다. 하지만 문의 상태가 신규·검토중·완료로 나뉘거나, 우선순위에 따라 담당자와 알림 채널을 다르게 보내야 하면 두 갈래만 있는 IF 노드로는 구조가 복잡해집니다. 이때 Switch 노드를 쓰면 하나의 입력을 여러 조건별 경로로 정리할 수 있습니다.
이 글은 n8n에서 상태값, 숫자, 날짜 등 여러 조건을 기준으로 자동화를 분기하는 기본 방법을 설명합니다. 처음에는 실제 메일 발송이나 데이터 수정 전, 테스트 데이터가 어느 경로로 가는지부터 확인하세요.
IF 노드와 Switch 노드, 언제 나눠 쓸까?
| 상황 | 추천 노드 |
|---|---|
| 조건 결과가 예/아니오 두 가지뿐 | IF |
| 상태나 등급처럼 세 가지 이상으로 나뉨 | Switch |
| 여러 조건 중 하나의 경로만 선택 | Switch의 Rules 모드 |
| 계산 결과로 보낼 경로를 정해야 함 | Switch의 Expression 모드 |
예를 들어 “제목에 긴급이 포함됐는가?”처럼 양자택일이면 n8n IF 노드 가이드가 간단합니다. 반면 문의 상태가 new, in_progress, done 중 하나라면 Switch에서 상태별 출력 경로를 만들어 두는 편이 읽기 쉽고 수정도 편합니다.
가장 쉬운 설정: Rules 모드
n8n의 Switch 공식 문서에 따르면 Rules 모드는 각 출력에 비교 규칙을 만드는 방식입니다. 코드 없이 시작하기에 적합합니다.
- 데이터를 받는 노드 뒤에 Switch를 추가합니다. 예를 들어 Webhook, Google Sheets, Notion 등에서 status 또는 priority 값을 받아야 합니다.
- Mode에서 Rules를 선택합니다. 조건을 만들고, 비교할 데이터 유형과 연산을 고릅니다.
- Routing Rule을 추가합니다. status 값이 new와 같은지, priority가 숫자 8 이상인지처럼 조건을 입력합니다.
- 각 출력의 이름을 바꿉니다. ‘Output 0’ 대신 ‘신규’, ‘검토’, ‘완료’처럼 이름을 붙이면 나중에 연결을 확인하기 쉽습니다.
- 출력마다 다음 작업을 연결합니다. 신규는 Notion 데이터베이스 생성, 검토는 Slack 알림, 완료는 보관 폴더 이동처럼 서로 다른 후속 작업을 둡니다.
예시: 문의 상태에 따라 세 갈래로 분기
| 상태값 | Switch 이후 작업 |
|---|---|
| new | 담당자에게 알림 보내기 |
| in_progress | 기존 작업 카드에 메모 남기기 |
| done | 완료 목록으로 옮기기 |
설정 후에는 각 상태값을 가진 테스트 데이터를 한 개씩 준비해 Execute step 또는 테스트 실행을 해 보세요. 어느 경로에 몇 개의 항목이 흘렀는지 확인하는 습관은 배포 후 실수를 크게 줄입니다. 실행 결과 읽는 방법은 n8n 실행 오류 확인 가이드도 참고할 수 있습니다.
어느 조건에도 맞지 않는 데이터 처리하기
모든 입력이 규칙에 꼭 맞는다고 가정하면 문제가 생깁니다. 빈 status 값, 예상 밖의 오타, 새로 추가된 상태값이 들어올 수 있기 때문입니다. Switch의 Fallback Output을 Extra Output으로 설정하면 어느 규칙에도 맞지 않은 항목을 별도 경로로 보낼 수 있습니다. 그 경로에는 로그용 Google Sheets 행 추가나 운영자 알림처럼 ‘확인만 하는’ 동작을 연결하세요. 기본값처럼 일치하지 않은 항목을 무시하면 중요한 데이터를 놓칠 수 있습니다.
여러 규칙에 동시에 맞을 때
Switch에는 모든 일치 출력으로 데이터를 보낼지, 처음 일치한 출력으로만 보낼지 정하는 옵션이 있습니다. 상태값처럼 서로 배타적인 조건이라면 규칙이 겹치지 않게 만들고 첫 일치 경로만 사용하도록 두는 편이 안전합니다. 반대로 ‘금액이 높음’과 ‘해외 고객’처럼 두 작업을 모두 해야 하는 경우에만 여러 일치 출력 전송을 고려하세요. 알림·등록·삭제 같은 후속 동작이 중복되지 않도록 먼저 작은 테스트로 확인해야 합니다.
조건이 맞지 않는 가장 흔한 이유: 값의 형식
화면에서 숫자처럼 보이는 값도 입력 단계에서는 텍스트일 수 있고, 상태값에는 공백이나 대소문자가 섞일 수 있습니다. Switch의 비교 유형을 값에 맞게 고르고, 테스트 결과에서 실제 입력값을 복사해 규칙과 비교하세요. 필요하면 Less Strict Type Validation 옵션으로 변환을 시도할 수 있지만, 운영 자동화에서는 무엇이 변환되는지 먼저 테스트하는 편이 낫습니다. 날짜 조건도 텍스트 비교 대신 Date & Time 비교를 선택해야 의도한 기준으로 분기할 수 있습니다.
Expression 모드는 언제 쓸까?
Rules로 표현하기 어려운 계산이나 변환 결과를 이용해 경로를 정해야 할 때 Expression 모드를 씁니다. 이 모드에서는 출력 개수를 정하고, 표현식이 어떤 출력으로 보낼지를 계산합니다. 처음부터 복잡한 표현식으로 시작하기보다 Rules 모드로 흐름을 검증한 뒤 전환하는 것을 권합니다. 값 참조가 헷갈리면 n8n 데이터 매핑 가이드를 먼저 확인하세요.
테스트 전 체크리스트
- 조건에 쓰는 필드가 실제 입력 데이터에 존재하는지 확인했는가?
- 텍스트 대소문자, 공백, 숫자/문자열 유형이 의도와 맞는가?
- 일치하지 않는 값이 갈 Fallback 경로를 만들었는가?
- 후속 모듈이 실제 고객에게 발송·수정하기 전 테스트 대상으로 연결됐는가?
Switch 노드는 흐름을 화려하게 만드는 도구가 아니라, 예상 가능한 조건을 명확하게 정리하는 도구입니다. 먼저 상태값 3개와 테스트 데이터 3개만으로 경로를 확인한 뒤 실제 업무 분기에 적용해 보세요.