How to Download and Transcribe Zoom Recordings with Jinba
Summary
- Zoom's Workflow builder focuses on scheduling and notifications, not transcript handling; extracting VTT, parsing, summarizing, and filing remain manual.
- The automated pipeline uses
ZOOM_LIST_CLOUD_RECORDINGS,ZOOM_GET_CLOUD_RECORDING,VTT_PARSE, and an AI step to produce plain-text transcripts and structured summaries. - Required prerequisites are cloud recording, audio transcription, and a Server-to-Server OAuth app with
cloud_recording:read:adminscope. - Jinba Flow closes this gap with a chain of tools that automates VTT-to-summary workflow and archives both with an audit trail.
Zoom's cloud recording infrastructure gets teams most of the way to an automated transcript workflow. The final steps — extracting the VTT file, converting it to plain text, summarizing it, and filing it somewhere searchable — remain manual. A pattern observed consistently across user discussions is that Zoom's native Workflow builder was built around scheduling and notification triggers, not transcript handling. The AI transcript lives in a separate system that the Workflow creator does not expose as an action, and there is no built-in path to move it to Google Drive, SharePoint, or any other destination automatically.
Jinba closes that gap with a chain of purpose-built tools: ZOOM_LIST_CLOUD_RECORDINGS, ZOOM_GET_CLOUD_RECORDING, VTT_PARSE, and either ANTHROPIC_INVOKE or OPENAI_INVOKE. The result is a zoom automation workflow that downloads a recording's transcript, parses it into plain text, generates a structured summary, and archives both with a logged audit trail.
The short answer: use ZOOM_LIST_CLOUD_RECORDINGS to find the recording, ZOOM_GET_CLOUD_RECORDING to retrieve its recording_files and the VTT download URL, VTT_PARSE to convert the file to clean text, and ANTHROPIC_INVOKE or OPENAI_INVOKE to produce the summary. Write both to Google Drive or SharePoint and log the action. The six steps below build that pipeline in full.
Prerequisites: preparing Zoom for automation
Before any Jinba tool can retrieve a transcript, two settings must be active in the Zoom account.
Enable cloud recording. Sign in to your Zoom account, navigate to Account Settings, then Recording, and toggle Cloud recording on. Without this, meetings are not stored in a location the API can reach. Full configuration options are documented in the Zoom cloud recording developer guide.
Enable audio transcription. In the same Recording settings panel, enable the option to create an audio transcript. This tells Zoom to generate a VTT file alongside the video and audio files after each meeting ends. If the account uses Zoom's AI features, the cloud_recording_transcript_option value in the API controls what is generated: 1 produces a VTT transcript file, 2 produces both a VTT file and a JSON AI summary. Either value supports the workflow below. Note that AI summary generation may require a subscription to the Zoom Build Platform credit plan.

Once both settings are active, every recorded meeting will produce a VTT file that the Jinba workflow can retrieve.
Step 1: authenticate with Zoom
The workflow opens with a call to ZOOM_SERVER_TO_SERVER_OAUTH. This establishes a secure, server-side connection to the Zoom API without requiring user interaction at runtime.
The tool requires three parameters:
account_id: the Zoom account identifierclient_id: the client ID from the Server-to-Server OAuth appclient_secret: the corresponding secret
These credentials come from a Server-to-Server OAuth app created in the Zoom App Marketplace. The app must have the cloud_recording:read:admin scope to list and fetch recordings. The token returned by this step is passed to all subsequent Zoom tool calls.
Step 2: list available cloud recordings
With a valid token, ZOOM_LIST_CLOUD_RECORDINGS queries the account and returns all stored cloud recordings. Running this against the full recording history is inefficient. Use the from and to date parameters to scope the query to a relevant window — for a daily scheduled workflow, setting from to the previous day and to to today returns only the meetings that need processing.
The response includes meeting topic, duration, UUID, and the meeting ID used in the next step.
Step 3: fetch the recording and locate the VTT file
Pass the meeting ID from Step 2 to ZOOM_GET_CLOUD_RECORDING. The tool returns a recording_files array, where each entry represents one file associated with that meeting. Files are distinguished by their file_type field:
MP4: the video recordingM4A: audio onlyVTT: the timed transcriptJSON: Zoom's native AI summary, if generated
For this workflow, filter the array for the entry with file_type: VTT and extract its download_url. That URL is the input to the parsing step. The Zoom cloud recording documentation covers the full structure of the recording_files response.
Step 4: parse the WebVTT transcript
A raw VTT file contains the spoken words alongside timestamp markers and cue metadata. That structure is not suitable for direct input to an AI model or a search index. VTT_PARSE strips the formatting and returns only the transcript text.
The output_format parameter controls the result:
txt: a single block of plain text, ready to pass directly to an AI steparray: a structured list of cues, useful when the workflow needs to process the transcript segment by segment
For summarization, txt is the correct choice. The output is a clean string containing everything spoken in the meeting, with no timestamps or cue identifiers. This approach mirrors the core function of libraries such as webvtt-transcript, which exist precisely because raw VTT is not directly usable as plain text.
Step 5: summarize with an AI step
The plain text from Step 4 goes into ANTHROPIC_INVOKE (Claude) or OPENAI_INVOKE (GPT). The choice between them depends on the models already available in the Jinba environment; the workflow structure is identical either way.
The prompt determines what the AI returns. Three patterns cover most business use cases:
- Key points: "Summarize the following meeting transcript into five bullet points covering the main topics discussed."
- Action items: "Extract all action items from this transcript. For each item, list the task and the name of the person assigned."
- Decisions: "Identify the key decisions made in this meeting and the rationale provided for each."
The AI step produces a structured text block that is filed alongside the raw transcript in the next step. Businesses that need different outputs for different meeting types can parameterize the prompt based on meeting topic or calendar label.
Step 6: archive and log
The final step writes both the parsed transcript and the AI summary to a central location and records that the action took place. Use Jinba's file storage integrations — such as GDRIVE_UPLOAD_FILE for Google Drive or the equivalent SharePoint connector — to create a new document for each meeting.
A reliable archive structure separates the two outputs: one file for the full transcript (useful for keyword search and compliance), one for the summary (useful for quick review). Naming both files after the meeting topic and date makes them retrievable without opening them.
The audit log entry should capture at minimum:
- The meeting topic and UUID
- The timestamp when the workflow ran
- The destination path where the files were saved
This log serves as the accountability layer. When a question arises about what was discussed in a specific meeting, the log confirms that the transcript exists, where it is, and when it was processed.
A complete workflow in sequence
The full chain, run on a daily schedule, looks like this:
auth_token = ZOOM_SERVER_TO_SERVER_OAUTH(account_id, client_id, client_secret)
recordings = ZOOM_LIST_CLOUD_RECORDINGS(from: 'yesterday', to: 'today')
for each recording in recordings:
details = ZOOM_GET_CLOUD_RECORDING(id: recording.id)
vtt_file = find file where file_type = 'VTT' in details.recording_files
transcript = VTT_PARSE(file_url: vtt_file.download_url, output_format: 'txt')
summary = OPENAI_INVOKE(prompt: "Summarize this meeting transcript: " + transcript)
GDRIVE_UPLOAD_FILE(content: transcript, name: recording.topic + "_transcript")
GDRIVE_UPLOAD_FILE(content: summary, name: recording.topic + "_summary")
LOG(message: "Processed " + recording.topic + " at " + timestamp)
Each meeting in the date range is processed in turn. The loop handles batches without additional configuration — if ten meetings occurred yesterday, all ten are transcribed, summarized, and filed in the same run.
What this workflow produces
The output of this zoom automation is a searchable knowledge base built from meetings that would otherwise require manual download, copy-paste, and filing. Each meeting produces a plain-text transcript that tools like Google Drive's full-text search or SharePoint's index can surface by keyword, and a structured summary that captures decisions and action items without requiring someone to re-read the full transcript.
The common workaround — accepting manual transcript downloads as a permanent state — is a fixed time cost on every meeting that has a recording. For teams running multiple recorded calls per day, that cost compounds. The Jinba workflow eliminates it at the point where Zoom's native tooling stops: the VTT file is available via API, and the pipeline from there to a filed, summarized document is fully automatable.
Teams that want to extend the workflow can add a prompt that tags each summary by meeting type, route different meeting categories to different Drive folders, or post a summary excerpt to a Slack channel immediately after processing. The core chain — authenticate, list, fetch, parse, summarize, archive — remains the same.

To get started, create a Server-to-Server OAuth app in the Zoom App Marketplace, enable cloud recording and audio transcription in Account Settings, and configure the Jinba workflow to run on the schedule that matches the team's meeting cadence.
Frequently Asked Questions
How do I automatically export Zoom transcripts?
Use a workflow that authenticates with Zoom, lists cloud recordings for the date range, fetches the recording details, extracts the VTT download URL, parses the VTT to text, and uploads the result to Google Drive or SharePoint. In Jinba, this is the chain ZOOM_SERVER_TO_SERVER_OAUTH → ZOOM_LIST_CLOUD_RECORDINGS → ZOOM_GET_CLOUD_RECORDING → VTT_PARSE → GDRIVE_UPLOAD_FILE. This turns a manual download into a scheduled, repeatable process.
Can Zoom automatically send recordings or transcripts to Google Drive?
Not natively through Zoom’s Workflow builder. Zoom’s workflow triggers are designed around scheduling and notifications, and the AI transcript system is not exposed as an action that can write to Google Drive. A tool like Jinba closes that gap by pulling the transcript through Zoom’s API and then uploading it to Google Drive or SharePoint.
What is a VTT file, and why do I need to parse it?
VTT is WebVTT, a timed-text format that stores the transcript alongside cue timestamps and metadata. Raw VTT is not ideal for summarization or full-text search because it includes timing and formatting data. Parsing it with a step like VTT_PARSE produces clean plain text that AI models and search indexes can use directly.
What Zoom settings are required for automated transcripts?
You must enable two settings in the Zoom account: cloud recording and audio transcription. Cloud recording stores the meeting in a location the API can access, and audio transcription tells Zoom to generate a VTT transcript file. You also need a Server-to-Server OAuth app with the cloud_recording:read:admin scope to list and download recordings.
Do I need a paid Zoom plan to automate transcripts?
Cloud recording and transcript generation are tied to Zoom’s plan and add-on entitlements. You need a Zoom plan that includes cloud recording and, if you want Zoom’s native AI summary alongside the VTT, you may need the Zoom Build Platform credit plan. The Jinba workflow itself requires valid Zoom API credentials but does not require manual transcript downloads.
Can I use OpenAI instead of Anthropic to summarize Zoom meetings?
Yes. Jinba provides both ANTHROPIC_INVOKE and OPENAI_INVOKE, and the workflow structure is the same for either. Choose the model that is already available in your environment or the one that best matches your company’s data-handling policies. The prompt templates for key points, action items, and decisions work with both.
How do I extract action items from a Zoom transcript automatically?
After parsing the VTT to plain text, pass the transcript to an AI step with an action-item prompt, such as: “Extract all action items from this transcript. For each item, list the task and the name of the person assigned.” The AI returns a structured text block that you can archive alongside the raw transcript.
How long after a Zoom meeting is the transcript available?
Zoom generates the transcript after the meeting ends and the recording has finished processing. Processing time varies based on meeting length and Zoom’s queue, so a scheduled workflow should use a date window rather than expecting the file to be available immediately. A daily run that processes the previous day’s recordings is usually reliable.