W2 연체 고객 등급별 자동 안내 발송 0%
🏦 ER은행 · Track 1 AX 업무혁신
W2

연체 고객 등급별 자동 안내 발송

Filter 노드 · Edit Fields · 조건별 이메일 분기

n8n Filter
Google Sheets
Gmail
약 90분
Recap · W1에서 배운 것

🔄 W1 복습

W1에서 우리는 3노드 워크플로를 만들었습니다: Sheets Trigger → Set → Gmail. 시트에 새 행이 추가되면 접수 확인 이메일을 자동 발송하는 구조였죠.

오늘은 여기에 두 가지 새 기술을 추가합니다:
Filter 노드 — 조건에 맞는 데이터만 골라내기
Edit Fields (Set) — 조건에 따라 다른 내용 넣기
🧱 W1 → W2 확장 구조
W1: Trigger → Set → Gmail 1개 (모든 고객에게 같은 이메일)
W2: Trigger → Filter 3개 → Set 3개 → Gmail 3개 (등급별 다른 이메일)
Context · 왜 이 실습을 하나요?

🏢 상황 설정: 매주 월요일의 전쟁

👨‍💼
박준호 과장
ER은행 여신관리팀 · 연체관리 담당
매주 월요일, 박준호 과장은 연체 고객 목록 엑셀을 열고 한 명씩 분류합니다. 연체 30일 이하면 "부드러운 독촉", 31~90일이면 "공식 통지", 91일 이상이면 "법적 조치 예고". 같은 작업을 2시간 동안, 매주 반복합니다.
😩 박준호 과장의 고민
"연체일수를 보고 등급을 나누고, 등급마다 다른 안내문을 보내는데… 가끔 실수로 91일 연체 고객한테 '부드러운 독촉' 메일을 보내버린 적도 있어요. 등급 분류는 기계가 더 잘하지 않을까요?"

📊 연체 등급 체계

🟡
1등급 · 경미
연체 1~30일
부드러운 독촉
"납부 기한이 지났습니다"
🟠
2등급 · 주의
연체 31~90일
공식 통지
"신용등급 하락 가능"
🔴
3등급 · 위험
연체 91일 초과
법적 조치 예고
"채권 추심 절차 예정"
❌ Before · 현재 수작업
1. 연체 시트에서 연체일수 확인
2. 30일/60일/90일 직접 판단
3. 등급별 안내문 복사
4. 고객 이름·금액 수정
5. 이메일 보내기 × 고객 수
→ 매주 2시간 + 분류 실수 위험
✅ After · 오늘 만들 자동화
1. 연체 시트에 데이터 업로드
2. (자동) n8n이 등급 분류
3. (자동) 등급별 이메일 발송
 
 
→ 매주 0분 + 분류 실수 0%
Goal · 오늘 만들 워크플로

🎯 완성 워크플로 구조

W1은 일직선 구조였지만, 오늘은 가지 치기(분기)가 나옵니다. 하나의 데이터가 조건에 따라 3개의 서로 다른 경로로 갈라집니다.

📌 Trigger → Filter 3갈래 → 등급별 이메일 발송
📋 Sheets Trigger
연체 시트
새 행 감지
Filter ① 1~30일 → Set(경미 안내) → 📧 Gmail ①
Filter ② 31~90일 → Set(주의 통지) → 📧 Gmail ②
Filter ③ 91일+ → Set(법적 예고) → 📧 Gmail ③
💡 왜 Filter 3개인가요?
n8n의 Filter 노드는 "이 조건에 맞는 것만 통과시킨다"는 단순한 역할입니다. 엑셀에서 필터를 거는 것과 완전히 같아요. "연체일수 ≤ 30인 행만 보기" 처럼요.

W5에서는 이 3개의 Filter 대신 Switch 노드 1개로 같은 걸 합니다. 지금은 Filter부터 이해하는 것이 중요!
Preparation · 시작 전 준비

📋 사전 준비 (10분)

A
연체관리 실습 시트 만들기
Google Sheets에 아래 양식대로 시트 생성

Google Sheets에서 새 스프레드시트를 만들고 이름을 「연체관리」로 지정합니다. 아래 데이터를 입력하세요:

A: 고객명B: 이메일C: 대출종류D: 연체금액(만원)E: 연체일수F: 담당자G: 지점
홍길동hong@test.com기업운전자금500015김철수A지점
이영희lee@test.com개인신용대출200028김철수A지점
박민수park@test.com부동산담보3000045이영수B지점
최정아choi@test.com기업시설자금8000072이영수B지점
김태호kim@test.com개인신용대출1500120박영미C지점
정수진jung@test.com기업운전자금45000185박영미C지점
💡 팁: 이메일 칼럼에 본인 이메일을 1~2건 넣어두면 실제 도착 여부를 확인할 수 있습니다!
Step-by-Step · 모범답안 가이드

🔧 실습: 워크플로 만들기 (60분)

1
트리거 — Google Sheets Trigger
⏱ 약 5분 · W1과 동일한 방법

W1에서 했던 것과 동일합니다. 이번에는 「연체관리」 시트를 선택합니다.

// Google Sheets Trigger 설정 Credential: 기존 Google Sheets OAuth2 Document: 연체관리 Sheet: Sheet1 Trigger On: Row Added Poll Times: Every Minute

설정 후 "Test step"을 누르면 6건의 테스트 데이터가 모두 Output에 나와야 합니다.

2
Filter ① — 1등급 경미 (1~30일) 걸러내기
⏱ 약 10분 · 🆕 오늘 배우는 새 노드!
🆕 New Concept

Filter 노드란?

Filter 노드는 "이 조건에 맞는 데이터만 통과시켜라"라는 문지기 역할을 합니다.

엑셀에서 데이터 → 필터 → "30 이하"를 거는 것과 완전히 같은 원리입니다.

엑셀에서
데이터 탭 → 필터
→ "연체일수" 열
→ 숫자 필터
→ "30보다 작거나 같음"
n8n Filter에서
조건 1:
연체일수 ≤ 30

→ 조건 맞으면 통과
→ 안 맞으면 버림

📝 따라하기

1. Trigger 노드의 연결점(●)에서 드래그 → "Filter" 검색·추가

2. Filter 노드를 클릭하고 설정:

// Filter ① 설정 — 1등급 경미 (1~30일) Conditions: 조건 1 (AND): Value 1: {{ $json.연체일수 }} ← Expression 모드! Operation: Number · Is Less Than or Equal ← ≤ (이하) Value 2: 30 ← 숫자 30 조건 2 (AND): Value 1: {{ $json.연체일수 }} Operation: Number · Is Greater Than or Equal ← ≥ (이상) Value 2: 1 ← 0일(정상)은 제외
⚠️ 조건 2개를 AND로 묶는 이유
"1일 이상 AND 30일 이하" — 두 조건을 동시에 만족하는 행만 통과시킵니다. 연체일수가 0인 정상 고객이 들어오는 것을 방지합니다.

✅ 확인 방법

"Test step" → Output에 홍길동(15일), 이영희(28일) 2건만 나오면 성공!

만약 6건 전부 나오면 → Expression 모드 확인, 필드 이름(연체일수) 정확히 입력했는지 확인

3
Set ① + Gmail ① — 경미 등급 안내문 발송
⏱ 약 10분 · 부드러운 독촉 이메일 작성

Filter ①을 통과한 데이터(1~30일 연체)에 대해 이메일을 보냅니다.

📝 Set ① (Edit Fields) 설정

Filter ① 오른쪽에 "Edit Fields (Set)" 노드를 연결합니다.

// Set ① — 1등급 경미 안내 등급: 1등급 (경미) ← Fixed 모드 OK 고객명: {{ $json.고객명 }} ← Expression 모드 이메일: {{ $json.이메일 }} 연체금액: {{ $json['연체금액(만원)'].toLocaleString() }} 연체일수: {{ $json.연체일수 }}

📝 Gmail ① 설정

Set ① 오른쪽에 "Gmail" 노드를 연결합니다.

To: {{ $json.이메일 }} Subject: [ER은행] 대출 상환 안내 ({{ $json.고객명 }}님) Email Type: HTML Message:
<div style="font-family:sans-serif;max-width:560px;margin:0 auto;padding:24px"> <div style="background:#fef3c7;border-left:4px solid #f59e0b;padding:16px;border-radius:0 8px 8px 0;margin-bottom:20px"> <strong>상환 기일이 지났습니다</strong> </div> <p>안녕하세요, <strong>{{ $json.고객명 }}</strong>님.</p> <p>현재 <strong>{{ $json.연체금액 }}만원</strong>이 <strong>{{ $json.연체일수 }}일</strong> 연체 중입니다.</p> <p>빠른 시일 내 상환 부탁드립니다. 문의사항은 담당자에게 연락해 주세요.</p> <p style="color:#888;font-size:12px;margin-top:24px">ER은행 여신관리팀 · 자동발송</p> </div>
✅ 포인트: 1등급은 노란색(#fef3c7) 배경에 "상환 기일이 지났습니다"라는 부드러운 어조를 씁니다. 2, 3등급은 점점 강한 어조와 다른 색상을 사용합니다.
4
Filter ② + Set ② + Gmail ② — 주의 등급 (31~90일)
⏱ 약 10분 · 공식 통지 이메일

이번에는 Trigger 노드에서 직접 새 가지를 뻗습니다. Filter ① 뒤가 아닙니다!

⚠️ 연결 위치 주의!
Filter ②는 Trigger 노드의 출력 ●에서 새로 연결합니다. Trigger 하나에서 3개의 Filter가 동시에 나가는 구조입니다.

Trigger의 출력점(●)을 드래그해서 빈 공간에 놓으면 노드 추가 팝업이 뜹니다.

📝 Filter ② 설정

// Filter ② — 2등급 주의 (31~90일) 조건 1 (AND): Value 1: {{ $json.연체일수 }} Operation: Number · Is Greater Than or Equal ← ≥ 31 Value 2: 31 조건 2 (AND): Value 1: {{ $json.연체일수 }} Operation: Number · Is Less Than or Equal ← ≤ 90 Value 2: 90

"Test step" → 박민수(45일), 최정아(72일) 2건이 나오면 성공.

📝 Gmail ② 이메일 핵심 차이점

// 2등급 이메일의 다른 점 배경색: #ffedd5 ← 주황색 배경 (1등급은 노란색) 테두리: #f97316 ← 주황색 라인 제목: [ER은행·긴급] 연체 공식 통지 ({{ $json.고객명 }}님) 본문 핵심: "현재 연체 상태가 지속될 경우 신용등급 하락 및 추가 금융거래 제한이 발생할 수 있습니다."
5
Filter ③ + Set ③ + Gmail ③ — 위험 등급 (91일+)
⏱ 약 10분 · 법적 조치 예고 이메일

마찬가지로 Trigger 노드에서 세 번째 가지를 연결합니다.

📝 Filter ③ 설정

// Filter ③ — 3등급 위험 (91일 이상) 조건 1: Value 1: {{ $json.연체일수 }} Operation: Number · Is Greater Than or Equal ← ≥ 91 Value 2: 91

"Test step" → 김태호(120일), 정수진(185일) 2건이 나오면 성공.

📝 Gmail ③ 이메일 핵심 차이점

// 3등급 이메일의 다른 점 배경색: #fee2e2 ← 빨간색 배경 테두리: #ef4444 ← 빨간색 라인 제목: [ER은행·최종경고] 법적 조치 예고 ({{ $json.고객명 }}님) 본문 핵심: "연체 {{ $json.연체일수 }}일 경과로 채권 추심 절차가 개시될 예정입니다. 7일 이내 상환하지 않으실 경우 법적 조치가 진행됩니다."

📊 3등급 이메일 비교 정리

항목1등급 경미2등급 주의3등급 위험
배경색#fef3c7 (노랑)#ffedd5 (주황)#fee2e2 (빨강)
어조부드러운 독촉공식 통지법적 예고
제목 태그[ER은행][ER은행·긴급][ER은행·최종경고]
경고 문구빠른 상환 요청신용등급 하락 가능채권 추심 예정
6
전체 테스트 & 활성화
⏱ 약 15분 · 6건 모두 정확히 분류되는지 확인

📝 테스트 순서

1. 캔버스에서 "Test workflow" 클릭 → 대기 모드 진입

2. Google Sheets에 새 행 1건 추가 (예: 연체 25일인 테스트 데이터)

3. 캔버스에서 어떤 Filter가 활성화되는지 확인:

🔍 확인 포인트
· 연체 25일 데이터 → Filter ①만 초록 체크 (나머지 ②③은 비활성)
· 연체 60일 데이터 → Filter ②만 초록 체크
· 연체 150일 데이터 → Filter ③만 초록 체크

4. 본인 이메일로 테스트한 경우, 이메일 제목과 색상이 등급별로 다른지 확인

5. 문제없으면 Active로 전환!

🔧 자주 발생하는 문제

한 행이 2개의 Filter를 동시에 통과해요
조건 범위가 겹치는지 확인하세요. 예: Filter ①이 "≤ 30"이고 Filter ②가 "≥ 30"이면 30일인 고객이 양쪽 모두 통과합니다. Filter ②는 "≥ 31"이어야 합니다.
연체일수가 텍스트로 인식돼요
Filter에서 "Number" 타입을 선택했는지 확인. 시트에 연체일수를 입력할 때 앞에 작은따옴표(')가 붙으면 텍스트로 인식되므로 순수 숫자만 입력하세요.
Filter ②③가 Trigger에서 안 나가요
Trigger 노드의 출력 연결점(●)은 여러 개의 선이 나갈 수 있습니다. ●을 드래그해서 빈 공간에 놓고 Filter를 추가하세요. 한 출력에서 여러 가지로 나가는 게 핵심입니다!
Self-Check · 완료 확인

✅ W2 실습 완료 체크리스트

"연체관리" 시트를 6건 테스트 데이터로 만들었다
Trigger 1개에서 Filter 3개가 동시에 나가는 구조를 만들었다
Filter ① (1~30일) → 홍길동, 이영희만 통과한다
Filter ② (31~90일) → 박민수, 최정아만 통과한다
Filter ③ (91일+) → 김태호, 정수진만 통과한다
등급별 이메일 제목·색상·어조가 서로 다르다
새 행 추가 시 해당 등급의 이메일만 발송된다
워크플로를 Active로 전환했다
Key Concepts · 오늘 배운 것

📌 W2 핵심 개념 정리

F
Filter 노드
조건에 맞는 데이터만 통과시키는 문지기. 엑셀의 필터 기능과 동일. 조건을 AND/OR로 결합할 수 있습니다.
B
분기 (Branching)
하나의 출력에서 여러 경로가 동시에 나가는 구조. 오늘은 Trigger 1개 → Filter 3개로 분기했습니다. 데이터는 모든 경로에 동시에 보내지고, 각 Filter가 자기 조건에 맞는 것만 통과시킵니다.
E
Edit Fields (Set) 응용
W1에서는 접수번호를 만드는 데 썼고, W2에서는 등급·안내문 유형 등 새 필드를 추가하는 데 사용했습니다.
!
범위 겹침 방지
Filter 조건의 경계값이 겹치면 한 건이 두 곳으로 갈 수 있습니다. 1~30 / 31~90 / 91+ 처럼 빈틈도 겹침도 없도록 설정하는 것이 핵심입니다.
🧱 W1 vs W2 구조 비교
W1: 직선 구조 — Trigger → Set → Gmail (1:1)
W2: 분기 구조 — Trigger → Filter ×3 → Set ×3 → Gmail ×3 (1:N)

다음 주(W3)에서는 Google Workspace 전체(Drive·Docs·Calendar·Chat)를 연동하는 멀티 출력을 배웁니다.
Next Week Preview

👉 W3 미리보기

📁
대출 서류 접수 자동 폴더 체계 생성
Forms → Drive 폴더 생성 + Docs 체크리스트 + Calendar 일정 + Chat 알림

W3에서는 하나의 트리거(Google Forms 제출)로 4가지 서비스에 동시 출력합니다. Drive에 폴더를 만들고, Docs에 체크리스트를 생성하고, Calendar에 검토 일정을 등록하고, Chat에 알림을 보냅니다.

n8n Google Workspace Google Forms
ER은행 AX 업무혁신 과정 · Track 1 · W2 실습 가이드 · 2026