Att planera innehåll är en sak. Att faktiskt förvandla en rad i ett kalkylark till en färdig video och sedan ladda upp den på fem ställen med rätt bildtext är där det brukar börja fallera.
Den här Sheets Creatomate-automationen slår hårdast mot social media managers, men byråledare och upptagna grundare känner av den också. Du får ett repeterbart system från ”idé till publicerad video” som körs dagligen, uppdaterar ditt spårningsark och stoppar det eviga flik-hoppandet.
Nedan ser du hur flödet går från Google Sheets till renderad video till publicering på flera plattformar, plus vad du behöver för att sätta upp det utan att göra det här till ett heltidsprojekt inom engineering.
Så fungerar den här automationen
Se hur detta löser problemet:
n8n Workflow Template: Google Sheets + Creatomate: videos publiceras åt dig
flowchart LR
subgraph sg0["Once Per Day Flow"]
direction LR
n0["<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/>Get image"]
n1["<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"]
n2["<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/>Image-to-Video"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Video"]
n4["<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/>List Elements"]
n5@{ icon: "mdi:cog", form: "rounded", label: "Wait 10min", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Wait 3min", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Wait 5min", pos: "b", h: 48 }
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/>Generate voice"]
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/code.svg' width='40' height='40' /></div><br/>List Elements1"]
n10@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Fail check", pos: "b", h: 48 }
n11@{ icon: "mdi:cog", form: "rounded", label: "Wait to retry", pos: "b", h: 48 }
n12@{ icon: "mdi:robot", form: "rounded", label: "Generate Image Prompts", pos: "b", h: 48 }
n13["<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/>Calculate Token Usage"]
n14@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check for failures", pos: "b", h: 48 }
n15@{ icon: "mdi:robot", form: "rounded", label: "Generate Video Captions", pos: "b", h: 48 }
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/merge.svg' width='40' height='40' /></div><br/>Match captions with videos"]
n17@{ icon: "mdi:robot", form: "rounded", label: "Generate Script", pos: "b", h: 48 }
n18@{ icon: "mdi:cog", form: "rounded", label: "Upload Voice Audio", pos: "b", h: 48 }
n19@{ icon: "mdi:cog", form: "rounded", label: "Set Access Permissions", pos: "b", h: 48 }
n20["<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/>Pair Videos with Audio"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Render Final Video"]
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/discord.svg' width='40' height='40' /></div><br/>Notify me on Discord"]
n23@{ icon: "mdi:play-circle", form: "rounded", label: "Once Per Day", pos: "b", h: 48 }
n24@{ icon: "mdi:database", form: "rounded", label: "Load Google Sheet", pos: "b", h: 48 }
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/>Create List"]
n26@{ icon: "mdi:cog", form: "rounded", label: "Wait1", pos: "b", h: 48 }
n27["<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/>Get Final Video"]
n28@{ icon: "mdi:cog", form: "rounded", label: "Upload Final Video", pos: "b", h: 48 }
n29["<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/>Get Raw File"]
n30@{ icon: "mdi:cog", form: "rounded", label: "Set Permissions", pos: "b", h: 48 }
n31@{ icon: "mdi:database", form: "rounded", label: "Update Google Sheet", pos: "b", h: 48 }
n32@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set API Keys", pos: "b", h: 48 }
n33@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate list formatting", pos: "b", h: 48 }
n34@{ icon: "mdi:robot", form: "rounded", label: "Get Audio from Video", pos: "b", h: 48 }
n35@{ icon: "mdi:robot", form: "rounded", label: "Generate Description for Vid..", pos: "b", h: 48 }
n36["<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/>Upload Video and Description.."]
n37["<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/>Upload Video and Description.."]
n38["<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/>Upload Video and Description.."]
n39["<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/>Upload Video and Description.."]
n40["<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/>Upload Video and Description.."]
n41@{ icon: "mdi:cog", form: "rounded", label: "Read Video from Google Drive", pos: "b", h: 48 }
n42@{ icon: "mdi:cog", form: "rounded", label: "Write video", pos: "b", h: 48 }
n26 --> n27
n3 --> n10
n0 --> n14
n6 --> n0
n7 --> n1
n10 --> n11
n10 --> n16
n5 --> n3
n25 --> n33
n42 --> n34
n29 --> n28
n29 --> n42
n23 --> n32
n32 --> n24
n4 --> n20
n11 --> n2
n1 --> n6
n8 --> n18
n2 --> n5
n9 --> n20
n17 --> n8
n27 --> n29
n30 --> n31
n24 --> n15
n14 --> n7
n14 --> n2
n21 --> n26
n28 --> n30
n18 --> n19
n31 --> n22
n34 --> n35
n13 --> n1
n12 --> n13
n20 --> n21
n19 --> n9
n15 --> n25
n33 --> n12
n33 --> n16
n33 --> n17
n33 --> n15
n16 --> n4
n41 --> n36
n41 --> n37
n41 --> n38
n41 --> n39
n41 --> n40
n35 --> n41
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 n23 trigger
class n12,n15,n17,n34,n35 ai
class n10,n14,n33 decision
class n24,n31 database
class n0,n1,n2,n3,n8,n21,n27,n29,n36,n37,n38,n39,n40 api
class n4,n9,n13,n25 code
classDef customIcon fill:none,stroke:none
class n0,n1,n2,n3,n4,n8,n9,n13,n16,n20,n21,n22,n25,n27,n29,n36,n37,n38,n39,n40 customIcon
Utmaningen: att göra idéer till publicerade videor (varje dag)
Det jobbiga med kortformat video är inte att ”komma på en idé”. Det är allt efteråt: skriva hooken, skapa visuellt material, klippa ihop klipp, lägga på undertexter, skapa en voiceover, exportera, ladda upp och sedan skriva om texten fem olika sätt eftersom varje plattform vill ha något lite annorlunda. Och om du gör det här för flera kunder eller flera kanaler så lever du i praktiken i filmappar och uppladdningsskärmar. Ett missat steg innebär att du publicerar fel version, glömmer beskrivningen eller tappar bort vad som faktiskt gick live. Det är utmattande.
Det blir snabbt mycket. Här är var det brukar gå sönder i riktiga team.
- Google Sheets blir en kyrkogård av ”idéer” eftersom det tar för lång tid att göra dem till färdiga videor.
- Exporter och filnamn blir röriga, så någon laddar förr eller senare upp fel klippning eller en gammal caption-fil.
- Att publicera på TikTok, Instagram, YouTube, Facebook och LinkedIn betyder att du upprepar samma uppladdnings- och copyflöde om och om igen.
- Statusspårning är manuell, vilket gör att du egentligen inte vet vad som är levererat förrän du scrollar varje plattform.
Lösningen: Google Sheets → rendering i Creatomate → publicering på flera plattformar
Det här flödet gör ditt innehållskalkylark till en daglig videoproduktionslina. Det börjar med att hämta nästa klara idé från Google Sheets och använder sedan AI för att generera delarna du normalt bygger för hand: POV-undertexter, bildprompter, ett voiceover-manus och plattformsanpassad posttext. Visuellt material skapas via PiAPI (Flux för bilder, Kling för bild-till-video-klipp), och sedan sätts allt ihop i en Creatomate-mall så att dina videor behåller samma struktur och varumärkesprofil. När den slutliga videon är renderad laddas den upp och publiceras på TikTok, Instagram, YouTube, Facebook och LinkedIn via upload-post.com. Till sist skriver flödet tillbaka resultat till ditt ark (länkar, status, användnings-/kostnadsdetaljer) och pingar dig när det är klart.
Flödet startar på ett schema (dagligen som standard) och kontrollerar ditt ark efter en rad markerad som klar. Därifrån genererar det assets, renderar videon i Creatomate och publicerar överallt i ett svep. Du får en live-post på varje plattform plus ett ”pappersspår” i Google Sheets.
Vad som förändras: före vs. efter
| Det här tar bort | Effekten du märker |
|---|---|
|
|
Effekt i verkligheten
Säg att du publicerar en kortvideo per vardag på 5 plattformar. Om manuell publicering och copy-justeringar tar kanske 10 minuter per plattform, är det runt 50 minuter per video, eller ungefär 4 timmar i veckan bara för uppladdningar och beskrivningar (utan att räkna redigering). Med det här flödet lägger du några minuter på att fylla på rader i Google Sheets och låter sedan rendering och publicering gå i bakgrunden. Du granskar fortfarande resultatet, men ”hands-on”-tiden sjunker till något som 30 minuter i veckan.
Krav
- 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 spåra resultat
- Google Drive för att lagra ljud och färdiga videor
- Creatomate för mallbaserad videorendering
- OpenAI API-nyckel (hämta den i din OpenAI-dashboard)
- PiAPI API-nyckel (hämta den i PiAPI-kontoinställningar)
- ElevenLabs API-nyckel (hämta den i ElevenLabs profilinställningar)
- upload-post.com API-nyckel (hämta den i upload-post.com utvecklarinställningar)
- Discord webhook-URL (skapa den i dina Discord-kanalinställningar)
Kunskapsnivå: Medel. Du klistrar in API-nycklar, kopplar Google OAuth och uppdaterar några ID:n (ark, mappar, mall).
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet i korthet
Ett dagligt schema sätter igång allt. n8n kontrollerar ditt Google Sheet efter nästa POV-idé som är markerad som klar (du kan också köra manuellt för test).
AI genererar byggstenarna. OpenAI skriver undertexter, bildprompter och ett voiceover-manus. Sedan genererar PiAPI bilder och gör om dem till korta klipp, så du får användbara videosegment utan att öppna en editor.
Creatomate renderar den slutliga videon. Klipp, undertexter och ElevenLabs-voiceover mappas in i din Creatomate-mall, vilket håller varumärke och tempo konsekvent vid varje körning.
Publicering och spårning sker automatiskt. Flödet laddar upp den färdiga videon till Google Drive, genererar plattformsfärdiga beskrivningar (inklusive ett transkriberingssteg), postar via upload-post.com, uppdaterar sedan den ursprungliga raden i Google Sheets och notifierar dig i Discord.
Du kan enkelt justera publiceringsmålen för att fokusera på bara två plattformar i stället för fem, beroende på dina behov. Se hela implementeringsguiden nedan för anpassningsalternativ.
Se upp för
- Google OAuth-uppgifter kan löpa ut eller kräva specifika behörigheter. Om det slutar fungera: kontrollera först OAuth consent screen i Google Cloud och vilket Google-konto som är kopplat i n8n.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
- upload-post.com behöver ofta plattformsspecifika identifierare (som ett Facebook Page ID) och rätt kopplade profiler. Om postningen misslyckas: kontrollera loggarna i upload-post-dashboarden innan du skriver om något i n8n.
Vanliga frågor
Cirka 60–90 minuter om dina konton och API-nycklar är klara.
Ja, men någon behöver vara bekväm med att koppla OAuth-konton och kopiera ID:n. Ingen kodning, däremot.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på $20/månad för högre volym. Du behöver också räkna med användningskostnader för OpenAI, PiAPI, ElevenLabs, Creatomate och upload-post.com.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och klarar n8n bra. Self-hosting ger obegränsade körningar men kräver grundläggande serverhantering.
Du kan byta publiceringslager (upload-post.com) till en annan destination genom att ändra HTTP Request-noderna som hanterar uppladdningar. Vanliga anpassningar är att ändra Google Sheets-reglerna för ”klar”, justera OpenAI-prompterna så de matchar din tonalitet och byta ut Creatomate template ID för att stödja olika layouter per kund.
Oftast beror det på utgånget Google OAuth-samtycke eller att fel Google-konto är kopplat i n8n. Anslut Google Sheets-credentials på nytt, bekräfta att Google Drive- och Sheets-API:erna är aktiverade i ditt Google Cloud-projekt och verifiera att kalkylarket är delat med det kopplade kontot. Om det fortfarande fallerar: titta på exakt felmeddelande i noden, eftersom ”permission denied” och ”file not found” kräver helt olika åtgärder.
I de flesta n8n-upplägg kan du köra ett färdigt videoflöde per dag utan att ens tänka på det, och skala därifrån så länge dina AI- och renderingsleverantörer klarar volymen. Om du self-hostar finns ingen körningsgräns från n8n i sig, men renderingstid och API-rate limits blir de verkliga flaskhalsarna. För högre throughput brukar team köa flera rader, öka väntetider runt rendering och gå upp till en större VPS så att körningar inte staplas på varandra.
Ofta ja, för den här typen av pipeline i flera steg. Du koordinerar flera AI-anrop, filhantering i Google Drive, ett renderingssteg i Creatomate, plus publicering på flera plattformar och uppdateringar i arket. n8n är helt enkelt mer bekvämt när du behöver grenlogik, merges och tajming för ”vänta på rendering” utan att betala extra för varje litet steg. Zapier eller Make kan fortfarande fungera om du förenklar flödet (färre verktyg, färre grenar) och föredrar ett mer guidat gränssnitt. Om du är osäker: prata med en automationsexpert och beskriv din publiceringsvolym och dina kanaler.
När det här väl är uppsatt slutar ditt kalkylark att vara en önskelista och blir en publiceringsmaskin. Flödet sköter repetitiv produktion och publicering så att du kan fokusera på idéer som faktiskt levererar.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.