From 5d91cb58f86b1a75a5337c9f3b85630c69e24fc9 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Wed, 17 Sep 2025 20:54:29 +0900 Subject: [PATCH] Create NAVER WORKS integration scenarios document - Slack to NAVER WORKS mail summary scenario - Cold email auto-posting to Slack Canvas - Morning mail briefing automation - Calendar to Slack reminder sync - Mail auto-classification and tagging - Implementation phases and technical considerations --- ...917_네이버웍스_연동_시나리오.md | 253 ++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 ideas/250917_네이버웍스_연동_시나리오.md diff --git a/ideas/250917_네이버웍스_연동_시나리오.md b/ideas/250917_네이버웍스_연동_시나리오.md new file mode 100644 index 0000000..9e75427 --- /dev/null +++ b/ideas/250917_네이버웍스_연동_시나리오.md @@ -0,0 +1,253 @@ +# NAVER WORKS 연동 시나리오 + +**작성일**: 2025-09-17 +**작성자**: happybell80 +**상태**: 시나리오 설계 중 + +## 1. Slack에서 NAVER WORKS 메일 요약 받기 + +### 시나리오 +사용자가 Slack에서 "@로빙 네이버웍스 메일 확인해줘"라고 요청하면, 로빙이 NAVER WORKS 메일을 조회하고 요약해서 Slack으로 전달 + +### 전제 조건 +- auth-server에 NAVER WORKS OAuth 구현 완료 +- skill-naverworks 서비스 구현 완료 (포트 8511) +- Service Account 인증 설정 완료 +- Slack workspace 연동 완료 + +### 상세 플로우 +``` +1. Slack 메시지 수신 + Slack → /slack/events/router → rb8001 + 메시지: "@로빙 네이버웍스 메일 확인해줘" + +2. 의도 파악 및 라우팅 + rb8001 → 키워드 분석 ("네이버웍스", "메일") + → skill-naverworks 호출 결정 + +3. NAVER WORKS API 호출 + rb8001 → POST skill-naverworks:8511/mail/summary + → Service Account Token 사용 + → GET https://www.worksapis.com/v1.0/users/{userId}/mail/messages + +4. 메일 내용 처리 + skill-naverworks → 메일 목록 조회 + → 최근 메일 5개 추출 + → Gemini API로 요약 생성 + +5. Slack 응답 + skill-naverworks → rb8001 → skill-slack + → POST /slack/send_message + → 채널에 요약 포스팅 +``` + +### 구현 필요 사항 +- [ ] skill-naverworks 서비스 생성 +- [ ] NAVER WORKS Mail API 래퍼 구현 +- [ ] rb8001 스킬 라우팅 로직 추가 +- [ ] 사용자 매핑 (Slack user_id ↔ NAVER WORKS userId) + +--- + +## 2. 콜드메일을 Slack 캔버스에 자동 포스팅 + +### 시나리오 +NAVER WORKS에 도착한 신규 영업 메일(콜드메일)을 자동으로 감지하고, Slack 캔버스에 정리된 형태로 포스팅 + +### 상세 플로우 +``` +1. 메일 모니터링 (30분 주기) + skill-naverworks → Cron job/스케줄러 + → GET /users/{userId}/mail/messages?unread=true + +2. 콜드메일 필터링 + - 발신자가 주소록에 없음 + - 제목에 특정 키워드 포함 ("제안", "협력", "서비스") + - 첨부파일 있음 (회사소개서 등) + +3. 콜드메일 분석 + skill-naverworks → Gemini API + - 회사명 추출 + - 제안 내용 요약 + - 연락처 정보 추출 + - 중요도 판단 + +4. Slack Canvas 생성/업데이트 + skill-slack → POST /canvases.create 또는 /canvases.edit + 템플릿: + ``` + ## 신규 영업 제안 - {날짜} + + ### {회사명} + - 담당자: {이름} + - 연락처: {이메일/전화} + - 제안 요약: {요약} + - 첨부파일: {파일명} + - 우선순위: {높음/중간/낮음} + ``` + +5. 알림 전송 + skill-slack → 영업팀 채널에 캔버스 링크 공유 +``` + +### 구현 필요 사항 +- [ ] 메일 모니터링 스케줄러 +- [ ] 콜드메일 판별 로직 +- [ ] Slack Canvas API 통합 +- [ ] 템플릿 관리 시스템 + +--- + +## 3. 아침 메일 브리핑 + +### 시나리오 +매일 오전 9시에 전날 받은 중요 메일을 요약해서 Slack DM으로 전송 + +### 상세 플로우 +``` +1. 스케줄 트리거 (매일 09:00) + robeing-gateway → scheduled_tasks 테이블 + → trigger skill-naverworks + +2. 메일 수집 + skill-naverworks → NAVER WORKS API + - 지난 24시간 메일 조회 + - 중요도 표시된 메일 우선 + - 미읽은 메일 포함 + +3. 카테고리별 분류 + - 내부 메일 (company-x.partners 도메인) + - 고객사 메일 + - 외부 제안 + - 시스템 알림 + +4. 요약 생성 + Gemini API → 카테고리별 요약 + ``` + 📧 오늘의 메일 브리핑 (11월 17일) + + ✅ 긴급 대응 필요 (2건) + - [고객A] 프로젝트 일정 문의 + - [내부] 오늘 오후 2시 회의 참석 요청 + + 📌 확인 필요 (5건) + - [영업] 신규 제안서 3건 + - [지원팀] 시스템 점검 공지 + - [고객B] 추가 기능 요청 + ``` + +5. 개인별 DM 전송 + skill-slack → 각 사용자 DM + → 읽음 확인 버튼 포함 +``` + +### 구현 필요 사항 +- [ ] 스케줄러 시스템 구현 +- [ ] 사용자별 설정 관리 (시간, 카테고리) +- [ ] 메일 중요도 판별 AI +- [ ] DM 템플릿 시스템 + +--- + +## 4. 캘린더 일정 → Slack 리마인더 + +### 시나리오 +NAVER WORKS 캘린더의 일정을 Slack 리마인더로 자동 동기화 + +### 상세 플로우 +``` +1. 캘린더 이벤트 감지 + skill-naverworks → GET /users/{userId}/calendar/events + → 향후 24시간 내 일정 조회 + +2. Slack 리마인더 생성 + skill-slack → /reminders.add + - 회의 15분 전 알림 + - 참석자 멘션 포함 + - 회의 링크 포함 + +3. 일정 변경 감지 + - 30분마다 캘린더 동기화 + - 변경된 일정 업데이트 + - 취소된 일정 리마인더 삭제 +``` + +### 구현 필요 사항 +- [ ] Calendar API 통합 +- [ ] Slack Reminders API 통합 +- [ ] 동기화 충돌 해결 로직 +- [ ] 사용자별 동기화 설정 + +--- + +## 5. 메일 자동 분류 및 태깅 + +### 시나리오 +받은 메일을 AI로 분석해서 자동으로 태그를 붙이고 Slack 채널에 분류해서 전달 + +### 카테고리 및 채널 매핑 +``` +- 계약/법무 → #legal 채널 +- 인보이스/청구 → #finance 채널 +- 고객 문의 → #customer-support 채널 +- 제품 피드백 → #product 채널 +- 채용 관련 → #recruiting 채널 +``` + +### 구현 필요 사항 +- [ ] 메일 분류 ML 모델 +- [ ] 태그 시스템 구현 +- [ ] 채널별 포스팅 규칙 +- [ ] 오분류 피드백 시스템 + +--- + +## 6. 구현 우선순위 + +1. **Phase 1** (기본 인프라) + - auth-server NAVER WORKS OAuth + - skill-naverworks 기본 구조 + - Service Account 인증 + +2. **Phase 2** (핵심 기능) + - 메일 조회 API + - Slack 메시지 응답 + - 기본 요약 기능 + +3. **Phase 3** (자동화) + - 스케줄러 시스템 + - 아침 브리핑 + - 콜드메일 감지 + +4. **Phase 4** (고급 기능) + - Canvas 통합 + - 캘린더 동기화 + - AI 분류 시스템 + +--- + +## 7. 기술적 고려사항 + +### API Rate Limit +- NAVER WORKS API 호출 제한 확인 필요 +- 캐싱 전략 수립 +- 배치 처리 구현 + +### 사용자 매핑 +- Slack user_id ↔ NAVER WORKS userId 매핑 테이블 +- 이메일 기반 자동 매핑 +- 수동 연결 UI 제공 + +### 보안 +- Service Account 권한 최소화 +- 메일 내용 암호화 저장 +- 접근 로그 기록 + +### 성능 +- 비동기 처리 필수 +- Redis 캐싱 활용 +- 큐 시스템 도입 검토 + +--- + +*지속적으로 시나리오 추가 예정* \ No newline at end of file