📧💬 Gmail & Slack 알림 추가!
📌 이번 업데이트 내용
✅ Ver 1.0 (지난주)
구글 드라이브 녹음 파일 → 자동 전사 → 회의록 생성
🆕 Ver 2.0 (이번 주)
✅ Gmail 알림 추가 (HTML 디자인)
✅ Slack 알림 추가 (채널 메시지)
✅ 병렬 처리로 동시 알림
결과: 회의록 생성 완료 즉시 이메일 + Slack으로 알림! 🎉
🎯 왜 알림을 추가했나?
문제 상황
Ver 1.0의 한계:
❌ 회의록이 완성되어도 모름
❌ 구글 드라이브 들어가서 직접 확인해야 함
❌ 언제 완성되는지 계속 체크
❌ 팀원들에게 공유하려면 또 작업
해결!
Ver 2.0:
✅ 회의록 생성 완료 즉시 이메일 수신
✅ Slack 채널에 자동 알림
✅ 링크 클릭만으로 바로 확인
✅ 팀 전체가 동시에 확인 가능
🛠️ 기술 스택 (업데이트)
기존: n8n + OpenAI API + Google Drive
추가:
✅ Gmail API (구글 계정 OAuth)
✅ Slack API (Bot Token 방식)
💰 비용 (변동 없음!)
10분 녹음 파일 1개 기준:
- Whisper 전사: $0.06 (약 80원)
- GPT-4o 회의록: $0.02 (약 30원)
- Gmail 알림: 무료 ✅
- Slack 알림: 무료 ✅
= 총 약 110원/건 (동일!)
알림 추가해도 비용 증가 없음! 💪
🚀 새로 추가된 노드
전체 워크플로우 구조 (Ver 2.0)
📥 Google Drive Trigger (새 파일 감지)
↓
🔍 Check if Audio File (오디오 파일 확인)
↓
⬇️ Download Audio File (파일 다운로드)
↓
🎤 Transcribe with Whisper (음성 → 텍스트)
↓
📝 Generate Meeting Minutes (GPT → 회의록)
↓
💾 Create file from text (결과 저장)
↓ (병렬 처리)
├─→ 📧 Send Email (Gmail 알림)
└─→ 💬 Send Slack Message (Slack 알림)
핵심: 병렬 처리!
파일 저장 완료 후
Gmail과 Slack에 동시에 알림 발송
📧 Gmail 알림 구현
[1] Gmail 노드 설정
노드 타입: Gmail
Operation: Send Email
Email Type: HTML
수신자: [email protected]
제목: 🎙️ 회의록 생성 완료: {{ 파일명 }}
[2] HTML 이메일 디자인
포함 내용:
✅ 보라색 그라데이션 헤더
✅ 파일 정보 테이블 (파일명, 시각, 크기)
✅ 버튼 (회의록 보기, 원본 듣기)
✅ 회의록 미리보기 (처음 500자)
✅ 반응형 디자인 (모바일 지원)
[3] 이메일 미리보기
┌─────────────────────────────────────┐
│ ✅ 회의록 생성 완료! │
│ AI가 자동으로 회의록을 작성했습니다 │
├─────────────────────────────────────┤
│ 📄 파일 정보 │
│ 원본 파일: meeting_20241203.m4a │
│ 생성 시각: 2024-12-03 14:30:25 │
│ 파일 크기: 5.23 MB │
│ │
│ [📋 회의록 보기] [🎧 원본 듣기] │
│ │
│ 📝 회의록 미리보기 │
│ # 회의록 │
│ ## 기본 정보... │
└─────────────────────────────────────┘
[4] 성공!
실제 수신 화면:
깔끔한 디자인
클릭 가능한 버튼
모바일에서도 잘 보임
💬 Slack 알림 구현
시행착오 과정
❌ 시도 1: 기존 Slack API Credential
문제: "Could not load list"
원인: Slack API (구버전) 사용
해결: 실패 - Send Message 노드와 호환 안 됨
❌ 시도 2: Slack OAuth2 API (User 방식)
문제: "Missing required OAuth Scopes"
원인: users:read 권한 부족
해결: 실패 - 권한 추가 복잡
✅ 시도 3: Slack OAuth2 API (Channel 방식)
방법: Send Message To를 "Channel"로 변경
설정: Channel = "general" (# 없이!)
결과: 성공! 🎉
[1] Slack 노드 설정
노드 타입: Slack
Operation: Send Message
Credential: Slack OAuth2 API
Send Message To: Channel
Channel: general (또는 회의록-알림)
Message Type: Simple Text Message
[2] 메시지 내용
🎙️ *회의록 생성 완료*
*원본 파일:* meeting_20241203.m4a
*생성 시각:* 2024-12-03 14:30:25
*파일 크기:* 5.23 MB
<회의록 링크|📋 회의록 보기> | <원본 링크|🎧 원본 듣기>
[3] Slack 메시지 미리보기
┌─────────────────────────────────────┐
│ 🎙️ 회의록 생성 완료 │
│ │
│ 원본 파일: meeting_20241203.m4a │
│ 생성 시각: 2024-12-03 14:30:25 │
│ 파일 크기: 5.23 MB │
│ │
│ 📋 회의록 보기 | 🎧 원본 듣기 │
└─────────────────────────────────────┘
[4] 성공 화면
Slack 채널에 메시지 도착:
링크 클릭으로 즉시 확인
팀 전체가 동시에 볼 수 있음
알림으로 즉시 알 수 있음
🔧 구현 과정 상세
Step 1: Gmail 알림 추가
1. Gmail Credential 설정
n8n → Credentials → Create New
→ Gmail OAuth2 선택
→ Google 계정 로그인
→ 권한 승인 (Gmail 보내기)
2. Send Email 노드 추가
Create file from text 노드 다음에 추가
병렬 연결:
- Create file from text의 출력(●)를 클릭
- Send Email 노드로 드래그
3. HTML 이메일 작성
Email Type: HTML 선택
Message 필드에 HTML 코드 입력
동적 데이터 삽입:
- 파일명: {{ $('Download Audio File').item.json.name }}
- 시각: {{ new Date().toLocaleString('ko-KR') }}
- 링크: {{ $('Create file from text').item.json.webViewLink }}
결과: 성공! ✅
Step 2: Slack 알림 추가 (복습!)
배경:
지난주 스터디 주제: Slack 연동