Quick Overview
This workflow pulls recent Zoom cloud recordings on a schedule, saves video/audio/transcripts to Google Drive, logs links in Google Sheets, and posts updates to Telegram. It also embeds transcript chunks with OpenAI into a Supabase vector store and runs a Telegram Q&A assistant with Postgres chat memory.
How it works
- Runs on a schedule (hourly between 11:00–23:00) or manually to fetch the last day of Zoom cloud recordings via the Zoom API.
- Groups Zoom recording files by meeting/session, computes a unique recording key, and skips any recordings already tracked in an n8n Data Table.
- For each new recording, creates a Google Drive folder and uploads the MP4 video, M4A audio, and a cleaned transcript text file.
- Writes or updates a row in Google Sheets with the meeting name, date, and Google Drive links, then marks the recording as done in the Data Table.
- Posts the meeting and recording links to a Telegram chat.
- Reads newly added sheet rows, downloads each transcript from Google Drive, generates a call_id, splits the text into chunks, creates OpenAI embeddings, and inserts the chunks with metadata into a Supabase vector store.
- When a Telegram message arrives, an OpenAI-powered agent uses Postgres chat memory plus tools that query Supabase to list meetings and retrieve relevant transcript chunks, then replies in Telegram with cited meeting/date context.
Setup
- Create credentials for Zoom OAuth2, Google Drive OAuth2, Google Sheets OAuth2, OpenAI, Supabase, Postgres (Supabase session pooler connection), and a Telegram bot token from @BotFather.
- In Supabase, enable pgvector and create the documents table and match_documents function (use vector(1536) or match your chosen OpenAI embedding model dimensions).
- Run the workflow once to create the n8n Data Table, then select the zoom_recordings_processed table in the “not yet processed”, “processing”, and “done” steps.
- Choose the target Google Drive parent folder and set the Google Sheets document/sheet, ensuring it has Meeting, Date, Video, Transcript, and Audio columns.
- Set your Telegram chat ID for the notification message and activate the Telegram Trigger by starting a conversation with your bot.
- Review the schedule window/time zone and select your preferred OpenAI chat model before activating the workflow.