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:
parent
52597df813
commit
5d91cb58f8
253
ideas/250917_네이버웍스_연동_시나리오.md
Normal file
253
ideas/250917_네이버웍스_연동_시나리오.md
Normal 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 캐싱 활용
|
||||
- 큐 시스템 도입 검토
|
||||
|
||||
---
|
||||
|
||||
*지속적으로 시나리오 추가 예정*
|
||||
Loading…
x
Reference in New Issue
Block a user