What this workflow does
- New file in source folder polls a Google Drive folder every 15 minutes for new files.
- Check file type and size lets audio and video under 25 MB through. Anything else goes to Slack with a clear reason, for example “export audio only and upload again”.
- Download file pulls the recording from Drive.
- Transcribe with timestamps sends it to OpenAI’s transcription endpoint and asks for segment timestamps.
- Build timestamped transcript formats
[mm:ss] textlines and keeps the Drive link with the transcript. - Extract ideas and draft posts asks Claude for three to five ideas. Each comes with one to three verbatim quotes and their timestamps, a LinkedIn post under 1,200 characters, a two to four sentence newsletter blurb, and a 30 to 90 second clip. The output follows a strict JSON schema.
- Verify quotes normalizes punctuation and spacing, then requires each quote to appear word for word in the transcript. Near misses are listed on the card for the editor. Ideas with no verified quote are rejected and reported, as are refusals, truncated replies and responses with no text block.
- Create review card adds one Notion page per idea with status “Needs review”, the drafts, the verified quotes and the quote check result.
- Tell the editor posts one Slack message with the number of cards waiting. Alert: repurposing needs attention collects every failure.
Nothing is published or scheduled by this workflow. An editor approves each card first.
Before you import
- A current n8n version, cloud or self-hosted.
- Google Drive access to the folder where recordings land.
- An OpenAI API key for transcription and an Anthropic API key for drafting.
- A Notion integration shared with your review database.
- A Slack app that can post.
Setup
- In Notion, create a database with: Name (title), Status (select with a “Needs review” option), Source (URL), and text properties LinkedIn post, Newsletter blurb, Clip, Quotes and Quote check.
- Import the JSON and attach credentials: Google Drive OAuth2 on the trigger and download nodes, OpenAI on the transcription node, Anthropic on the Claude node, Notion on the card node, Slack on both Slack nodes.
- Replace
REPLACE_WITH_DRIVE_FOLDER_ID,REPLACE_WITH_NOTION_DATABASE_ID,REPLACE_WITH_EDITOR_CHANNELandREPLACE_WITH_ALERTS_CHANNEL. - Replace the placeholder voice guide at the end of the Claude system prompt with your own: audience, words you use and avoid, emoji and hashtag rules, and a few posts you liked.
Test it
Upload a short MP3 (five to ten minutes) of a talk you know well. Run the workflow manually or wait for the next poll. Check that the Notion cards appear, that each quote is something the speaker actually said, and that the timestamps line up. Then upload a PDF and confirm it is skipped with a Slack message.
Make it production-ready
- Long recordings and formats. Export audio only, or split files, to stay under the 25 MB limit. The endpoint accepts mp3, mp4, mpeg, mpga, m4a, wav and webm, so convert other formats such as MOV first. Use a speech-to-text service with speaker labels if you need names.
- One prompt per format. Once the drafts are close, split the Claude call so each format has its own rules and examples.
- Publishing. When an editor sets a card to Approved, push it to your scheduler in a separate workflow and write the post ID back to the card.
- Error workflow and retries. Transcription and Claude both retry. Add an n8n error workflow for anything else.
- Cost control. Long transcripts are the main model cost, so cap recording length or trim intros and Q&A first.
The content repurposing guide covers voice guides, formats and what breaks over time. For help wiring this into your scheduler or CMS, contact Lumeor.