케이스 스터디
CASE STUDY — AI

회의록 요약 봇 — 녹음 파일 하나 올리면 Whisper가 받아 적고 GPT가 정리해서 Slack으로

도입 전 부서 공통구축 4일
Google DriveOpenAI WhisperOpenAI GPTSlack

회의가 끝나면 누군가 녹음을 다시 들으며 회의록을 썼습니다. 정리가 미뤄지면 결정 사항이 흐려지고, 누가 무엇을 맡았는지도 기억에 의존하게 됐습니다.

녹음 파일을 Google Drive의 지정 폴더에 업로드하면 워크플로우가 자동으로 시작됩니다. Whisper API가 한국어 음성을 텍스트로 변환하고, GPT가 회의 성격 요약 · 핵심 논의 · 담당자·기한별 액션 아이템으로 정리해 팀 Slack 채널로 게시합니다. 담당자는 회의가 끝난 지 1분 안에 회의록을 받습니다.

meeting-notes.workflowLIVE
WSWhisper (음성 → 텍스트)AIGPT 요약 + Action ItemsSLSlack 발송

어떻게 동작하나

  1. Google Drive Trigger 노드가 지정된 폴더(예: meeting-recordings)를 폴링하다가 새 파일이 감지되면 워크플로우를 시작합니다.
  2. Google Drive Download 노드가 파일을 binary로 가져옵니다.
  3. HTTP Request 노드가 https://api.openai.com/v1/audio/transcriptions로 multipart 요청을 보내 Whisper API에 전사시킵니다 (model: whisper-1, language: ko).
  4. HTTP Request 노드가 GPT-4o-mini에 전사를 넘겨 {title, summary, action_items[]} JSON을 요청합니다 (response_format: json_object로 강제).
  5. Code 노드가 JSON을 파싱해 Slack용 마크다운 메시지로 포맷 (제목 · 요약 · action items 리스트).
  6. Slack Send Message 노드가 지정 채널에 게시합니다.

필요한 것

  • n8n 2.29.9 이상 (자체 호스팅 또는 Cloud). 검증은 자체 호스팅 Docker에서.
  • Google Drive OAuth2 — 스코프 https://www.googleapis.com/auth/drive. Drive Trigger + Download 두 노드가 공유.
  • Google Drive 폴더 — 새로 하나 만들어 워크플로우가 감시하도록 지정. 폴더 ID는 URL의 folders/ 뒤 문자열.
  • OpenAI API key — Whisper API + Chat API 둘 다 이 credential 하나로 커버. 결제 등록 필수.
  • Slack Bot User OAuth Tokenchat:write 스코프. /invite @your-bot in target channel.
  • 비용 — Whisper $0.006/분 + GPT-4o-mini 수 센트/요약. 45초 회의 = 총 $0.01 수준.

AI 요약 스키마 — GPT가 반환하는 JSON

{
  "title":   "한 줄, 회의 성격 요약",
  "summary": "2~3 문장, 핵심 결정·논의",
  "action_items": [
    { "owner": "담당자 이름 또는 팀명", "task": "할 일", "due": "기한 또는 null" },
    ...
  ]
}

실제 검증 예시 — 45초 스탠드업 녹음

제목:  프로덕트 스탠드업 회의
요약:  결제 리팩터링이 완료되었고, 이번 주에는 환불 흐름 마무리 및 목요일 배포를 목표로 하고 있습니다.
       마케팅 A/B 테스트 결과를 정리하여 금요일까지 공유할 예정이며, 3분기 로드맵 초안은 목요일 회의에서 리뷰합니다.

Action items:
  1. [CS팀]      결제 관련 CS 티켓 우선순위 재정리   — 다음 주까지
  2. [팀원]      3분기 로드맵 초안 검토           — 목요일
  3. [마케팅 팀]  A/B 테스트 결과 공유             — 금요일
⬇︎ 워크플로우 다운로드 (meeting-notes.json)
Google Drive · OpenAI · Slack 세 개 자격증명 + 감시할 Drive 폴더 ID + Slack 채널 이름만 설정하면 즉시 실행. 워크플로우 상단 Sticky Note에 순서 있음.
이 워크플로우는 n8n 2.29.9에서 실제 45초 한국어 스탠드업 녹음(OpenAI TTS로 생성)을 Google Drive에 업로드 → Whisper 전사 → GPT 요약 → Slack 게시까지 왕복 검증했습니다. 마지막 검증: 2026-07-15.

왜 Whisper인가 (다른 STT 대비)

  • 한국어 정확도 — Whisper medium/large급 정확도가 API 하나로 제공됩니다. 별도 튜닝 없이 스탠드업/1on1/고객 통화 대부분에서 실무 수준.
  • 비용 예측성 — 분당 $0.006 고정. 클라우드 STT처럼 요청량 · 언어 · 실시간 여부에 따라 요금 표가 흔들리지 않습니다.
  • 단점 — 실시간 미지원. 라이브 스트림은 다른 도구가 필요합니다. 회의록처럼 회의 종료 후 처리하는 워크플로우에 최적.
  • 단점 — 25MB 파일 크기 상한. 60분 이상 회의는 ffmpeg 등으로 분할 후 순차 전사 필요.

기술 노트 — Whisper 호출은 multipart, 요약은 JSON 강제

  • Whisper 엔드포인트(/v1/audio/transcriptions)는 multipart/form-data 방식으로 파일을 보냅니다. n8n의 HTTP Request 노드에서 Body Content Type: Form-Data (Multipart) + Parameter Type: n8n Binary File + Input Data Field: data로 설정.
  • GPT 요약은 반드시 response_format: { type: 'json_object' } 옵션을 켜야 valid JSON이 안정적으로 반환됩니다. 파싱 실패 방지.
  • OpenAI 노드가 아닌 HTTP Request를 쓰는 이유는 sales-report · cs-triage와 동일 — n8n 노드의 chat 요청 이슈 우회.

예외 상황 처리

  • Whisper가 음성을 못 알아들음 — 무음 · 노이즈만 있는 파일은 짧은 전사(예: '음악' 한 단어)로 반환. GPT가 이를 요약하면 어색한 결과가 나올 수 있으니, 실제 프로덕션에서는 if transcript.length < 30 then skip 정도의 IF 노드를 추가하는 것이 안전.
  • Whisper mis-transcription — 예: 'A/B 테스트' → 'ADB 테스트'로 잘못 옮겨지는 경우 있음. GPT가 뒤에서 문맥으로 보정하는 경우가 많지만, 도메인 특수 용어(제품명, 사람 이름)는 오류 가능성 있음.
  • 25MB 초과 — Whisper API가 400 에러. 사전 분할 필요. ffmpeg -i input.mp3 -f segment -segment_time 900 -c copy chunk_%03d.mp3로 15분씩 잘라 순차 처리하는 preprocessor 추가.
  • Drive 폴더 감시 지연 — Google Drive Trigger는 최소 1분 폴링. 진짜 실시간이 필요하다면 webhook 트리거로 교체(파일 업로드 알림을 별도로 발송하는 인터페이스 필요).
  • 동일 파일 재감지 — Trigger는 파일 ID로 dedupe하지만, 안전을 위해 처리 후 파일을 processed/ 하위 폴더로 이동하는 노드를 추가 권장.
40분 → 2분
회의록 작성 시간
회의 종료 1분 후
Slack에 요약 도착
$0.01
45초 회의 처리 비용
담당자·기한 추출
자동
회의 끝나면 회의록이 이미 슬랙에 올라와 있어요. 받아적느라 회의를 놓치던 게 옛날 일입니다.프로덕트 매니저

당신의 업무도
여기 들어갈 수 있어요.

가장 반복적인 업무 하나만 알려주세요. 자동화 시나리오를 그려드립니다.