Sharing a workflow I built for fully automating YouTube Shorts production. It runs on a schedule (default hourly), reads a Google Sheet you control, and turns the next “ready” row into a produced, uploaded Short with zero manual steps.
Pipeline: an hourly trigger reads the Google Sheet, filters to rows where Production Status equals productionready, picks the oldest eligible row and immediately locks it so a second run can’t grab the same row, generates a narration script via OpenAI driven entirely by the row’s Niche/Idea/Caption/Description (works for any topic), generates a voiceover via ElevenLabs and uploads it to Google Drive for a public URL, renders a 1080x1920 video via Creatomate with visuals, animated captions and the voiceover, uploads the result to YouTube as a Short, and finally writes the script, video URL, and YouTube link back to the row.
Reliability features: row locking prevents duplicate processing, every external API call has retryOnFail enabled, a TEST_MODE flag forces private YouTube uploads until you’re ready to go public, and failed steps write a specific error message back to the sheet instead of silently stopping.
Template plus a full setup guide (covering every credential you’ll need: Google Sheets/Drive OAuth, OpenAI, ElevenLabs, Creatomate, YouTube) is available here: Automated YouTube Shorts Factory — n8n Workflow (Script → Voiceover → Video → Upload)
Happy to answer questions about any of the nodes or the error-handling design.