Du får äntligen en korrekt formaterad produktbild… och sedan börjar det riktiga jobbet. Skriva hooks, hitta på “creator”-vinklar, bygga variationer, exportera filer och hålla allt organiserat i Drive gör en enda tillgång till ett heldagsgöra.
Den här typen av UGC-videoautomation slår hårdast mot e-handelsmarknadsförare, men byråägare och hungriga butiksgrundare känner av den också. Du behöver fler annonser att testa, inte mer administrativt slit. Det här arbetsflödet gör en produktbild till batchar med influencer-liknande videoannonser som du faktiskt kan lansera.
Nedan ser du hur arbetsflödet körs, vilka resultat du kan förvänta dig och vad du behöver för att göra det till ditt.
Så fungerar automationen
Hela n8n-arbetsflödet, från trigger till slutlig output:
n8n Workflow Template: Gemini till Google Drive: UGC-annonsvideor i batchar
flowchart LR
subgraph sg0["form_ 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/form.svg' width='40' height='40' /></div><br/>form_trigger"]
n1@{ icon: "mdi:robot", form: "rounded", label: "analyze_product", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "set_model_details", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "set_build_video_prompts", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "convert_product_to_base64", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "convert_product_to_image", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "extract_prompts", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "prompts-parser", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "split_prompts", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "iterate_prompts", pos: "b", h: 48 }
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/>generate_video"]
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/>get_video_status"]
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/>get_video"]
n13@{ icon: "mdi:swap-horizontal", form: "rounded", label: "check_status", pos: "b", h: 48 }
n14@{ icon: "mdi:cog", form: "rounded", label: "delay", 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_frame"]
n16@{ icon: "mdi:swap-vertical", form: "rounded", label: "set_frame_result", pos: "b", h: 48 }
n17@{ icon: "mdi:cog", form: "rounded", label: "get_frame_image", pos: "b", h: 48 }
n18@{ icon: "mdi:cog", form: "rounded", label: "resize_image", pos: "b", h: 48 }
n19@{ icon: "mdi:brain", form: "rounded", label: "gemini-2.5-pro", pos: "b", h: 48 }
n20@{ icon: "mdi:cog", form: "rounded", label: "upload_video", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>generate_ad_prompts"]
n14 --> n11
n12 --> n20
n13 --> n12
n13 --> n14
n0 --> n4
n18 --> n10
n20 --> n9
n8 --> n9
n19 -.-> n6
n19 -.-> n7
n15 --> n16
n10 --> n14
n7 -.-> n6
n1 --> n2
n6 --> n8
n17 --> n18
n9 --> n15
n11 --> n13
n16 --> n17
n2 --> n3
n21 --> n6
n3 --> n21
n5 --> n1
n4 --> n5
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 n1,n6,n7 ai
class n19 aiModel
class n13 decision
class n10,n11,n12,n15,n21 api
classDef customIcon fill:none,stroke:none
class n0,n10,n11,n12,n15,n21 customIcon
Problemet: UGC-annonser skalar inte när varje variant görs manuellt
Att testa UGC-annonser borde vara enkelt. I praktiken är det en rörig process som drar dig bort från strategi. Du letar efter nya vinklar, skriver om manus som ändå låter likadant och måste sedan skapa “creator”-liknande visuellt material som inte ser ut som en polerad varumärkesplåtning. Efter det kommer filhantering: nedladdningar, omdöpningar, mappkaos och delningslänkar för godkännande. Värst är fördröjningen. När du väl har tre variationer klara har chansen att lära dig från marknaden redan passerat.
Det går snabbt ihop. Här är var det brukar fallera.
- Du lägger cirka 30–60 minuter bara för att få fram ett användbart 12-sekunderskoncept när revideringar och exporter räknas in.
- Vinklar återanvänds eftersom det är utmattande att fortsätta brainstorma, så dina “nya” annonser ser ut som små ändringar av förra batchen.
- Videoproduktionen blir en flaskhals, vilket gör att du testar färre creatives och lär dig långsammare än konkurrenterna.
- Drive-mappar blir en soptipp, och granskning av annonser blir en skattjakt.
Lösningen: batchgenerera UGC-videoannonser från en bild
Det här n8n-arbetsflödet tar en enda produktbild och gör om den till flera UGC-inspirerade videoannonsvariationer, och sparar sedan varje färdig fil i Google Drive automatiskt. Det startar med en enkel formulärinskickning där du laddar upp bilden och anger produktnamnet. Därefter analyserar AI:n produkten för att förstå vad den är, vem den är för och vad som ska lyftas fram. Sedan genererar Gemini flera korta UGC-manus med naturlig dialog och en bildruta-för-bildruta-plan. För varje manus skapar arbetsflödet en matchande “första bildruta” i vertikal UGC-estetik och skickar sedan manus och bildruta till Sora 2 för videogenerering. Till sist övervakar det status tills klippet är klart, hämtar videon och laddar upp den till Drive med strukturerad namngivning.
Det börjar när du skickar in en produktbild. Gemini tar fram manusvariationer och sedan loopar arbetsflödet igenom dem i batchar och genererar en anpassad introbildruta och en 12-sekunders video för varje. När ett klipp är färdigrenderat hamnar det i Google Drive redo för granskning och test.
Det du får: automation kontra resultat
| Vad arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du vill ha 6 nya UGC-annonser till en produktlansering. Manuellt kan du lägga cirka 30 minuter per variant på manus, kreativ riktning, export och filstädning, vilket blir runt 3 timmar. Med det här arbetsflödet laddar du upp en bild och namnger produkten (cirka 5 minuter), sedan genererar systemet varje 12-sekunders video på cirka 2–3 minuter medan det övervakar status i bakgrunden. Även om du får vänta lite på renderingen sjunker din handpåläggning till några minuter, och videorna dyker upp i Google Drive redan namngivna och sorterade.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Gemini API för UGC-manus och bildrutor
- OpenAI API (Sora 2 + vision-åtkomst) för att generera videorna
- Google Drive för att lagra färdiga videobatchar
Kunskapsnivå: Medel. Du kopplar konton, lägger in API-nycklar och justerar några prompts utan att skriva kod.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuterskonsultation).
Så fungerar det
Formulärinskickningen sätter igång allt. Du öppnar URL:en till formulärtriggern, laddar upp en produktbild och anger ett produktnamn. Den inskickningen blir “single source of truth” för hela batchen.
Produkten analyseras och positioneras. OpenAI vision tittar på bilden för att förstå egenskaper och sannolika fördelar, och sedan sparar arbetsflödet en persona-prompt så att nästa output känns som en riktig creator som pratar, inte en varumärkesbroschyr.
Gemini genererar manus och sedan batchar arbetsflödet igenom dem. Gemini skapar flera 12-sekunders UGC-manus med en bildruta-för-bildruta-uppdelning. n8n delar upp dessa manus i items och processar dem i batchar, så att du kan skala upp variationer utan att arbetsflödet blir instabilt.
Sora genererar video och Drive tar emot de färdiga filerna. För varje manus genereras en anpassad vertikal första bildruta och storleksanpassas, sedan renderar Sora klippet. Arbetsflödet pollar status ungefär var 15:e sekund tills det är klart, hämtar videoinnehållet och laddar upp det till Google Drive med organiserad namngivning.
Du kan enkelt ändra videolängden för att passa ett annat annonsformat utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera formulärtriggern
Konfigurera det inkommande formuläret som samlar in produktbilden och produktnamnet som används i hela workflowet.
- Lägg till noden Inbound Form Trigger som workflowets trigger.
- Ställ in Form Title på
eCommerce Product Video Generator. - I Form Fields, säkerställ att ett filfält för Product och ett textfält för Product Name ingår och är markerade som obligatoriska.
Steg 2: Förbered indata för produktbilden
Konvertera den uppladdade produktbilden till base64- och binärformat så att den kan användas av AI- och videogenereringsnoder.
- I Extract Product Base64, ställ in Operation på
binaryToProperyoch Binary Property Name påProduct. - I Convert to Image File, ställ in Operation på
toBinaryoch Source Property pådata. - Bekräfta exekveringsflödet från Inbound Form Trigger → Extract Product Base64 → Convert to Image File.
Steg 3: Ställ in persona och promptning för manus
Använd produktbilden och produktnamnet för att generera en persona och bygga master prompten för manusframtagning.
- Öppna Analyze Product Persona och behåll Resource inställt på
image, Input Type inställt påbase64och Operation inställt påanalyze. - Säkerställ att persona-prompten refererar till produktnamnet med
{{ $node['Inbound Form Trigger'].json['Product Name'] }}. - Autentiseringsuppgifter krävs: Anslut era
openAiApi-autentiseringsuppgifter i Analyze Product Persona. - I Store Persona Prompt, ställ in prompt på
{{ $json.content }}. - I Compose Script Master Prompt, bekräfta att prompten innehåller
{{ $node['Store Persona Prompt'].json.prompt }}och{{ $node['Inbound Form Trigger'].json['Product Name'] }}.
Steg 4: Konfigurera Gemini-manusgenerering och parsning
Begär manusvariationer från Gemini, extrahera varje manus och dela upp dem i enskilda items.
- I Request Script Variations, ställ in URL på
https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro:generateContentoch behåll JSON Body som refererar till{{ JSON.stringify($json.prompt) }}och{{ $node['Extract Product Base64'].json.data }}. - Autentiseringsuppgifter krävs: Anslut era
httpHeaderAuth-autentiseringsuppgifter i Request Script Variations. - I Extract Script List, behåll Text inställt på
{{ $json.candidates[0].content.parts[0].text }}och ha Has Output Parser aktiverat. - I Parse Script Output, behåll Auto Fix aktiverat och behåll JSON-schemat för
prompts. - Obs: Parse Script Output är en AI-subnod – lägg till autentiseringsuppgifter på den överordnade Gemini Pro Model, inte på parsern i sig.
- Autentiseringsuppgifter krävs: Anslut era
googlePalmApi-autentiseringsuppgifter i Gemini Pro Model. Den här modellen används av Extract Script List och Parse Script Output. - I Split Script Items, ställ in Field To Split Out på
output.promptsoch behåll Destination Field Name somprompt. - Säkerställ att exekveringsvägen är Compose Script Master Prompt → Request Script Variations → Extract Script List → Split Script Items.
Steg 5: Generera och ändra storlek på introbildrutan
Skapa en vertikal introbildruta och formatera den så att den matchar videoupplösningen 720x1280.
- I Batch Through Scripts, behåll standardinställningen för batchning för att iterera igenom varje manus-prompt.
- I Generate Intro Frame, behåll URL inställt på
https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image-preview:generateContentoch bekräfta att JSON-kroppen refererar till{{ $node['Extract Product Base64'].json.data }}. - Autentiseringsuppgifter krävs: Anslut era
httpHeaderAuth-autentiseringsuppgifter i Generate Intro Frame. - I Capture Frame Result, ställ in värdet för result på
{{ $json.candidates[0].content.parts.filter(item => item.inlineData).first().inlineData.data }}. - I Create Frame Binary, ställ in Operation på
toBinaryoch Source Property påresult. - I Resize Frame Image, ställ in Operation på
resize, Width på720, Height på1280och Resize Option påignoreAspectRatio.
Steg 6: Skapa videor, polla status och hämta innehåll
Skapa en video för varje manus, vänta på bearbetning och hämta det slutliga videoinnehållet när det är klart.
- I Create Video Clip, ställ in URL på
https://api.openai.com/v1/videosoch säkerställ att body-parametrarna inkluderar prompt som{{ $node['Batch Through Scripts'].json.prompt }}, model somsora-2, seconds som12och size som720x1280. - Autentiseringsuppgifter krävs: Anslut era
openAiApi-autentiseringsuppgifter i Create Video Clip. - I Wait Interval, ställ in Amount på
15för att pausa mellan statuskontroller. - I Check Video Status, ställ in URL på
https://api.openai.com/v1/videos/{{ $json.id }}. - Autentiseringsuppgifter krävs: Anslut era
openAiApi-autentiseringsuppgifter i Check Video Status och Fetch Video Content. - I Status Decision, ställ in villkoret att jämföra
{{ $json.status }}är lika medcompleted. - I Fetch Video Content, ställ in URL på
https://api.openai.com/v1/videos/{{ $json.id }}/content.
Steg 7: Ladda upp videor till Google Drive
Lagra varje genererad video i en Drive-mapp med ett löpande namn.
- I Upload Video to Drive, ställ in Name på
UGC Video #{{ $runIndex + 1 }}. - Välj mål-Drive och ställ in Folder ID till målmappen.
- Autentiseringsuppgifter krävs: Anslut era
googleDriveOAuth2Api-autentiseringsuppgifter i Upload Video to Drive.
[YOUR_ID] i Folder ID med ett riktigt Google Drive-mapp-ID, annars kommer uppladdningarna att misslyckas.Steg 8: Testa och aktivera ert workflow
Verifiera att flödet fungerar end-to-end och aktivera det sedan för produktion.
- Klicka på Execute Workflow och skicka in en testfil och ett produktnamn i Inbound Form Trigger.
- Bekräfta att Analyze Product Persona tar fram en persona, att Request Script Variations returnerar manus och att Split Script Items skapar flera items.
- Verifiera att Create Video Clip skapar ett videjobb, att Status Decision upptäcker när det är klart och att Fetch Video Content returnerar videodata.
- Kontrollera att Upload Video to Drive skapar filer med namn som
UGC Video #1,UGC Video #2osv. - När ni är nöjda, slå på workflowet till Active för att köra i produktion.
Vanliga fallgropar
- Google Drive-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först n8n:s test av autentiseringsuppgifterna och åtkomsten till din Drive-mapp.
- Om du använder Wait-noder eller extern rendering varierar processingtiderna. Öka väntetiden om noder längre ned fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er varumärkesröst tidigt, annars kommer du redigera output i all evighet.
Vanliga frågor
Cirka 30 minuter om du redan har API-nycklarna och har valt en Drive-mapp.
Nej. Du kopplar mest konton och klistrar in API-nycklar i rätt fält för autentiseringsuppgifter i n8n.
Ja. n8n har ett gratis alternativ för egen hosting 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 med kostnader för OpenAI:s videogenerering (ungefär 0,50–1,00 USD per 12-sekundersvideo, beroende på aktuell prissättning och inställningar).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger obegränsade körningar men kräver grundläggande serverhantering.
Ja, men du bör ändra på två ställen så att outputen hänger ihop. Uppdatera längdinställningen i begäran för videogenerering (HTTP-begäran “Create Video Clip” som anropar Sora) och justera sedan manusprompten i steget där Gemini-prompten byggs så att bildruta-för-bildruta-planen matchar ett tempo för 15 sekunder. Vanliga justeringar är också att ändra UGC-stil (casual vs. hög energi), byta bildförhållande i steget för bildskalning och namnge Drive-mappar per kampanj.
Oftast beror det på att OAuth-åtkomsten i dina n8n-autentiseringsuppgifter för Google Drive har gått ut eller återkallats. Anslut kontot igen, bekräfta att målmappen är åtkomlig för samma Google-användare och kör sedan en execution igen. Om det bara fallerar vid större batchar, kontrollera Drive API-kvotgränser eller en mappsökväg som ändrats efter att arbetsflödet sattes upp.
I praktiken skalar det tills du når din API-budget och dina exekveringsgränser. På n8n Cloud Starter jobbar du inom ett månatligt tak för antal körningar, så mycket stora kataloger kan kräva en högre plan. Om du hostar själv finns ingen exekveringsgräns, men din server och kötider blir begränsningen. Rendering är ändå den långsamma delen: Sora tar cirka 2–3 minuter per 12-sekundersvideo plus polling-tid, så batchning handlar mest om kostnadskontroll och att hålla körningarna prydliga.
Ofta, ja, eftersom det här arbetsflödet behöver loopar, batchning, polling och villkorslogik, och sådant blir dyrt eller klumpigt i enklare automationsverktyg. n8n gör också egen hosting realistiskt, vilket spelar roll när du genererar många variationer. Zapier eller Make kan fortfarande fungera bra om du bara vill ha ett litet tvåstegsflöde som “ny fil i mapp → skicka Slack-meddelande”. Om du är osäker, prata med en automationsexpert så får du en rak rekommendation baserat på volym och teamets kompetens.
När det här väl rullar slutar kreativa tester kännas som ett produktionsprojekt. Du skickar in en produktbild, och din Drive fylls med annonsvariationer som du kan lansera och lära dig av.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.