6.3 KiB
6.3 KiB
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/mailfolders/0/children
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/mailfolders/0/children?limit=10
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. 구현 우선순위
-
Phase 1 (기본 인프라)
- auth-server NAVER WORKS OAuth
- skill-naverworks 기본 구조
- Service Account 인증
-
Phase 2 (핵심 기능)
- 메일 조회 API
- Slack 메시지 응답
- 기본 요약 기능
-
Phase 3 (자동화)
- 스케줄러 시스템
- 아침 브리핑
- 콜드메일 감지
-
Phase 4 (고급 기능)
- Canvas 통합
- 캘린더 동기화
- AI 분류 시스템
7. 기술적 고려사항
API Rate Limit
- NAVER WORKS API 호출 제한 확인 필요
- 캐싱 전략 수립
- 배치 처리 구현
사용자 매핑
- Slack user_id ↔ NAVER WORKS userId 매핑 테이블
- 이메일 기반 자동 매핑
- 수동 연결 UI 제공
보안
- Service Account 권한 최소화
- 메일 내용 암호화 저장
- 접근 로그 기록
성능
- 비동기 처리 필수
- Redis 캐싱 활용
- 큐 시스템 도입 검토
지속적으로 시나리오 추가 예정