Annonsvarianter blir röriga snabbt. En person exporterar ”final_v7”, någon annan laddar upp ”final_v7_REALLY_FINAL”, och godkännanden stannar upp eftersom ingen litar på vilken fil som är den senaste.
Performance marketers känner av det när de behöver fem bakgrundsbyten före lunch. En creative lead dras in i filjakt. Och en solo e-com owner vill bara ha korrekt formaterade versioner på ett ställe. Den här automatiseringen för videobakgrunder skickar varje färdigrendering direkt till Google Drive, så att du slutar slösa tid på missförstånd.
Nedan ser du exakt hur flödet körs i n8n, vad det levererar och vad du behöver för att sätta upp det på några minuter.
Så fungerar automatiseringen
Hela n8n-workflowet, från trigger till slutresultat:
n8n Workflow Template: VideoBGRemover till Drive – felfria annonsvarianter
flowchart LR
subgraph sg0["Manual 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/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook Trigger"]
n1@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Trigger", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Webhook Data", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Sample Video URLs (Edit Here)", pos: "b", h: 48 }
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/merge.svg' width='40' height='40' /></div><br/>Merge Triggers"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>1. Create Job (Upload Foregr.."]
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/>2. Start Composition"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>3. Check Job Status"]
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is Complete?", pos: "b", h: 48 }
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/>4. Download Video"]
n10@{ icon: "mdi:cog", form: "rounded", label: "5. Upload to Google Drive", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Build Success Response", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Has Failed?", pos: "b", h: 48 }
n13@{ icon: "mdi:cog", form: "rounded", label: "Wait 20s", pos: "b", h: 48 }
n14@{ icon: "mdi:swap-vertical", form: "rounded", label: "Build Error Response", pos: "b", h: 48 }
n15@{ icon: "mdi:swap-horizontal", form: "rounded", label: "From Webhook?", 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/webhook.dark.svg' width='40' height='40' /></div><br/>Respond to Webhook"]
n17@{ icon: "mdi:swap-vertical", form: "rounded", label: "Manual Test Complete", pos: "b", h: 48 }
n13 --> n7
n12 --> n14
n12 --> n13
n8 --> n9
n8 --> n12
n15 --> n16
n15 --> n17
n1 --> n3
n4 --> n5
n0 --> n2
n9 --> n10
n7 --> n8
n6 --> n7
n14 --> n15
n2 --> n4
n11 --> n15
n10 --> n11
n3 --> n4
n5 --> n6
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 n1 trigger
class n8,n12,n15 decision
class n0,n5,n6,n7,n9,n16 api
classDef customIcon fill:none,stroke:none
class n0,n4,n5,n6,n7,n9,n16 customIcon
Problemet: bakgrundsbyten blir snabbt versionskaos
Att byta bakgrund låter som ”en snabb redigering” tills du gör det i skala. En enda kreativ kan skapa ett dussin varianter över olika scener, erbjudanden och hooks, och plötsligt handlar jobbet inte längre om redigering. Det handlar om spårning. Länkar ligger i DM:s, exporter är utspridda över skrivbord, och teamet slösar tid på att ladda ner samma material igen eftersom det är oklart vilken version som är den ”rätta”. Ännu värre: fel uppladdning slinker in i ett annonskonto och du märker det först när spend drar i gång.
Friktionen byggs på. Här är var det oftast fallerar.
- Bakgrundsbyten kräver ofta repetitiva manuella steg, så att göra 10 variationer kan äta upp en hel eftermiddag.
- Team tappar tid på att leta efter senaste renderingen, särskilt när filer delas i chatt i stället för att lagras konsekvent.
- Att ladda upp och ladda upp stora videor till Drive manuellt går långsamt, och det är lätt att lägga fel fil i fel mapp.
- Godkännanden drar ut på tiden eftersom intressenter inte kan granska via en tillförlitlig länk som alltid pekar på det färdiga resultatet.
Lösningen: auto-komponera videor och arkivera dem i Drive
Det här workflowet tar en förgrundsvideo (AI-skådespelare, produktdemo, webbkameraklipp), kombinerar den med en bakgrundsvideo som du anger och kör hela kompositionen via VideoBGRemover API. Du kan starta det manuellt för snabb testning, eller trigga det via en inkommande webhook så att andra verktyg kan dra i gång det automatiskt. n8n skapar bearbetningsjobbet, initierar kompositionen och kontrollerar sedan status i en tidsstyrd loop så att du slipper sitta och uppdatera. När renderingen är klar laddar den ner den färdiga videon, laddar upp den direkt till Google Drive och returnerar en delbar länk som du kan skicka för granskning.
Workflowet startar antingen från en webhook-request eller en manuell start. Därefter kör det VideoBGRemover-bearbetningen och pollar var 20:e sekund tills jobbet är klart. Till sist tar Google Drive emot den färdiga filen och du får ett tydligt lyckat-svar (eller ett tydligt felmeddelande om något misslyckas).
Det du får: automatisering vs. resultat
| Vad detta workflow automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du producerar 10 annonsvarianter för ett erbjudande: samma förgrundsklipp på 10 olika varumärkesanpassade bakgrundsscener. Manuellt kanske du lägger cirka 15 minuter per variation på att exportera, namnge, ladda upp och dela länkar, vilket blir ungefär 2,5 timmar monotont arbete innan någon ens granskar det kreativa. Med det här workflowet triggar du 10 körningar med URL:er, väntar några minuter per minut inmatningsvideo för bearbetning, och de färdiga versionerna landar i Google Drive automatiskt med delbara länkar. Du får tillbaka din eftermiddag och, ärligt talat, mappen förblir begriplig.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- VideoBGRemover för bakgrundsborttagning och komposition
- Google Drive för att lagra resultat och dela länkar
- VideoBGRemover API-nyckel (hämta den från videobgremover.com/n8n)
Kunskapsnivå: Nybörjare. Du klistrar in en API-nyckel, kopplar Drive och testar en exempel-körning.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Du triggar det via webhook eller manuell körning. Om du integrerar från ett annat system tar webhooken emot din förgrundsvideo och URL:en till bakgrundsvideon. För snabb testning använder den manuella triggern exempellänkar så att du kan bekräfta att allt fungerar innan du kopplar in det i produktion.
Indata normaliseras till en payload. n8n tolkar webhook-fälten (eller exempelsättet) och slår sedan ihop båda ingångarna så att efterföljande steg alltid får samma strukturerade format.
VideoBGRemover gör grovjobbet. Workflowet skapar ett bearbetningsjobb, initierar kompositionen och kontrollerar sedan status i en 20-sekunders loop. Om bearbetningen inte är klar väntar det och kontrollerar igen tills jobbet är klart (eller misslyckas).
Den färdiga videon levereras till Google Drive. När renderingen är klar laddar workflowet ner resultatet och laddar upp det till Drive. Du får ett lyckat-svar som inkluderar en delbar länk, vilket gör granskningar och överlämningar mycket enklare.
Du kan enkelt ändra var filer hamnar i Google Drive (mapp, namngivning, undermappar per kund) utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera webhook-triggern
Konfigurera den primära inkommande triggern så att externa system kan starta kompositionsprocessen.
- Lägg till och öppna Incoming Webhook Start.
- Ställ in HTTP Method på
POST. - Ställ in Path på
compose-video. - Ställ in Response Mode på
responseNode.
Steg 2: koppla ihop manuella och webhook-indata
Normalisera inkommande data från både webhooken och den manuella triggern och kombinera dem sedan till en gemensam ström.
- Öppna Parse Webhook Inputs och ställ in tilldelningarna:
- foreground_video_url till
={{ $json.body?.foreground_video_url ?? $json.foreground_video_url ?? 'https://videos.videobgremover.com/public-videos/assets/ai-actor.mp4' }} - background_video_url till
={{ $json.body?.background_video_url ?? $json.background_video_url ?? 'https://videos.videobgremover.com/public-videos/assets/vertical_background.mp4' }} - source till
webhook
- foreground_video_url till
- Öppna Sample Video Links och ställ in exempelvärden:
- foreground_video_url till
https://videos.videobgremover.com/public-videos/assets/ai-actor.mp4 - background_video_url till
https://videos.videobgremover.com/public-videos/assets/vertical_background.mp4 - source till
manual
- foreground_video_url till
- Öppna Combine Entry Points och ställ in Mode på
append. - Säkerställ att Incoming Webhook Start är kopplad till Parse Webhook Inputs och att Manual Launch är kopplad till Sample Video Links, och att båda sedan går in i Combine Entry Points.
append kan bara en indata passera igenom, vilket orsakar saknad data vid testning.Steg 3: konfigurera API-anropen för videobearbetning
Konfigurera API-sekvensen som skapar ett jobb, startar kompositionen och pollar för att kontrollera när den är klar.
- Öppna Create Processing Job och ställ in:
- URL till
https://api.videobgremover.com/api/v1/jobs - Method till
POST - JSON Body till
={ "video_url": "{{ $json.foreground_video_url }}" } - Header Parameters → X-API-Key till
={{ $vars.VIDEOBGREMOVER_KEY }} - Header Parameters → Content-Type till
application/json
- URL till
- Öppna Initiate Composition och ställ in:
- URL till
=https://api.videobgremover.com/api/v1/jobs/{{ $json.id }}/start - Method till
POST - JSON Body till den angivna mallen, inklusive
{{ $('Combine Entry Points').item.json.background_video_url }} - Header Parameters → X-API-Key till
={{ $vars.VIDEOBGREMOVER_KEY }} - Header Parameters → Content-Type till
application/json
- URL till
- Öppna Check Processing Status och ställ in:
- URL till
=https://api.videobgremover.com/api/v1/jobs/{{ $('Create Processing Job').item.json.id }}/status - Method till
GET - Header Parameters → X-API-Key till
={{ $vars.VIDEOBGREMOVER_KEY }}
- URL till
- Öppna Delay 20 Seconds och ställ in Unit på
secondsoch Amount på20. - Öppna Completion Check och verifiera villkoret: Left Value
={{ $json.status }}är lika medcompleted.
Steg 4: konfigurera utdata och leverans
Ladda ner den renderade videon, ladda upp den till Drive och bygg ett svar för webhook- eller manuella körningar.
- Öppna Download Rendered Video och ställ in URL till
={{ $json.processed_video_url }}. - Öppna Upload to Drive och ställ in:
- Operation till
upload - Binary Property Name till
data - Name till
=composed_video_{{ $('Create Processing Job').item.json.id }}_{{ new Date().getTime() }}.mp4 - Drive till
My Drive - Folder till
root(eller er målmapp)
- Operation till
- Credential Required: Anslut era Google Drive-autentiseringsuppgifter i Upload to Drive.
- Öppna Assemble Success Output och behåll objektuttrycket för final_result som det är angivet för att inkludera Drive-URL, nedladdnings-URL och metadata.
- Öppna Webhook Source Check och verifiera villkoret: Left Value
={{ $json.final_result?.source ?? $json.source }}är lika medwebhook. - Öppna Return Webhook Reply och ställ in Response Body till
={{ $json.final_result ?? $json }}och Response Code till200. - Öppna Finalize Manual Output och ställ in final_result till
={{ $json.final_result ?? $json }}för utdata vid manuell testning.
Steg 5: lägg till felhantering
Hantera felstatusar och returnera ett strukturerat felsvar när renderingen misslyckas.
- Öppna Failure Check och verifiera villkoret: Left Value
={{ $json.status }}är lika medfailed. - Öppna Assemble Error Output och behåll objektuttrycket för final_result för att inkludera status och feldetaljer.
- Bekräfta exekveringsflödet: Failure Check → Assemble Error Output → Webhook Source Check → Return Webhook Reply eller Finalize Manual Output.
Steg 6: testa och aktivera ert arbetsflöde
Validera både manuella och webhook-baserade exekveringsvägar innan ni aktiverar arbetsflödet i produktion.
- Klicka på Manual Launch och kör arbetsflödet för att verifiera exempelindata och bekräfta att en fil laddas upp till Drive.
- Kontrollera utdata från Finalize Manual Output för ett
success: true-resultat med fälten för Drive-URL och nedladdnings-URL. - Skicka en POST-begäran till URL:en för Incoming Webhook Start med
foreground_video_urlochbackground_video_urli body för att testa webhook-flödet. - Bekräfta att webhook-svaret från Return Webhook Reply returnerar
final_resultmed korrekt källa och jobbmetadata. - När allt är validerat, växla arbetsflödet till Active för att möjliggöra bearbetning i produktion.
final_result-objekt som returneras till anroparen.Vanliga fallgropar
- Google Drive-autentiseringsuppgifter kan gå ut eller kräva specifika behörigheter. Om saker slutar fungera, kontrollera först skärmen Credentials i n8n och dina Drive-åtkomstscopes.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om efterföljande noder misslyckas på tomma svar.
- VideoBGRemover API-anrop kan misslyckas om dina video-URL:er inte är publikt åtkomliga. Testa URL:erna i ett inkognitofönster innan du antar att felet ligger i workflowet.
Vanliga frågor
Cirka 7 minuter om dina konton är redo.
Nej. Du klistrar främst in en API-nyckel och kopplar Google Drive i n8n.
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 kostnader för VideoBGRemover API (0,50–2,00 USD per minut).
Två alternativ: n8n Cloud (hanterat, enklast setup) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det är en av de bästa justeringarna att göra tidigt. Du kan styra uppladdningar till olika mappar genom att justera uppladdningssteget i Google Drive och lägga till ett enkelt villkor (workflowet använder redan If-noder). Vanliga anpassningar är mapp-per-kund, en namngivningsstandard som ”brand_offer_scene” och att returnera både Drive-länken och jobbstatus till ditt intagsverktyg via webhook-svar.
Oftast handlar det om en saknad eller felstavad variabel VIDEOBGREMOVER_KEY i n8n, eller en nyckel som har återskapats men inte uppdaterats. Den andra vanliga orsaken är inmatnings-URL:erna: om förgrunds- eller bakgrundsvideon inte är publikt nåbar kan API:t inte hämta den och jobbet misslyckas. Håll också koll på rate limits om du startar många renderingar samtidigt. Kontrollera svaret (response body) i HTTP Request-noden i n8n; den talar normalt om vad som är fel.
Många, så länge din plan och server hänger med. I n8n Cloud beror din månatliga körningsgräns på din plan, och varje rendering tar oftast flera körningar eftersom workflowet pollar status var 20:e sekund. Om du self-hostar finns ingen körningsgräns, men din VPS behöver tillräckligt med CPU och minne för att köra samtidiga jobb stabilt. I praktiken börjar de flesta små team med några renderingar åt gången och skalar sedan upp när de är nöjda med namngivning, mappar och kostnader.
Ofta, ja, eftersom den här typen av workflow gynnas av polling, branching och mer robust felhantering. n8n gör det enklare att vänta, kontrollera status och göra retries utan att din automatisering blir en hög av betalda tasks. Det är också smidigare om du vill self-hosta för volym. Zapier eller Make kan fortfarande fungera om du bara gör ett enkelt flöde ”skicka request, vänta, ladda upp” och du inte bryr dig om extra task-förbrukning. Prata med en automationsexpert om du är osäker på vad som passar.
När detta väl rullar slutar bakgrundsbyten att vara ett koordineringsproblem. Dina variationer hamnar i Google Drive, granskningslänkarna är klara och du kan fokusera på nästa test i stället för nästa uppladdning.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.