커뮤니티 운영 자동화를 위한 Zoom 예약 & 업로드 시스템 구축기

소개

반복적인 회의 운영 업무가 점점 커뮤니티 운영의 발목을 잡고 있었습니다. 특히 커뮤니티가 커지면서 다음과 같은 일들이 점점 더 자주, 그리고 복잡하게 일어나기 시작했죠:

  • 📥 회의 신청을 받고, 줌 회의를 예약하고, 링크를 수동으로 보내야 함

  • 🎞️ 회의가 끝나면 녹화본을 드라이브에 올리고, YouTube에 따로 업로드해야 함

  • 🔗 다시보기를 신청자들에게 안내하려면 수작업으로 URL을 찾아 공유해야 함

이런 작업이 반복되면서 운영자의 리소스는 점점 소모되고, 커뮤니티 확장은 커녕 ‘유지’ 자체가 힘들어지는 순간이 찾아왔습니다.

그래서 생각했습니다. “운영자의 반복 업무를 없애야 커뮤니티가 더 확장 가능하지 않을까?”

이 프로젝트는 그런 문제의식에서 출발한 AI 기반 자동화 시스템 구축 실험입니다.

현재까지 다음 두 가지를 구현했습니다:

  1. 🔄 Zoom 회의 신청서 제출 → 자동 예약 + 줌링크 이메일 발송

  2. ☁️ 회의 종료 후 녹화본 Google Drive 업로드 + 특정 파일만 YouTube 업로드 → 다시보기 URL 자동 저장

⚠️ 워크플로 노드 하나씩 뜯어보고 싶으시면 이거 json 다운 받아서 import 시켜서 열어보세요!

https://drive.google.com/file/d/1QLVpiEDCfU4JjuvRHLzfI3ZWUwNIpXix/view?usp=sharing


진행 방법

✅ [1] 회의 신청 시 Zoom 자동 예약 + 이메일 전송

사용 도구

  • Airtable: 폼 & DB 관리

  • n8n: 자동화 워크플로 작성

  • Zoom API: 회의 예약

  • Email 노드: 신청자에게 회의 링크 발송

  • Slack 노드: 예약 완료 알림 슬랙 전송 (운영자용)

상세 흐름

  1. 에어테이블 폼 생성 및 제출
    Airtable에서 회의 신청용 폼을 생성합니다.

    한국 신청서의 스크린 샷
  2. 폼 제출 시 n8n의 Airtable Trigger로 감지
    Airtable Trigger 노드가 Created 필드를 기준으로 작동하여 새로운 신청이 들어왔을 때 워크플로를 시작합니다.

  3. Zoom 회의 생성
    Zoom: Create Meeting 노드에서 회의 정보를 Zoom API로 전송합니다. 타임존은 Asia/Seoul로 맞춰야 하며, ISO 포맷 변환이 필요합니다.

    startTime: DateTime.fromISO($json.fields["회의 시작시간"]).setZone('Asia/Seoul').toFormat('yyyy-MM-dd HH:mm')
    한국 텍스트가 강조된 한국 웹 사이트 스크린 샷
    한국어는 화면에서 강조 표시됩니다
  4. 회의 정보 추출 및 정리
    Set 노드를 통해 Zoom API 응답에서 필요한 값들을 구조화합니다:

    • topic

    • join_url

    • start_time

    • duration

    • host_email

  5. Airtable DB에 줌 정보 업데이트
    회의 신청 레코드를 기준으로 Zoom 링크와 회의 ID를 Airtable 필드에 업데이트합니다.

  6. 이메일 전송 (Gmail 노드)
    HTML 템플릿을 이용해 회의 안내 메일을 신청자와 호스트에게 자동 발송합니다. 예시:

    <b>예약된 시간</b> : 2025-08-05 21:00 (120 분)<br>
    <b>회의명</b> : 커뮤니티 AI 운영 자동화 길드 킥오프 모임<br>
    <b>줌링크</b> : https://us06web.zoom.us/j/81746262758?pwd=xxx
    한국의 메시지 스크린 샷
  7. 슬랙 알림 발송
    관리용 슬랙 채널로 회의 생성 완료 알림을 전송합니다. 운영자가 실시간 흐름을 인지할 수 있도록 합니다.


✅ [2] 회의 종료 후 자동 업로드 및 기록

사용 도구

  • n8n: 자동화 스케줄 관리

  • Zoom API: 회의/레코딩 조회

  • Google Drive API: 파일 저장

  • YouTube API: 영상 업로드

  • Airtable: URL 저장

  • Slack: 관리자 알림

상세 흐름

비즈니스 프로세스의 다이어그램

  1. 트리거 설정 (Cron 또는 Manual Trigger)
    기본적으로 매일 오전 10시에 전날 회의를 대상으로 워크플로가 자동 실행됩니다. Set 노드를 통해 조회 기간을 명시:

    시작일: '어제 날짜'
    종료일: '어제 날짜'
  2. Zoom API로 회의 레코딩 목록 조회
    GET /v2/users/me/recordings 요청으로 전날의 회의 레코딩 목록을 가져옵니다. 반환된 데이터는 meetings 배열로 구성되며, 이후 이를 SplitOut 노드로 분할합니다.

  3. 회의별 정보 정리
    각 회의에 대해 topic, start_time 등을 기준으로 폴더명 등 메타정보를 생성합니다:

    folder_name = "{{ start_time.split('T')[0] }} | {{ topic }}"
  4. Google Drive에 폴더 검색 또는 생성
    해당 날짜·제목 기반 폴더가 이미 존재하는지 확인하고, 없다면 생성합니다.

  5. 녹화 파일 다운로드 및 업로드
    회의 레코딩에는 약 8종류의 파일이 포함됩니다. 이를 모두 Google Drive에 업로드합니다.

  6. YouTube에 업로드할 파일 필터링
    다음 조건을 만족하는 파일만 YouTube에 업로드합니다:

    $json.recording_type === 'shared_screen_with_speaker_view(CC)'
  7. YouTube API를 통해 영상 업로드
    폴더명을 제목으로 하여 영상을 업로드하고, play_url 값을 추출합니다.

    버튼을 가리키는 빨간색 화살표가있는 화면 스크린 샷
    YouTube
  8. Airtable 회의 레코드 업데이트
    기존 신청 기록 중 회의명과 Zoom ID가 일치하는 레코드를 찾아 다시보기 URL 필드에 YouTube 링크를 업데이트합니다.

  9. 슬랙 알림 발송
    업로드 완료 후 관리자용 슬랙 채널에 완료 메시지를 발송합니다.


✨ 향후 계획

  1. 공용 Zoom 계정의 일회용 인증코드 전달 자동화

    • 현재 회의 당일 로그인 시 필요한 일회용 인증코드가 담당자 이메일로만 전송되어, 회의 신청자에게 수동 전달이 필요합니다.

    • 이 과정을 자동화하여, 신청자에게 실시간으로 인증코드를 전달할 수 있도록 할 예정입니다.

    • 👉 이메일 연동 + 담당자 필터링 + 자동 포워딩 시스템 구현 고려

  2. 회의 리마인드 문자 & 이메일 자동 전송 (Solapi 연동)

    • 회의 참석자들에게 당일 아침에 Zoom 링크와 리마인드를 수동으로 보내고 있음 → 매우 반복적

    • 앞으로는 Solapi API를 이용해 신청 즉시 확인 문자 전송 + 회의 당일 오전 리마인드 자동 발송 계획

    • 👉 신청 시 이름/전화번호 필드 확보 → 예약 SMS 자동화

  3. 회의 자동 요약 및 회의록 작성 → Notion DB에 적재

    • Zoom 녹화본 또는 텍스트로부터 LLM 기반 회의 요약 생성

    • Notion API와 연결하여, 요약된 회의록을 자동으로 데이터베이스에 기록

    • 👉 회의 기록의 검색성과 축적 가능성 향상 기대


참고1) 로컬n8n에서 구글계정 연동하는 법

참고2) n8n에서 줌API 연동하는 법

  • https://marketplace.zoom.us 에 접속

  • 우측 상단의 “Develop”(개발) → “Build App”(앱 만들기) 선택.

  • General App 선택

어떤 종류의 앱을 만들고 있습니까?

  • Scope에서 Recording, Meetings, Meeting 추가 (필요 시 더 추가)
    이때 Select All 선택하면 쉽게 할 수 있음

    Google Docs에서 스코프 추가 페이지의 스크린 샷
    Azure의 Scopes Add 페이지의 스크린 샷
  • Basic Information에서 n8n 크리덴셜 redirect url 주소를 붙여넣음

  • Client ID와 Client Secret을 n8n 크리덴셜 설정하는 곳에 붙여넣음

  • Connect 누르고 -> Accept 하면 성공

    텍스트 nrbzdba가있는 줌 페이지의 스크린 샷은 허가와 같습니다.

3
2개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요