Instagramkaruseller ser “enkla” ut tills du själv sitter med att skriva text till varje slide, generera bilder, kontrollera att du inte postade samma idé förra månaden och sedan ladda upp allt i rätt ordning. Det är den typen av jobb som tyst stjäl din vecka.
Marknadschefer märker det när innehållskalendern halkar efter. En småföretagare märker det när publiceringen skjuts upp till “sen”. Även byråansvariga fastnar i det när karusellproduktionen blir ett litet löpande band. Den här Instagram-karusellautomationen tar bort de repetitiva delarna från ditt bord och håller ändå inläggen on-brand.
Det här flödet tar fram ett nytt karuselltema, skapar text och bilder slide för slide med AI, kontrollerar att ämnen inte upprepas, loggar allt i Google Sheets och publicerar sedan via Instagram Graph API. Du får se vad det gör, vad du behöver och de vanliga ställena där det kan skapa fel.
Så fungerar automationen
Se hur det här löser problemet:
n8n Workflow Template: Instagram + Google Sheets: karuseller publiceras åt dig
flowchart LR
subgraph sg0["Schedule 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/code.svg' width='40' height='40' /></div><br/>Parsear JSON Inicial"]
n1@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n2@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n3@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n5@{ icon: "mdi:memory", form: "rounded", label: "Simple Vector Store", pos: "b", h: 48 }
n6@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI", pos: "b", h: 48 }
n7@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory", pos: "b", h: 48 }
n8@{ icon: "mdi:wrench", form: "rounded", label: "Answer questions with a vect..", pos: "b", h: 48 }
n9@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Model", pos: "b", h: 48 }
n10@{ icon: "mdi:memory", form: "rounded", label: "Simple Vector Store1", pos: "b", h: 48 }
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/code.svg' width='40' height='40' /></div><br/>generate search term"]
n12@{ icon: "mdi:database", form: "rounded", label: "save in sheets", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>upload image to imgur"]
n14["<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/>create container"]
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/>POst to instagram"]
n16@{ icon: "mdi:robot", form: "rounded", label: "generate image", pos: "b", h: 48 }
n1 --> n0
n7 -.-> n1
n16 --> n13
n12 --> n16
n2 --> n11
n14 --> n15
n6 -.-> n5
n6 -.-> n10
n4 -.-> n1
n5 -.-> n8
n0 --> n12
n10 -.-> n1
n11 --> n1
n9 -.-> n8
n13 --> n14
n3 --> n11
n8 -.-> n1
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 n2,n3 trigger
class n1,n16 ai
class n4,n9 aiModel
class n8 ai
class n5,n7,n10 ai
class n6 ai
class n12 database
class n13,n14,n15 api
class n0,n11 code
classDef customIcon fill:none,stroke:none
class n0,n11,n13,n14,n15 customIcon
Utmaningen: publicera karuseller utan att bränna timmar
Karusellinlägg presterar ofta starkt, men produktionsprocessen är märkligt straffande. Du gör inte en uppgift. Du gör tio små som inte känns “svåra”, men som kräver konstant kontextskifte: rubriksättning, slide-struktur, CTA-strategi, bildkonsistens, filhantering, uppladdningar och captions. Sedan kommer den där gnagande oron att du upprepar ämnen, återanvänder hooks eller glider ifrån er tonalitet. Och om du har flera kunder eller produktlinjer: lycka till att hålla allt rakt utan ett system.
Det blir snabbt mycket. Här är det som oftast faller isär.
- Att skriva nio slides plus en caption kan ta runt 2 timmar, och det är innan du ens rör designen.
- Team tappar momentum eftersom flödet lever i DM:s, halvfärdiga Canva-filer och någons anteckningsapp.
- Utan något minne av tidigare teman återanvänder du idéer och publiken märker det.
- Manuell publicering är skör, så ett missat steg betyder att karusellordningen blir fel eller att caption aldrig kommer ut.
Lösningen: AI-genererade karuseller som loggas och publiceras
Det här flödet tar karusellskapande från “starta ett tomt dokument och hoppas” till en repeterbar, spårbar pipeline. Det kan köras schemalagt (var 12:e timme) eller manuellt när du vill testa. Först genererar det ett tema genom att kombinera ämnesstarter, fokusområden och nyttor. Temat skickas till en AI-agent för innehåll, som returnerar strukturerat karusellinnehåll i JSON: slide-titlar, slide-text, hashtags och en CTA avsedd för sista kortet. Innan något publiceras kontrollerar flödet dina tidigare ämnen med semantiskt minne (embeddings + en lokal vektordatabas) så att du inte fortsätter posta samma vinkel med andra ord. När allt är validerat loggar flödet inläggsdetaljerna i Google Sheets, genererar en bild per slide med DALL·E, hostar bilderna via Imgur för att få publika URL:er och använder sedan Instagram Graph API för att skapa mediacontainers och publicera karusellen.
Flödet startar med en trigger (schemalagd eller manuell). AI skapar karusellplanen och validerar den så att trasig JSON inte saboterar körningen. Till sist blir Google Sheets din publiceringsjournal och Instagram får en karusell som är redo att publiceras, med bilder, ordning och caption hanterat.
Vad som förändras: före vs. efter
| Det här elimineras | Effekten du märker |
|---|---|
|
|
Effekt i verkligheten
Säg att du publicerar 3 karuseller i veckan, med 8 slides per karusell. Manuellt kanske du lägger cirka 20 minuter per slide på utkast, mindre omskrivningar och koordinering (det är ungefär 2,5 timmar per karusell), plus ytterligare 30 minuter för att förbereda uppladdningar och caption. Med det här flödet startar du en körning på någon minut, väntar på AI-generering och bildskapande, gör sedan en snabb granskning i Google Sheets innan det publicerar. Du sparar oftast runt 6 timmar i veckan, och innehållsloggen ingår.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- OpenAI API för karusellcopy och DALL·E-bilder
- Google Sheets för att logga inlägg och metadata
- Åtkomst till Instagram Graph API (skaffas via Meta for Developers, samt ett Instagram Business-konto)
Kompetensnivå: Medel. Du bygger ingen hel app, men du kopplar konton, klistrar in ID:n och testar en publiceringskörning på ett säkert sätt.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet steg för steg
En schemalagd eller manuell trigger startar körningen. Du kan låta den gå var 12:e timme för konsekvent publicering, eller använda den manuella triggern när du finjusterar prompts och godkännanden.
Ett tema byggs och kontrolleras för unikhet. Flödet genererar ett ämnestema och jämför det sedan mot tidigare teman med embeddings och en vektordatabas så att du undviker att upprepa dig.
AI genererar strukturerat karusellinnehåll och validerar det. En AI-agent producerar text slide för slide, hashtags och CTA:er i JSON. En parser validerar JSON:en så att trasig formatering inte eskalerar till publiceringsfel.
Google Sheets blir din källa till sanning, sedan sker publiceringen. Inläggsmetadata läggs till i Sheets, bilder genereras per slide och laddas upp via Imgur för publika URL:er, och därefter skapar Instagram Graph API-endpoints mediacontainers och publicerar karusellen.
Du kan enkelt ändra temainmatningen och promptmallarna för att matcha er tonalitet eller rotera mellan innehållspelare utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera schematriggern
Konfigurera arbetsflödet så att det körs automatiskt enligt ett tidsschema, med en valfri manuell trigger för testning.
- Öppna Timed Schedule Trigger och ställ in schemaregeln till var 12:e timme genom att konfigurera Rule → Interval med Field satt till
hoursoch Hours Interval satt till12. - Låt Manual Execution Start vara kvar för körningar vid behov under testning.
- Verifiera exekveringsflödet från Timed Schedule Trigger → Build Search Topic och från Manual Execution Start → Build Search Topic.
Steg 2: anslut Google Sheets
Lagra det genererade inläggets innehåll i ett Google-kalkylark för spårning och återanvändning.
- Öppna Append to Sheets och välj ert kalkylark genom att sätta Document ID till
[YOUR_ID]och Sheet Name tillgid=0(Página1). - Låt Operation vara satt till
append. - Bekräfta att kolumnmappningarna är satta till de angivna uttrycken, inklusive Tema som
{{ $('Build Search Topic').item.json.tema }}och fecha som{{ $('Build Search Topic').item.json.data }}. - Inloggning krävs: anslut era Google Sheets-inloggningsuppgifter.
titulo_slide, copy_principal) kommer append att misslyckas.Steg 3: sätt upp pipelinen för innehållsgenerering
Generera ett ämne, skapa AI-innehåll och tolka JSON till strukturerade fält.
- I Build Search Topic ska ni behålla den angivna JavaScript-koden som den är för att generera
temaochdata. - Öppna Content AI Orchestrator och behåll promptkonfigurationen, och säkerställ att Text förblir den definierade prompten för svar endast i JSON.
- Bekräfta anslutningarna för AI-verktygen: OpenAI Chat Engine är ansluten som språkmodell för Content AI Orchestrator, och Session Memory Buffer är ansluten som minne.
- Öppna Primary JSON Parser och behåll tolkningskoden för att konvertera AI-svaret till strukturerade fält.
Steg 4: konfigurera AI-modeller och vektorverktyg
Aktivera minne och retrieval för att förhindra duplicerat innehåll och styra agenten med historisk kontext.
- I OpenAI Chat Engine ställer ni in modellen till
gpt-4.1-mini-2025-04-14och lägger till inloggningsuppgifter. - Inloggning krävs: anslut era OpenAI-inloggningsuppgifter för OpenAI Chat Engine, OpenAI Embeddings Generator och Generate Visual Asset.
- I OpenAI Embeddings Generator låter ni Model vara satt till
text-embedding-ada-002och säkerställer att den matar både In-Memory Vector Store och Vector Store Tool. - I Session Memory Buffer ställer ni in Session Key till
{{ $json.tema }}och Context Window Length till20. - I OpenRouter Chat Engine låter ni Model vara satt till
google/gemini-2.0-flash-exp:freeoch bekräftar de befintliga inloggningsuppgifterna.
Steg 5: konfigurera bildgenerering och hosting
Skapa en visuell tillgång från AI:ns bildbeskrivning och hosta den på Imgur för publicering på Instagram.
- I Generate Visual Asset ställer ni in Model till
gpt-image-1och behåller Prompt som{{ $('Primary JSON Parser').item.json.idea_imagem }} en formato jpg. - Inloggning krävs: anslut era OpenAI-inloggningsuppgifter för Generate Visual Asset.
- I Upload Image via Imgur ställer ni in URL till
https://api.imgur.com/3/imageoch Content Type tillbinaryData. - Ställ in headern Authorization i Upload Image via Imgur till
[CONFIGURE_YOUR_TOKEN]och säkerställ att Input Data Field Name ärdata.
image_url.Steg 6: konfigurera Instagram-publicering
Skapa och publicera Instagram-inlägget med den hostade bildens URL och den genererade bildtexten.
- I Create IG Media Container ställer ni in URL till
https://graph.instagram.com/v22.0/[YOUR_ID]/mediaoch låter Method varaPOST. - Sätt image_url till
{{ $json.data.link }}och caption till{{ $('Append to Sheets').item.json.titulo_slide + "\n\n" + $('Append to Sheets').item.json.copy_principal + "\n\n" + $('Append to Sheets').item.json.cta + "\n\n" + $('Append to Sheets').item.json.hashtags }}. - Sätt query-parametern access_token till
[CONFIGURE_YOUR_TOKEN]. - I Publish Instagram Post ställer ni in URL till
https://graph.instagram.com/v22.0/[YOUR_ID]/media_publishoch mappar creation_id till{{ $json.id }}.
[YOUR_ID] och [CONFIGURE_YOUR_TOKEN] i båda Instagram-HTTP-anropen, annars kommer publiceringen att misslyckas med behörighetsfel.Steg 7: testa och aktivera ert arbetsflöde
Kör ett fullständigt test för att validera innehållsgenerering, lagring, bildhosting och Instagram-publicering.
- Klicka på Execute Workflow med Manual Execution Start för att köra ett skarpt test.
- Verifiera att Append to Sheets skapar en ny rad med fält som
titulo_slide,copy_principalochhashtags. - Bekräfta att Upload Image via Imgur returnerar en giltig
data.linkoch att Create IG Media Container returnerar ett media-id. - Säkerställ att Publish Instagram Post slutförs utan fel och att inlägget visas på Instagram.
- När allt är bekräftat, aktivera arbetsflödet och låt Timed Schedule Trigger köra var 12:e timme.
Se upp med
- Google Sheets-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något skapar fel, börja med att kontrollera n8n:s Credentials-panel och att det anslutna Google-kontot har åtkomst till kalkylarket.
- 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 er tonalitet tidigt, annars kommer du att sitta och redigera resultaten för alltid.
Vanliga frågor
Räkna med ungefär en timme om dina Meta- och Google-konton är redo.
Ja, men du vill ha någon som är bekväm med att koppla API:er och testa på ett säkert sätt. Ingen “riktig kodning”, men du behöver följa uppsättningsstegen noggrant.
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 in kostnader för OpenAI API, som vanligtvis är några cent per karusell beroende på antal bilder.
Två alternativ: n8n Cloud (hanterat, enklast uppsättning) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsade exekveringar men kräver grundläggande serverhantering.
Du kan byta ut logiken för temabyggaren och promptmallarna för att matcha dina innehållspelare och din tonalitet. Justera till exempel koden i “Build Search Topic” så att den inkluderar produktkategori eller erbjudandetyp, och uppdatera sedan AI-agentens prompt så att varje slide följer din varumärkesstruktur (hook, bevis, CTA). Om du inte behöver Imgur kan du ersätta HTTP-requesten för bildhosting med din CDN-endpoint. Och om du vill ha striktare unikhet kan du justera likhetströskeln för embeddings så att upprepningar avvisas mer aggressivt.
Oftast beror det på utgången OAuth eller att Google-kontot tappat åtkomst till kalkylarket. Återanslut Google Sheets-inloggningen i n8n, bekräfta att kalkylarkets ID är korrekt och säkerställ att arket inte ligger i en delad drive med begränsade behörigheter. Om flödet skriver ibland och misslyckas ibland, kontrollera Google API-kvoter och hur många rader du lägger till per körning.
Den skalar bra för de flesta mindre team: några karuseller per dag är normalt så länge du håller dig inom OpenAI- och Instagram API-gränserna.
För AI-tunga karuseller är n8n oftast bättre eftersom du kan validera och transformera JSON, grena på “likhets”-kontroller och self-hosta om du inte vill ha exekveringsgränser. Zapier och Make kan fortfarande hantera delar av detta, men semantiskt minne, publicering med flera steg via mediacontainers och felhantering blir snabbt klumpigt. Dessutom uppskattar du att inloggningar hanteras i n8n istället för att vara utspridda över flera zaps och scenarier. Om ditt flöde bara är “en prompt, ett inlägg” kan Zapier eller Make gå snabbare. Prata med en automationsexpert om du är osäker på vad som passar.
När det här väl rullar slutar karusellproduktion att vara en återkommande brandkårsutryckning. Flödet tar hand om de repeterbara delarna så att du kan lägga tiden på idéer som faktiskt gör skillnad.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.