DOCS/ideas/250917_네이버웍스_연동_시나리오.md

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. 구현 우선순위

  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 캐싱 활용
  • 큐 시스템 도입 검토

지속적으로 시나리오 추가 예정