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
This commit is contained in:
happybell80 2025-09-17 20:54:29 +09:00
parent 52597df813
commit 5d91cb58f8

View File

@ -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 캐싱 활용
- 큐 시스템 도입 검토
---
*지속적으로 시나리오 추가 예정*