Convert podcasts to LinkedIn articles with WayinVideo and GPT-4o-mini

Go to Workflow
0 views
Built by isaWOW isaWOW
Created on June 05, 2026

Description

Description

Submit your podcast or video URL using a simple form and the workflow automatically transcribes the full episode with speaker labels and timestamps. GPT-4o-mini then reads the transcript and writes a complete LinkedIn newsletter article — headline, 400–600 word body, five key takeaways, and hashtags — following seven LinkedIn readability rules. The finished draft is saved to Google Sheets with a Status of "Draft" so you can review and publish when ready. Built for podcast hosts, content marketers, and personal brand builders who want to turn every episode into a LinkedIn article without writing from scratch.

What This Workflow Does

Transcribes your podcast with speaker labels** — WayinVideo processes the full episode and returns each segment attributed to the correct speaker with timestamps
Polls automatically until transcription is complete** — Waits 60 seconds then checks the status repeatedly every 30 seconds until the transcript is ready, with no manual monitoring needed
Formats the transcript for AI analysis** — Structures every segment as speaker name with timestamp so GPT understands who said what and when
Writes a complete LinkedIn article** — GPT-4o-mini produces a headline, full 400–600 word article body, five key takeaways starting with action verbs, and 5–8 relevant hashtags
Applies LinkedIn readability rules** — The AI follows seven specific rules: short paragraphs, strong opening hook, human conversational tone, no filler, consistent tone throughout, and a closing CTA
Saves the draft to Google Sheets** — Appends a row with headline, article, key takeaways, hashtags, word count, episode duration, and Status set to "Draft" — ready for your review before publishing

Setup Requirements

Tools Needed
n8n instance (self-hosted or cloud)
WayinVideo account with API access
OpenAI account with GPT-4o-mini API access
Google Sheets (one sheet with a tab named LinkedIn Drafts)

Credentials Required
WayinVideo API key (pasted directly into 2. WayinVideo — Submit Transcription and 4. WayinVideo — Get Transcript Results)
OpenAI API key
Google Sheets OAuth2

> ⚠️ WayinVideo API key appears in 2 steps — replace YOUR_WAYINVIDEO_API_KEY in both 2. WayinVideo — Submit Transcription and 4. WayinVideo — Get Transcript Results. Missing either one will cause the workflow to fail.

Estimated Setup Time: 15–20 minutes

Step-by-Step Setup

Import the workflow — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import

Get your WayinVideo API key — Log in to your WayinVideo account → go to Account Settings → copy your API key

Add your WayinVideo API key to node 2 — Open node 2. WayinVideo — Submit Transcription → find the Authorization header value that says Bearer YOUR_WAYINVIDEO_API_KEY → replace YOUR_WAYINVIDEO_API_KEY with your actual key

Add your WayinVideo API key to node 4 — Open node 4. WayinVideo — Get Transcript Results → find the same Authorization header → replace YOUR_WAYINVIDEO_API_KEY again with the same key

Connect OpenAI — Open node 9. OpenAI — GPT-4o-mini Model → click the credential dropdown → add your OpenAI API key → test the connection

Create your Google Sheet tab — Open your Google Sheet → add a tab named exactly LinkedIn Drafts → add these 10 column headers in row 1: Podcast Title, Video URL, Episode Duration (min), LinkedIn Headline, LinkedIn Article, Key Takeaways, Hashtags, Word Count, Generated On, Status

Connect Google Sheets — Open node 11. Google Sheets — Save LinkedIn Draft → click the credential dropdown → add Google Sheets OAuth2 → sign in with your Google account → authorize access

Update the Sheet ID in node 11 — In node 11. Google Sheets — Save LinkedIn Draft, the document ID currently says YOUR_GOOGLE_SHEET_ID → click the document field → select your actual spreadsheet from the list, or manually replace the ID with the string between /d/ and /edit in your Sheet URL

Activate the workflow — Toggle the workflow to Active → copy the Form URL from node 1. Form — Podcast URL + Details → open it in a browser to submit your first episode

How It Works (Step by Step)

Step 1 — Form: Podcast URL + Details
You open the form URL in a browser and fill in five fields: the podcast or video URL (YouTube, Zoom, Vimeo, or any direct link), the episode title, the host and guest name, the target audience, and optionally your preferred LinkedIn tone. Tone defaults to "Professional and insightful" if left blank. Submitting the form starts the workflow.

Step 2 — HTTP: WayinVideo — Submit Transcription
The podcast URL is sent to the WayinVideo API with the target language set to English. WayinVideo accepts the job and returns a task ID confirming transcription has started.

Step 3 — Wait: 60 Seconds
The workflow pauses for 60 seconds before checking the transcription status for the first time. This gives WayinVideo time to begin processing the audio before the first poll.

Step 4 — HTTP: WayinVideo — Get Transcript Results
A GET request checks the WayinVideo results endpoint using the task ID from step 2. It returns the current processing status and, once complete, the full transcript with speaker labels, timestamps, and text for each segment.

Step 5 — IF: Transcription Complete?
This is the polling gate. If the status equals SUCCEEDED (YES path), the transcript is ready and the workflow moves forward to formatting. If the status is anything else (NO path — still processing), the workflow routes to 6. Wait — 30 Seconds Retry which pauses 30 seconds then loops back to step 4 to check again. This repeats automatically until transcription succeeds.

Step 6 — Wait: 30 Seconds Retry
This step handles the not-yet-complete case. The workflow pauses 30 seconds then returns to step 4 for another status check. The loop continues until WayinVideo returns SUCCEEDED.

Step 7 — Code: Format Transcript
Each transcript segment is formatted as [Speaker Name | MM:SS] text so GPT receives a structured, readable conversation. Total episode duration in minutes is calculated from the last segment's end time. Unique speaker names are collected. Word count is calculated. All form inputs (episode title, host/guest name, target audience, tone, video URL) are also packaged here for the AI prompt.

Step 8 — AI Agent: Write LinkedIn Newsletter
GPT-4o-mini receives the formatted transcript as the user message and a detailed system prompt as context. The system prompt provides episode details, specifies seven writing rules (short paragraphs, hook-first, human tone, no filler, consistent tone, CTA at the end, and only use content from the transcript), and specifies the exact output format with labeled sections: HEADLINE, ARTICLE, KEY TAKEAWAYS, and HASHTAGS.

Step 9 — OpenAI: GPT-4o-mini Model
This is the language model powering the article writing. It runs with default temperature settings and no custom token cap — the article length is controlled by the prompt instructions (400–600 words for the body).

Step 10 — Code: Parse AI Output
The AI output text is parsed using regex to extract each labeled section. The HEADLINE, ARTICLE, KEY TAKEAWAYS, and HASHTAGS sections are each extracted individually. Word count of the final article is calculated. All fields are packaged with the episode title, video URL, and duration for the sheet row.

Step 11 — Google Sheets: Save LinkedIn Draft
One row is appended to your LinkedIn Drafts tab with all 10 columns populated: podcast title, video URL, episode duration in minutes, LinkedIn headline, full article, key takeaways, hashtags, word count, generation timestamp, and Status set to "Draft". The draft is now ready for you to open, review, and publish to LinkedIn.

Key Features

✅ Speaker-labeled transcript — WayinVideo attributes every sentence to the correct speaker so GPT understands the conversation structure and can reference who said what
✅ Automatic retry polling — The workflow checks every 30 seconds after the initial 60-second wait — no manual monitoring needed regardless of episode length
✅ Seven LinkedIn writing rules enforced — Short paragraphs, hook-first structure, human tone, no filler, consistent voice, facts only from the transcript, and a closing CTA are all built into the prompt
✅ Timestamped transcript for context — Each segment includes the MM:SS timestamp so GPT understands the flow and can reference specific moments in the article
✅ Draft status in Google Sheets — Every article saves with Status = Draft so you have a review stage before publishing — nothing goes live without your approval
✅ Five action-verb takeaways — The prompt requires exactly five key takeaways each starting with an action verb, making them ready to use as pull quotes or bullet points on LinkedIn
✅ Tone personalization per episode — Your chosen LinkedIn tone (professional, casual, data-driven, etc.) is passed to the AI and applied consistently throughout the article

Customisation Options

Change the retry wait time for longer podcasts — In node 6. Wait — 30 Seconds Retry, change the wait duration from 45 seconds (the current value) to 60 or 90 seconds for very long podcasts that take more time to process, reducing unnecessary API calls.

Add a Gmail notification when the draft is saved — After node 11. Google Sheets — Save LinkedIn Draft, add a Gmail step that sends you a brief email with the episode title, headline, and a link to your LinkedIn Drafts sheet so you know when a new draft is ready.

Save to Google Docs instead of Sheets — Replace node 11. Google Sheets — Save LinkedIn Draft with a Google Docs create step that saves the headline and article as a formatted editable document — giving you a word-processor-ready draft alongside the sheet log.

Add a Slack notification for your content team — After node 11. Google Sheets — Save LinkedIn Draft, add a Slack step that posts the episode title, the LinkedIn headline, and today's date to a #content-drafts channel so your team knows a new article is ready for review.

Extract quotes for social media posts — In node 8. AI Agent — Write LinkedIn Newsletter, add a sixth output section to the prompt: PULL QUOTES: List 3 direct quotes from the transcript that would work as standalone social posts, each under 25 words — then extend the regex in node 10 to capture this section.

Troubleshooting

WayinVideo returning an error on submission:
Confirm YOUR_WAYINVIDEO_API_KEY in node 2. WayinVideo — Submit Transcription is replaced with your actual API key — not the placeholder text
Also confirm the same replacement was made in node 4. WayinVideo — Get Transcript Results — both nodes require the key
Check the execution log of node 2 for the exact API error response — a 401 means wrong key, a 422 means the URL format is not supported

Workflow stuck in the retry loop:
Check that the podcast URL is publicly accessible — private, password-protected, or region-blocked videos will not be processed by WayinVideo
Open the execution log of node 4. WayinVideo — Get Transcript Results and check the raw response — WayinVideo may have returned a FAILED status with an error message
If the loop runs indefinitely, deactivate the workflow, fix the video URL, and resubmit

Transcript is empty after SUCCEEDED:
Node 7. Code — Format Transcript throws an error if the segments array is empty — this means WayinVideo succeeded but returned no transcript data
Check that the podcast has clear spoken audio — low-quality audio, background music-heavy recordings, or music-only content will not produce usable transcripts
Try a shorter, clearer clip first to verify the API connection is working correctly

OpenAI not generating the article:
Confirm the API key is connected in node 9. OpenAI — GPT-4o-mini Model and your account has available credits
Check the execution log of node 8. AI Agent — Write LinkedIn Newsletter for the raw GPT response
If the output is missing labeled sections (HEADLINE, ARTICLE, etc.), the regex in node 10. Code — Parse AI Output will fail to extract the fields — check that the system prompt text in node 8 is intact and has not been accidentally edited

Google Sheets not logging the draft:
Confirm the Google Sheets OAuth2 credential in node 11. Google Sheets — Save LinkedIn Draft is connected and not expired — re-authorize if needed
Confirm YOUR_GOOGLE_SHEET_ID in node 11 has been replaced with your actual sheet ID — or select your spreadsheet from the document dropdown
Confirm the tab is named LinkedIn Drafts exactly — capitalization and spacing must match

Support

Need help setting this up or want a custom version built for your team or agency?

📧 Email: [email protected]
🌐 Website: https://isawow.com/

Nodes Used (5)

AI Agent
@n8n/n8n-nodes-langchain.agent
Code
n8n-nodes-base.code
Google Sheets
n8n-nodes-base.googleSheets
HTTP Request
n8n-nodes-base.httpRequest
OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi