Nightly voice memo transcription in a Google Drive folder

By General Input

Every night at 2am, transcribe any new audio in your designated Google Drive folder and drop a text file next to each recording.

Integrations

  • Cartesia
  • Google Drive

Type

Deterministic Code

Categories

  • Operations
  • Personal Productivity

Every night at 2am, sweep a designated Google Drive folder for new audio files (voice memos, interview recordings, dictated notes) and drop a text transcript next to each one. This is a deterministic code workflow: list, skip-if-sibling-exists, download, transcribe, write, next.

Trigger: cron at 02:00 in the org's timezone. Track a lastRunTimestamp between runs so each sweep only picks up recordings added since the previous run.

Step 1 — find new audio. Call Google Drive's List Files action with a q filter of parents = '<transcripts-inbox folder id>' and mimeType contains 'audio/' and createdTime > <lastRunTimestamp> and trashed = false. Page through the results (nextPageToken) so no file is missed. Request the id, name, and mimeType fields.

Step 2 — skip if already transcribed. For each returned audio file, derive the transcript name as <base name>.txt (strip the audio extension, append .txt). Before doing anything expensive, run a second Google Drive List Files with q = parents = '<same folder id>' and name = '<base name>.txt' and trashed = false. If it returns any hit, skip the file — we never re-transcribe.

Step 3 — download the audio. Call Google Drive's Download File Content action with the audio file's id to pull the raw bytes.

Step 4 — transcribe. Call Cartesia's Transcribe Audio (STT) action, uploading the audio bytes as the file part and setting the model to ink-whisper. Cartesia's Ink Whisper is a batch STT model that handles arbitrary-length audio, so no chunking is needed.

Step 5 — write the transcript. Take the returned transcript text and call Google Drive's Create File From Text action to save it into the same parent folder as the source recording, named <base name>.txt, with mimeType text/plain.

Then move to the next file. After the loop finishes, persist the new lastRunTimestamp so tomorrow's sweep starts where this one ended.

No summarization, no formatting, no judgement — the .txt is the raw transcript verbatim. The sibling-check makes the whole workflow idempotent: safe to re-run any time without duplicate transcripts.

Related prompts

Explore more prompts
Ad creative studio with a pre-approved variant libraryFilter every signed Ironclad contract and brief it on demandArtwork desk for the Notion posts still missing an imageWebinar promo desk: find Zoom sessions missing artworkTurn Google Drive scripts into narrated audio, line by lineWork your Shopify catalog until every product has a clipTurn a campaign brief into a storyboard your team can animateKeep your brand's AI characters consistent across campaignsPitch deck studio: reps pick the slides before every meetingAgency reporting board that builds each client's Slides deck