소개
반복적인 회의 운영 업무가 점점 커뮤니티 운영의 발목을 잡고 있었습니다. 특히 커뮤니티가 커지면서 다음과 같은 일들이 점점 더 자주, 그리고 복잡하게 일어나기 시작했죠:
📥 회의 신청을 받 고, 줌 회의를 예약하고, 링크를 수동으로 보내야 함
🎞️ 회의가 끝나면 녹화본을 드라이브에 올리고, YouTube에 따로 업로드해야 함
🔗 다시보기를 신청자들에게 안내하려면 수작업으로 URL을 찾아 공유해야 함
이런 작업이 반복되면서 운영자의 리소스는 점점 소모되고, 커뮤니티 확장은 커녕 ‘유지’ 자체가 힘들어지는 순간이 찾아왔습니다.
그래서 생각했습니다. “운영자의 반복 업무를 없애야 커뮤니티가 더 확장 가능하지 않을까?”
이 프로젝트는 그런 문제의식에서 출발한 AI 기반 자동화 시스템 구축 실험입니다.
현재까지 다음 두 가지를 구현했습니다:
🔄 Zoom 회의 신청서 제출 → 자동 예약 + 줌링크 이메일 발송
☁️ 회의 종료 후 녹화본 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 노드: 예약 완료 알림 슬랙 전송 (운영자용)
상세 흐름
에어테이블 폼 생성 및 제출
Airtable에서 회의 신청용 폼을 생성합니다.폼 제출 시 n8n의 Airtable Trigger로 감지
Airtable Trigger 노드가Created필드를 기준으로 작동하여 새로운 신청이 들어왔을 때 워크플로를 시작합니다.Zoom 회의 생성
Zoom: Create Meeting노드에서 회의 정보를 Zoom API로 전송합니다. 타임존은Asia/Seoul로 맞춰야 하며, ISO 포맷 변환이 필요합니다.startTime: DateTime.fromISO($json.fields["회의 시작시간"]).setZone('Asia/Seoul').toFormat('yyyy-MM-dd HH:mm')회의 정보 추출 및 정리
Set노드를 통해 Zoom API 응답에서 필요한 값들을 구조화합니다:topic
join_url
start_time
duration
host_email
Airtable DB에 줌 정보 업데이트
회의 신청 레코드를 기준으로 Zoom 링크와 회의 ID를 Airtable 필드에 업데이트합니다.이메일 전송 (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슬랙 알림 발송
관리용 슬랙 채널로 회의 생성 완료 알림을 전송합니다. 운영자가 실시간 흐름을 인지할 수 있도록 합니다.
✅ [2] 회의 종료 후 자동 업로드 및 기록
사용 도구
n8n: 자동화 스케줄 관리
Zoom API: 회의/레코딩 조회
Google Drive API: 파일 저장
YouTube API: 영상 업로드
Airtable: URL 저장
Slack: 관리자 알림
상세 흐름
트리거 설정 (Cron 또는 Manual Trigger)
기본적으로매일 오전 10시에 전날 회의를 대상으로 워크플로가 자동 실행됩니다. Set 노드를 통해 조회 기간을 명시:시작일: '어제 날짜' 종료일: '어제 날짜'Zoom API로 회의 레코딩 목록 조회
GET /v2/users/me/recordings요청으로 전날의 회의 레코딩 목록을 가져옵니다. 반환된 데이터는meetings배열로 구성되며, 이후 이를SplitOut노드로 분할합니다.회의별 정보 정리
각 회의에 대해 topic, start_time 등을 기준으로 폴더명 등 메타정보를 생성합니다:folder_name = "{{ start_time.split('T')[0] }} | {{ topic }}"Google Drive에 폴더 검색 또는 생성
해당 날짜·제목 기반 폴더가 이미 존재하는지 확인하고, 없다면 생성합니다.녹화 파일 다운로드 및 업로드
회의 레코딩에는 약 8종류의 파일이 포함됩니다. 이를 모두 Google Drive에 업로드합니다.YouTube에 업로드할 파일 필터링
다음 조건을 만족하는 파일만 YouTube에 업로드합니다:$json.recording_type === 'shared_screen_with_speaker_view(CC)'YouTube API를 통해 영상 업로드
폴더명을 제목으로 하여 영상을 업로드하고,play_url값을 추출합니다.Airtable 회의 레코드 업데이트
기존 신청 기록 중 회의명과 Zoom ID가 일치하는 레코드를 찾아다시보기 URL필드에 YouTube 링크를 업데이트합니다.슬랙 알림 발송
업로드 완료 후 관리자용 슬랙 채널에 완료 메시지를 발송합니다.
✨ 향후 계획
공용 Zoom 계정의 일회용 인증코드 전달 자동화
현재 회의 당일 로그인 시 필요한 일회용 인증코드가 담당자 이메일로만 전송되어, 회의 신청자에게 수동 전달이 필요합니다.
이 과정을 자동화하여, 신청자에게 실시간으로 인증코드를 전달할 수 있도록 할 예정입니다.
👉 이메일 연동 + 담당자 필터링 + 자동 포워딩 시스템 구현 고려
회의 리마인드 문자 & 이메일 자동 전송 (Solapi 연동)
회의 참석자들에게 당일 아침에 Zoom 링크와 리마인드를 수동으로 보내고 있음 → 매우 반복적
앞으로는 Solapi API를 이용해 신청 즉시 확인 문자 전송 + 회의 당일 오전 리마인드 자동 발송 계획
👉 신청 시 이름/전화번호 필드 확보 → 예약 SMS 자동화
회의 자동 요약 및 회의록 작성 → Notion DB에 적재
Zoom 녹화본 또는 텍스트로부터 LLM 기반 회의 요약 생성
Notion API와 연결하여, 요약된 회의록을 자동으로 데이터베이스에 기록
👉 회의 기록의 검색성과 축적 가능성 향상 기대
참고1) 로컬n8n에서 구글계정 연동하는 법
https://www.gpters.org/nocode/post/gmail-interlocking-n8n-cloud-9XBb19CsIwBrmI5
재엽님의 게시글만 봐도 충분합니다
제가 찍은 영상인데 무미건조하긴 하지만 볼만합니다.. 따라하면 도움이 될 거예요
참고2) n8n에서 줌API 연동하는 법
우측 상단의 “Develop”(개발) → “Build App”(앱 만들기) 선택.
General App 선택
Scope에서 Recording, Meetings, Meeting 추가 (필요 시 더 추가)
이때 Select All 선택하면 쉽게 할 수 있음
Basic Information에서 n8n 크리덴셜 redirect url 주소를 붙여넣음
Client ID와 Client Secret을 n8n 크리덴셜 설정하는 곳에 붙여넣음
Connect 누르고 -> Accept 하면 성공
끗