발행일: 2026-08-04(화) 03:14
도서하루 30분 n8n ①DAY 25
챕터 4 — 미니 프로젝트 : AI 이메일 비서난이도 ★★★
DAY 25

프로젝트 구현 2단계 : 요약 & Sheets 기록

📥 DAY 25 워크플로우 JSON 다운로드
이론5
실습20
미션5

"매일 일관되게 반복하는 작은 규율이 시간이 지남에 따라 위대한 성취로 이어진다."

존 C. 맥스웰 (John C. Maxwell, 미국 리더십 전문가·저술가)
🎯 오늘의 학습 목표
  • 요약을 3줄로 분리하는 System Prompt를 작성할 수 있다
  • Switch 4개 포트를 하나의 Google Sheets 노드로 합류시켜 로그를 기록할 수 있다
  • IF 노드로 긴급도 점수 기준 Slack 알림 필터를 구현할 수 있다
노드 4 System Prompt 전체 교체
text
당신은 이메일 분류·요약 전문가입니다. 입력된 이메일을 분석하고
반드시 아래 JSON 형식으로만 응답하세요.
마크다운 코드 블록, 추가 설명, 앞뒤 텍스트 없이 JSON 객체만 반환하세요.

분류 기준:
- 긴급: 계약·마감·장애·결재 등 즉각 조치 필요
- 일반: 일반 업무 메일, 미팅·보고서·협업 요청
- 광고: 마케팅·프로모션·뉴스레터·구독 메일
- 스팸: 불법 광고·피싱·무의미한 메일

요약 작성 규칙:
- 반드시 한국어로 작성
- 3줄 이내, 각 줄은 핵심 정보 하나만 포함
- "누가 무엇을 요청했는지" 중심으로 작성

응답 JSON 형식:
{
  "분류": "긴급 또는 일반 또는 광고 또는 스팸 중 하나",
  "긴급도점수": 1에서 10 사이 정수,
  "요약1": "핵심 내용 1 (1문장)",
  "요약2": "핵심 내용 2 (1문장, 없으면 빈 문자열)",
  "요약3": "핵심 내용 3 (1문장, 없으면 빈 문자열)",
  "분류근거": "분류 이유 1문장",
  "답장필요여부": true 또는 false
}
노드 5에 추가할 필드
text
요약1:    {{ $json.message.content.요약1 }}
요약2:    {{ $json.message.content.요약2 }}
요약3:    {{ $json.message.content.요약3 }}
요약전체: {{ [$json.message.content.요약1, $json.message.content.요약2, $json.message.content.요약3].filter(v => v).join("\n") }}
답장필요여부: {{ $json.message.content.답장필요여부 }}
AI이메일비서로그 탭 Append Row 설정
text
수신시각:    {{ $json.수신시각 }}
발신자:      {{ $json.발신자 }}
제목:        {{ $json.제목 }}
분류:        {{ $json.분류결과 }}
긴급도점수:  {{ $json.긴급도점수 }}
요약:        {{ $json.요약전체 }}
초안저장여부: 미저장
처리결과:    {{ $json.분류결과 }} 자동 처리 완료
긴급 메일 Slack 알림 Blocks JSON
json
[
  {
    "type": "header",
    "text": { "type": "plain_text", "text": "🚨 긴급 메일 수신 — 즉시 확인 필요" }
  },
  { "type": "divider" },
  {
    "type": "section",
    "text": {
      "type": "mrkdwn",
      "text": "*발신자:* {{ $json.발신자 }}\n*제목:* {{ $json.제목 }}\n*수신 시각:* {{ $json.수신시각 }}\n*긴급도:* {{ $json.긴급도점수 }}/10"
    }
  },
  {
    "type": "section",
    "text": { "type": "mrkdwn", "text": "*AI 요약:*\n{{ $json.요약전체 }}" }
  }
]
💡 Switch 노드의 4개 포트를 하나의 Sheets 노드로 합류시킬 수 있어요. n8n에서는 여러 노드에서 하나의 노드 입력으로 연결선을 연결할 수 있어요. 이 방식이 유지보수가 훨씬 쉬워요!
🛠️ 실습
STEP 1OpenAI System Prompt 교체
  1. 노드 4(OpenAI) 열기
  2. System Prompt 전체 교체 (위 개선된 버전으로)
  3. Max Tokens: 600으로 늘리기
  4. 테스트 실행 후 요약1·2·3 필드 확인
STEP 2노드 5에 요약 필드 추가
  1. 노드 5(JSON 파싱) 열기
  2. 기존 필드 유지한 채 요약1·2·3·요약전체·답장필요여부 필드 추가
  3. 요약전체 필드의 filter·join 표현식 입력 후 OUTPUT 확인
STEP 3Google Sheets Append Row 연결
  1. Switch 4개 포트 모두 하나의 Sheets 노드로 연결
  2. Operation: Append Row / Map Each Column Manually
  3. 8개 열 매핑 입력 후 테스트 실행
  4. Sheets에 행 추가 확인
STEP 4IF 필터 + Slack 알림 연결
  1. Sheets 노드 뒤에 IF 노드 추가: 이름 '긴급 메일 필터'
  2. 조건: 분류결과 = '긴급' OR 긴급도점수 ≥ 7
  3. True 경로 → 긴급 Slack 알림 노드 (Block Kit 적용)
  4. Switch 일반 포트 경로 → 일반 Slack 알림 노드 (Simple Text)
  5. 테스트 후 캡처: n8n_day25_sheets_slack_result.png
🚀 오늘의 미션
  1. 10가지 유형의 테스트 이메일을 발송하고 Sheets 기록 결과를 검증해보세요
  2. 아래 항목을 모두 확인해주세요
  3. ✓ 10개 행이 모두 누락 없이 추가됐는지
  4. ✓ 분류 열이 긴급·일반·광고·스팸 중 하나로만 기입됐는지
  5. ✓ 요약 열에 2~3문장 한국어 요약이 들어갔는지
  6. ✓ 긴급 메일에 Slack 알림이 도착했는지
  7. 결과를 캡처해 저장하세요 (파일명: n8n_day25_mission_sheets_log.png)
📋 워크플로우 임포트 방법
  1. 위 버튼으로 JSON 파일을 다운로드합니다.
  2. n8n 캔버스 오른쪽 상단 Import from file 클릭
  3. 다운로드한 JSON 파일을 선택하면 워크플로우가 즉시 열립니다.
  4. 빨간 느낌표(!)가 보이면 Credentials을 본인 계정으로 재연결하세요.
💡 먼저 직접 만들어보고, 막혔을 때 정답지로만 활용하세요!
n8n 계정이 없으신가요?n8n 무료 시작하기 ↗
← DAY 24
프로젝트 구현 1단계 : 이메일 수신 & 분류
목차로DAY 26
프로젝트 구현 3단계 : 답장 초안 자동 작성