Att lägga upp Shorts ”konsekvent” låter enkelt tills du fastnar i att skriva om manus, jaga voiceovers, fixa undertexter och leta filer i Drive. Idéerna finns där. Det är produktionsmalandet som dödar tempot.
Sheets Shorts-automatisering träffar som hårdast för content managers som försöker hålla en veckopipeline full. Soloskapare känner det också. Och ärligt talat: byråer som producerar batchar åt kunder drunknar snabbt i versionshantering och godkännanden.
Det här flödet gör en rad i Google Sheets till en färdig, vertikal video med röst, undertexter och slutrendering fixat åt dig. Du får se hur det fungerar, vad du behöver och var de vanliga fallgroparna finns i uppsättningen.
Så fungerar automatiseringen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: Google Sheets + ElevenLabs: Shorts klara att posta
flowchart LR
subgraph sg0["Manual Execution Start Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Execution Start", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Assign Runtime Fields", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Distribute Entries", pos: "b", h: 48 }
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Assemble Clip Array"]
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Segment Records", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Compile Video List"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Render Clip"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Construct Faceless List"]
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Stitch Video Segments"]
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Trim Footage"]
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch Audio Metadata"]
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Add Captions"]
n12["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Fuse Audio and Video"]
n13@{ icon: "mdi:robot", form: "rounded", label: "Core LLM Pipeline", pos: "b", h: 48 }
n14@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Reader", pos: "b", h: 48 }
n15["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Generate Image"]
n16["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Synthesize Voice"]
n17["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Retrieve Voice Output"]
n18@{ icon: "mdi:database", form: "rounded", label: "Retrieve Sheet Rows", pos: "b", h: 48 }
n19@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare Image Scripts", pos: "b", h: 48 }
n20@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare Audio Scripts", pos: "b", h: 48 }
n21["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Audio Script Logic"]
n22["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Image Script Logic"]
n23["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch Image Asset"]
n24["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Image Processing Logic"]
n25["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Voice Post Process"]
n26["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Combine Branch Results"]
n27@{ icon: "mdi:brain", form: "rounded", label: "Ollama Chat Engine", pos: "b", h: 48 }
n24 --> n26
n25 --> n26
n21 --> n16
n22 --> n15
n26 --> n1
n17 --> n25
n15 --> n23
n23 --> n24
n2 --> n6
n9 --> n12
n16 --> n17
n4 --> n10
n20 --> n21
n19 --> n22
n1 --> n7
n6 --> n3
n13 --> n19
n13 --> n20
n5 --> n8
n8 --> n11
n27 -.-> n13
n10 --> n9
n18 --> n13
n7 --> n2
n12 --> n5
n3 --> n4
n14 -.-> n13
n0 --> n18
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n13,n14 ai
class n27 aiModel
class n18 database
class n6,n8,n9,n10,n11,n12,n15,n16,n17,n23 api
class n3,n5,n7,n21,n22,n24,n25 code
classDef customIcon fill:none,stroke:none
class n3,n5,n6,n7,n8,n9,n10,n11,n12,n15,n16,n17,n21,n22,n23,n24,n25,n26 customIcon
Problemet: att göra idéer till Shorts kräver för många verktyg
En motiverande Short ser ”enkel” ut från utsidan. Men det riktiga jobbet är dolt. Du skriver ett manus, justerar det för att hålla dig under 60 sekunder, genererar en bild som faktiskt matchar budskapet, spelar in (eller genererar om) röst tills det låter rätt, och försöker sedan synka undertexter som inte ser billiga ut. Multiplicera det med 10 videor. Det är inte bara tid. Det är kontextbyten, repetitiva exporter och småfel som dyker upp efter att du redan har publicerat.
Inget av detta är problemet i sig. Tillsammans är de det.
- Du skriver om samma typ av manus om och om igen eftersom det saknas en repeterbar pipeline.
- Voiceovers blir en flaskhals, särskilt när du behöver konsekvens i en serie.
- Styling och timing av undertexter stjäl ”kreativa” timmar trots att det mest är mekaniskt arbete.
- Filhantering blir snabbt rörig, så du tappar koll på vad som är final, vad som är utkast och vad som redan levererats.
Lösningen: rader i Google Sheets in, publiceringsklara Shorts ut
Det här n8n-flödet behandlar Google Sheets som din innehållsbacklogg och produktionskö. Du skriver (eller klistrar in) enkla motiverande idéer i rader och kör sedan flödet för att generera manus med en lokal Ollama-modell, skapa matchande svartvita visuals via fal.ai och syntetisera en voiceover med ElevenLabs. Därefter anropar flödet ett self-hosted API för videoprocessning för att bygga klipp med zoomeffekter, sy ihop segment till en färdig vertikal video och bränna in stylade undertexter som ser avsiktliga ut i stället för autogenererade. Resultatet landar som en social-ready video (9:16, under 60 sekunder), så du slipper pussla ihop delarna för hand.
Flödet startar när du triggar det i n8n och det hämtar rader från Google Sheets. AI:n genererar manus plus strukturerade fält för både bildprompter och ljudrader, sedan skapar separata grenar bild och röst. Till sist renderar, trimmar, textar, mixar ljud och sammanställer flödet den slutliga videolistan för export och lagring.
Det du får: automatisering vs. resultat
| Vad det här flödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du vill ha 10 motiverande Shorts klara för veckan. Manuellt kanske du lägger cirka 20 minuter på att skriva och tajta till varje manus, ytterligare 10 minuter på att generera visuals och sedan 20 minuter på röst, undertexter och export. Det är ungefär 8 timmar för 10 videor, och det är lätt att dra över om du gör om ljudet. Med det här flödet lägger du cirka 30 minuter på att förbereda 10 rader i Google Sheets och låter sedan automatiseringen rendera i bakgrunden. Du granskar fortfarande resultaten, men du bygger dem inte längre från noll.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att lagra idéer och följa status.
- ElevenLabs för att syntetisera voiceovers.
- Ollama för lokal manusgenerering (gratis).
- fal.ai för att generera svartvita bilder.
- Self-hosted API för videoprocessning för rendering, undertexter och sammanslagning.
- API-nycklar (hämta dem i dina dashboards för ElevenLabs och fal.ai).
Kunskapsnivå: Medel. Du kopplar konton, lägger in API-nycklar och kan behöva justera några fält för att matcha dina kolumner i Sheet.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Du triggar en körning och n8n hämtar rader från Google Sheets. Flödet startar med en manuell körning (perfekt för batchar) och läser de rader i arket som du vill göra om till videor.
Ollama gör varje idé till en strukturerad ”videoplan”. I stället för att bara spotta ur sig ren text producerar LLM-kedjan strukturerade outputs som separerar vad som ska ligga i voiceovern, vad som ska ligga i bildprompten och vad som ska ligga i undertexter.
Två grenar bygger assets samtidigt. Den ena grenen genererar en bild via fal.ai, hämtar bildfilen och förbereder den för video. Den andra grenen skickar ljudmanuset till ElevenLabs, hämtar röstresultatet och efterbehandlar metadata så att efterföljande noder kan synka korrekt.
Video-API:t renderar, syr ihop, trimmar, textar och fuserar sedan ljud. n8n loopar igenom klipp i batchar, renderar segment, kombinerar dem, applicerar styling för undertexter och producerar en färdig vertikal video som är redo för TikTok, Reels eller Shorts.
Du kan enkelt ändra undertextstilen och manustonen för att matcha ditt varumärke. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera den manuella triggern
Starta arbetsflödet med en manuell trigger så att ni kan testa hela pipelinen för media-ihopsättning vid behov.
- Lägg till och öppna Manual Execution Start.
- Lämna alla fält på standardvärdena eftersom detta är en manuell trigger.
- Koppla Manual Execution Start till Retrieve Sheet Rows.
Steg 2: anslut Google Sheets
Hämta källrader från Google Sheets för att mata stegen för AI-skriptgenerering och media-ihopsättning.
- Öppna Retrieve Sheet Rows och konfigurera kalkylarket samt det bladintervall ni vill läsa.
- Säkerställ att utdatafälten innehåller allt som behövs för skripten och tillgångsgenereringen längre ned i flödet.
- Koppla Retrieve Sheet Rows till Core LLM Pipeline.
Steg 3: sätt upp LLM-pipelinen och parallell skriptförberedelse
Generera strukturerade instruktioner för bilder och ljud, och dela sedan upp i parallella behandlingsgrenar för bild- och röstskapande.
- Öppna Core LLM Pipeline och bekräfta att Ollama Chat Engine är ansluten som språkmodell.
- Säkerställ att Structured Output Reader är kopplad till Core LLM Pipeline som utdataparser; lägg till autentiseringsuppgifter i Core LLM Pipeline om er LLM-leverantör kräver det.
- Verifiera den parallella uppdelningen: Core LLM Pipeline skickar utdata till både Prepare Image Scripts och Prepare Audio Scripts parallellt.
- Koppla Prepare Image Scripts till Image Script Logic, och sedan till Generate Image.
- Koppla Prepare Audio Scripts till Audio Script Logic, och sedan till Synthesize Voice.
Steg 4: konfigurera grenarna för bild- och röstbearbetning
Bearbeta bild- och röstutdata oberoende av varandra och slå sedan ihop dem för en enhetlig ihopsättning.
- För bildgrenen, koppla Generate Image → Fetch Image Asset → Image Processing Logic → Combine Branch Results.
- För ljudgrenen, koppla Synthesize Voice → Retrieve Voice Output → Voice Post Process → Combine Branch Results.
- Verifiera att Combine Branch Results matar in i Assign Runtime Fields.
Steg 5: konfigurera pipelinen för media-ihopsättning
Bygg klipp, tillämpa ljudbearbetning och sy ihop slutliga videosegment med bildtexter.
- Koppla Assign Runtime Fields → Construct Faceless List → Distribute Entries → Render Clip → Assemble Clip Array → Segment Records.
- Från Segment Records, koppla Fetch Audio Metadata → Trim Footage → Fuse Audio and Video.
- Slutför med Compile Video List → Stitch Video Segments → Add Captions.
- Gruppkonfigurera de 10+ httpRequest-noderna (t.ex. Render Clip, Trim Footage, Stitch Video Segments) för att säkerställa att endpoint-URL:er, headers och payloads är konsekventa med ert media-API.
- Gruppkonfigurera de 7 code-noderna (t.ex. Assemble Clip Array, Compile Video List) för att linjera förväntade in-/utdataformat genom hela pipelinen.
Steg 6: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att verifiera varje gren och aktivera sedan arbetsflödet för användning i produktion.
- Klicka på Execute Workflow från Manual Execution Start för att köra hela pipelinen.
- Bekräfta att Core LLM Pipeline fyller båda skriptgrenarna och att Combine Branch Results innehåller sammanslagen utdata.
- Verifiera slutresultatet efter Add Captions för att säkerställa att den ihopsydda videon innehåller ljud, bildmaterial och bildtexter.
- När ni är nöjda, växla arbetsflödet till Active för produktionsanvändning.
Vanliga fallgropar
- Google Sheets-inloggningar kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först n8n-skärmen Credentials och din Google-kontos anslutna appar.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din varumärkesröst tidigt, annars kommer du att redigera outputen i all evighet.
Vanliga frågor
Cirka en timme om dina API-nycklar och ditt Sheet är redo.
Ingen kodning krävs. Du kopplar främst ihop tjänster och mappar dina Google Sheets-kolumner till flödets fält.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in användningskostnader för ElevenLabs och fal.ai, plus vad det nu kostar att köra din videoprocessningsserver.
Två alternativ: n8n Cloud (hanterat, enklast uppsättning) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverdrift.
Ja, och det handlar oftast bara om ändringar i prompter och fält. Uppdatera ton och struktur i Ollama LLM-kedjan så att manuset matchar din nisch och justera sedan undertextstylingen i undertextsteget som video-API:t använder. Vanliga anpassningar är att ändra hook-formatet, byta från svartvitt till ett varumärkesanpassat utseende och lägga till en call to action-rad i slutet av varje voiceover.
Oftast är det OAuth-inloggningar som gått ut eller att Google-kontot saknar åtkomst till målarket. Anslut Google Sheets-inloggningen igen i n8n och bekräfta sedan att arket är delat med samma Google-konto. Om det fortfarande misslyckas, dubbelkolla att du pekar på rätt spreadsheet-ID och rätt fliknamn, eftersom en omdöpt flik tyst kan knäcka uppslagningar.
I praktiken: så många som dina n8n-gränser för körningar och din renderingsserver klarar.
Ofta, ja, eftersom det här flödet kräver förgreningar, loopar och flera HTTP-renderingssteg som blir krångliga (och dyra) i enklare byggare. n8n hanterar komplex logik utan att göra varje villkor till ett premiumtillägg. Du kan också köra self-hosted, vilket spelar roll när du börjar köra stora batchar. Zapier eller Make kan fortfarande fungera bra för lätta publiceringsflöden i två steg. Prata med en automationsexpert om du vill ha hjälp att välja det enklaste alternativet för din volym.
Sätt upp detta en gång och ditt Google Sheet blir en enkel produktionsmaskin. Flödet tar hand om de repetitiva delarna så att du kan fokusera på idéer, paketering och publicering.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.