Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Discord + Google Forms: produktmaterial klart

Rickard Andersson Partner, Nodenordic.se

Du får äntligen produktdetaljerna… och då börjar det riktiga jobbet. Att omvandla en brief till varumärkesanpassade bilder och en kort video innebär ofta att jaga filer, skriva om prompts, vänta på renderjobb och ändå landa i material som är ”nästan rätt”.

Den här automatiseringen av produktcreatives drabbar e-handelsmarknadsförare hårdast, men grundare och personer inom creative ops känner också av det. Du behöver konsekventa creatives i högt tempo, utan att lägga till en person till i loopen eller spendera kvällarna med att fixa prompts.

Det här flödet tar en inskickad Google Form och returnerar färdiga URL:er till assets (två bilder plus en kort video), med Discord som flaggar fel direkt. Du får se hur det fungerar, vad du behöver och var du kan anpassa det.

Så fungerar automatiseringen

Här är hela flödet du kommer att sätta upp:

n8n Workflow Template: Discord + Google Forms: produktmaterial klart

Varför det här spelar roll: att omvandla briefs till creatives är en flaskhals

I de flesta team är ”skapa creatives” en rörig kedja av små steg. Någon klistrar in specifikationer i ett dokument. Någon annan försöker skriva prompts. Bilder genereras, men filformatet är fel, eller bakgrunden matchar inte varumärket, eller modellen ser märklig ut. Sedan upprepar du allt för video, vilket lägger till väntetid, export, uppladdning och ännu en runda länkar. Det värsta är kontextbytena. Du tappar tråden, och kvaliteten sjunker för att du stressar.

Det blir snabbt mycket. Här är var det brukar fallera i praktiken:

  • Creative-önskemål kommer in halvstrukturerat, så du lägger runt 30 minuter bara på att reda ut detaljer innan något ens produceras.
  • Promptkvaliteten varierar mellan personer, vilket gör att ”konsekventa” assets i praktiken blir en fråga om tur.
  • Videogenerering innebär väntetid och statuskontroller, och någon måste ändå sitta och passa jobbet.
  • Länkar till assets sprids i chattar och mappar, så att lansera en kampanj blir ännu en skattjakt.

Vad du bygger: Google Form in, bild- och video-URL:er ut

Du sätter upp ett n8n-flöde som börjar med ett enkelt produktformulär och slutar med URL:er som är redo att användas för dina creatives. När ett nytt formulärsvar kommer in mappar flödet indata (produktdetaljer, stilnoteringar, kreativ riktning) till ett strukturerat schema och använder sedan AI-agenter för att göra om det till starka, konsekventa prompts. Det genererar en första produktbild, laddar upp den till din hosting så att den kan nås via URL, och analyserar sedan bilden för att skapa en andra prompt som lägger till en modell. Efter att modellbilden har genererats och laddats upp använder flödet den visuella referensen för att styra en kort, filmisk videoprompt, startar ett videogenereringsjobb, pollar tills det är klart, hämtar den färdiga videofilen, laddar upp den och returnerar länkarna i ett korrekt formaterat svar. Om något misslyckas någonstans får Discord en avisering direkt, så du slipper gissa vad som skapade fel.

Flödet startar vid formulärinsändningen (eller en chattbaserad testtrigger om du vill prototypa snabbare). Därifrån går det prompt → generera → ladda upp → analysera → prompt igen, och upprepar sedan samma mönster för video med en vänta-och-kontroll-loop. Till sist postar det nyckelresultat till Discord och returnerar ett prydligt HTML-svar med URL:er som du kan lämna vidare direkt.

Vad du bygger

Förväntade resultat

Säg att du lanserar 10 produkter i veckan och vill ha två bilder plus en kort video för varje. Manuellt kan även en ”snabb” process ta cirka 30 minuter per bild och runt 45 minuter för en enkel videokörning, så du hamnar på ungefär 2 timmar per produkt, eller cirka 20 timmar i veckan. Med det här flödet är den aktiva delen mest briefen (cirka 5 minuter) och en snabb granskning av resultaten, medan genereringen kör i bakgrunden. För de flesta team innebär det nästan två hela arbetsdagar tillbaka varje vecka.

Innan du börjar

  • n8n-instans (prova n8n Cloud gratis)
  • Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
  • Google Forms för att samla in produktbriefs konsekvent.
  • Discord för felaviseringar och publicering av resultat.
  • OpenRouter-konto för AI-agenter och promptgenerering.
  • GOAPI-konto för att generera den slutliga videon.
  • Plattform för mediahosting för att ladda upp assets och returnera URL:er.

Kunskapsnivå: Medel. Du kopplar några konton, klistrar in API-nycklar och testar flödet från början till slut en gång.

Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).

Steg för steg

En produktbrief kommer in. En inskickad Google Form triggar flödet, och sedan mappar n8n fälten till exakt den struktur AI-agenterna förväntar sig (så du slipper slåss med rörig indata varje gång).

Flödet skriver bättre prompts än de flesta människor gör. OpenRouter/Gemini-chatmodeller och agentnoder gör om din beskrivning i klarspråk till en detaljerad bildprompt och parsar sedan svaret till ett förutsägbart schema.

Bilder genereras, laddas upp och analyseras. n8n anropar ditt bildgenererings-API, konverterar base64 till riktiga filer, laddar upp dem till din mediahost och använder sedan visuell analys för att skapa nästa prompt (först endast produkt, sedan en version med modell).

En videouppgift körs med inbyggd väntan. Flödet skapar videogenereringsjobbet, kontrollerar status med ett intervall, hämtar den färdiga filen när den är klar och laddar upp den för en slutlig URL.

Du kan enkelt ändra kreativ stil och destinationsplatser för output så att det matchar ditt varumärke. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: konfigurera formulärtriggern

Konfigurera intagsformuläret som startar flödet för produktbildsgenerering och granska vid behov chattriggern som används för testning.

  1. Öppna Product Intake Form och bekräfta att Form Title är inställt på Image Generation Form och att Form Description är Form for generating a product image.
  2. Verifiera att formulärfälten innehåller A detailed description of the product. (obligatoriskt), Text to inlucde in Product (optional), samt rullistorna för E-commerce Product Options, Jewelry Product Options, Electronics Product Options och Food Photography Options.
  3. Valfritt: granska Test Chat Trigger om ni vill ha en chattbaserad ingångspunkt; observera att den är inaktiverad i arbetsflödet och endast bör aktiveras för testning.
Tips: Låt formulärens alternativsträngar vara oförändrade, eftersom de senare sammanfogas till ett enda promptfält i Map Form Inputs.

Steg 2: mappa formulärdata till prompt-indata

Omvandla råa formulärsvar till en konsekvent payload för AI:ns prompt-byggare.

  1. Öppna Map Form Inputs och bekräfta att tilldelningarna mappar fälten till: description = {{$json['A detailed description of the product.']}}, text = {{$json["Text to inlucde in Product (optional)"]}}.
  2. Säkerställ att productOptions sammanfogar alla rullistealternativ med {{$json["E-commerce Product Options"].toJsonString().replaceAll('"','')}}{{ $json['Jewelry Product Options'].toJsonString().replaceAll('"','') }}{{ $json['Electronics Product Options'].toJsonString().replaceAll('"','') }}{{ $json['Food Photography Options'].toJsonString().replaceAll('"','') }}.
  3. Bekräfta att flödet kopplar Product Intake FormMap Form InputsProduct Prompt Builder.
⚠️ Vanlig fallgrop: Om någon rullisteetikett ändras, uppdatera motsvarande uttryck i Map Form Inputs för att undvika tomma promptdata.

Steg 3: konfigurera promptgenerering och parsning (AI/LLM)

Konfigurera AI-agenterna, språkmodellerna och utdata-parsers som omvandlar användarindata till strukturerade prompts.

  1. I Product Prompt Builder, verifiera att prompttexten är =About Product : {{ $json.description }}

    Text On Product: {{ $json.text }}

    Description: {{ $json.productOptions }}
    och att Has Output Parser är aktiverat.
  2. Öppna Parse Product Schema och behåll det manuella schemat som angivet. Detta är en parser-undernod; inloggningsuppgifter ska läggas till på den överordnade modellnoden.
  3. Anslut språkmodeller till Product Prompt Builder: OpenRouter Chat Model A och Gemini Chat Model A. Credential Required: Anslut era openRouterApi-inloggningsuppgifter i OpenRouter Chat Model A. Credential Required: Anslut era googlePalmApi-inloggningsuppgifter i Gemini Chat Model A.
  4. I Model Prompt Composer, bekräfta att prompttexten är =Here is the Product : {{ $json.content.parts[0].text }}. Please generate an image prompt. och låt Has Output Parser vara aktiverat.
  5. Öppna Parse Model Schema och behåll det manuella schemat som angivet. Detta är en parser-undernod; inloggningsuppgifter ska läggas till på den överordnade modellnoden.
  6. Anslut språkmodeller till Model Prompt Composer: OpenRouter Chat Model B och Gemini Chat Model B. Credential Required: Anslut era openRouterApi-inloggningsuppgifter i OpenRouter Chat Model B. Credential Required: Anslut era googlePalmApi-inloggningsuppgifter i Gemini Chat Model B.
  7. För den kreativa videoprompten, behåll Creative Direction Agent konfigurerad med systemmeddelandet och prompttexten =Image Details is given Below:
    ```
    {{ $json.content.parts[0].text }}
    ```
    . Parse Video Schema är en parser-undernod; lägg till inloggningsuppgifter på den överordnade modellnoden.
  8. Anslut språkmodeller till Creative Direction Agent: OpenRouter Chat Model C och Gemini Chat Model C. Credential Required: Anslut era openRouterApi-inloggningsuppgifter i OpenRouter Chat Model C. Credential Required: Anslut era googlePalmApi-inloggningsuppgifter i Gemini Chat Model C.
Tips: Parsernoderna (Parse Product Schema, Parse Model Schema, Parse Video Schema) tar inga inloggningsuppgifter—lägg i stället till inloggningsuppgifter på de anslutna LLM-noderna.

Steg 4: konfigurera bildgenerering och mediehosting

Konfigurera HTTP-anropen och filkonverteringarna som genererar och hostar bilderna.

  1. Öppna Image Generation API och bekräfta att URL:en är https://openrouter.ai/api/v1/chat/completions med JSON-body som använder produktpromptfälten. Credential Required: Anslut era openRouterApi-inloggningsuppgifter.
  2. I Extract Base64 Data, bekräfta att image_string använder {{$json.choices[0].message.images[0].image_url.url.split(',')[1]}} för att extrahera base64-innehåll.
  3. I Binary File Converter, säkerställ att Operation är toBinary och att Source Property är image_string.
  4. I Media Upload Request, bekräfta att URL:en är http://homelab-mediahosting.4m6m9w.easypanel.host/api/1/upload med Content Type inställt på multipart-form-data. Credential Required: Anslut era httpHeaderAuth-inloggningsuppgifter.
  5. I Derive Image Link, ställ in url till {{$json.image.image.url.replaceAll('http', 'https')}} för att tvinga HTTPS.
  6. Upprepa samma mönster för modellbildsvägen: Model Image GeneratorExtract Base64 Data BBinary File Converter BMedia Upload Request BDerive Image Link B. Credential Required: Anslut era openRouterApi-inloggningsuppgifter i Model Image Generator och httpHeaderAuth i Media Upload Request B.
⚠️ Vanlig fallgrop: Säkerställ att er mediehost accepterar binärfältet med namnet source enligt konfigurationen i body-parametrarna för Media Upload Request och Media Upload Request B.

Steg 5: analysera bilder och skapa kreativa riktningar

Kör visuell analys på hostade bilder och ta fram modell- och videoprompts.

  1. I Product Visual Analyzer, behåll Resource inställt på image och Image URLs inställt på {{$json.url}}. Credential Required: Anslut era googlePalmApi-inloggningsuppgifter.
  2. I Creative Visual Analyzer, behåll Resource inställt på image och Image URLs inställt på {{$json.url}}. Credential Required: Anslut era googlePalmApi-inloggningsuppgifter.
  3. Säkerställ att Derive Image Link B skickar utdata till både Post Image to Discord och Creative Visual Analyzer parallellt för att skicka den hostade länken samtidigt som bilden analyseras.
  4. Bekräfta att Product Visual Analyzer matar in i Model Prompt Composer, och att Creative Visual Analyzer matar in i Creative Direction Agent.
Tips: Den parallella körningen efter Derive Image Link B säkerställer att Discord-inlägget och den kreativa analysen sker samtidigt, vilket snabbar upp arbetsflödet.

Steg 6: konfigurera skapande av videouppgift och polling

Konfigurera begäran för videogenerering och polling-loopen som väntar på att processen blir klar.

  1. I Video Task Creator, bekräfta att URL:en är https://api.goapi.ai/api/v1/task och att JSON-body innehåller {{$json.output.video_prompt.replaceAll('"', '**').replaceAll('\n', '')}} och {{$('Derive Image Link B').item.json.url}}. Credential Required: Anslut era httpHeaderAuth-inloggningsuppgifter.
  2. I Status Check Request, ställ in URL:en till =https://api.goapi.ai/api/v1/task/{{ $json.data.task_id }}. Credential Required: Anslut era httpHeaderAuth-inloggningsuppgifter.
  3. I Processing Check, säkerställ att villkoren kontrollerar att {{$json.data.status}} är lika med processing eller pending, och loopa sedan till Delay Interval när den fortfarande kör.
  4. När statusen är klar, låt flödet fortsätta till Fetch Video File och sedan Media Upload Request C. Credential Required: Anslut era httpHeaderAuth-inloggningsuppgifter i Media Upload Request C.

Steg 7: konfigurera leverans av utdata

Publicera de slutliga medialänkarna till Discord och bygg HTML-svarssidan.

  1. I Post Image to Discord, bekräfta att meddelandet är =Product Image - {{ $('Derive Image Link').item.json.url }}
    Final Image - {{ $json.url }}
    . Credential Required: Anslut era discordWebhookApi-inloggningsuppgifter.
  2. I Build HTML Response, behåll HTML-mallen intakt och säkerställ att bildlänkarna refererar till {{ $('Derive Image Link').item.json.url }} och {{ $('Derive Image Link B').item.json.url }}.
  3. Verifiera att Post Image to Discord skickar utdata till Build HTML Response som sista svarssteg.

Steg 8: lägg till felhantering

Säkerställ att fel rapporteras till Discord via feltrigger-vägen.

  1. Öppna Error Catch Trigger och bekräfta att den är ansluten till Dispatch Error Alert.
  2. I Dispatch Error Alert, behåll innehållsvärdet =Error Occured - {{ $json.execution.error.message }}. Credential Required: Anslut era discordWebhookApi-inloggningsuppgifter.

Steg 9: testa och aktivera ert arbetsflöde

Kör ett end-to-end-test och aktivera sedan arbetsflödet för produktionsanvändning.

  1. Klicka på Execute Workflow, skicka in ett testsvar via Product Intake Form och följ flödet från Map Form Inputs genom noderna för bildgenerering och uppladdning.
  2. Bekräfta att det fungerar genom att kontrollera att Post Image to Discord postar båda URL:erna och att Build HTML Response renderar en sida med två bilder och nedladdningslänkar.
  3. Trigga ett felscenario (t.ex. återkalla en inloggningsuppgift tillfälligt) och verifiera att Dispatch Error Alert postar till er Discord-webhook.
  4. När allt är validerat, växla arbetsflödet till Active för att köra i produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Tips för felsökning

  • OpenRouter- eller Gemini-inloggningsuppgifter kan gå ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera sektionen för autentiseringsuppgifter i n8n och bekräfta att nyckeln fortfarande har åtkomst till de modeller du valt.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder misslyckas på tomma svar.
  • Publicering till Discord kan misslyckas om boten tappar åtkomst till kanalen. Kontrollera Discord-appens behörigheter igen och verifiera kanal-ID:t i Discord-nodens inställningar.

Snabba svar

Hur lång tid tar det att sätta upp den här automatiseringen av produktcreatives?

Cirka 30 minuter om dina konton och API-nycklar är redo.

Krävs kodning för den här automatiseringen av produktcreatives?

Nej. Du kopplar tjänster, klistrar in några API-nycklar och testar med en exempelbrief för en produkt.

Är n8n gratis att använda för det här flödet för automatisering av produktcreatives?

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 in OpenRouter/Gemini-användning samt dina API-kostnader för bild- och videogenerering.

Var kan jag hosta n8n för att köra den här automatiseringen?

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 hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här flödet för automatisering av produktcreatives för andra use cases?

Ja, och det bör du. Byt mediaplats genom att ändra noderna ”Media Upload Request” till din egen host (Google Drive fungerar om den returnerar direkta länkar). Du kan också justera varumärkesstilen genom att redigera agentprompterna i ”Product Prompt Builder” och ”Creative Direction Agent”, och skärpa kvalitetskontrollen genom att ändra vad schemaparsrarna kräver i ”Parse Product Schema” och ”Parse Video Schema.”

Varför misslyckas min Discord-anslutning i det här flödet?

Oftast handlar det om behörigheter. Bekräfta att boten finns i servern, har åtkomst till målkanalen och att kanal-ID:t i Discord-noderna matchar den kanal du vill använda. Om det fungerade tidigare och plötsligt slutade, anslut Discord-autentiseringsuppgiften i n8n på nytt. Kontrollera även rate limits om du postar många bilder under en kort period.

Vilken volym kan det här flödet för automatisering av produktcreatives hantera?

Om du kör n8n self-hosted finns ingen körningsgräns (det beror främst på din server och dina AI/video-leverantörer). I praktiken kör team ofta 20–50 produktbriefs per dag med köhantering, eftersom videogenerering och statuspolling är den långsammaste delen.

Är den här automatiseringen av produktcreatives bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här flödet behöver förgreningar, filhantering (base64 till binärt) och logik för ”vänta och kontrollera status” som blir krånglig och dyr i enklare verktyg. n8n låter dig också hålla allt på ett ställe: formulärintag, AI-promptning, anrop för bildgenerering, uppladdningar och felhantering till Discord. Samtidigt: om ditt flöde bara är ”formulär → skapa en uppgift → skicka ett Slack-meddelande” går Zapier eller Make vanligtvis snabbare att sätta upp. Det här är mer som en liten produktionslina. Om du tvekar, prata med en automationsexpert så hjälper vi dig att välja rätt upplägg.

Sätt upp det här en gång, så slutar flaskhalsen ”skapa creatives” styra din vecka. Flödet hanterar den repetitiva produktionsloopen så att du kan fokusera på lanseringar, testning och tillväxt.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal