Din process för Instagram-karuseller ser förmodligen ”organiserad” ut på ytan. Sedan kommer publiceringsdagen. Någon hittar inte rätt mapp, bildtexten ligger i fel dokument, en bild saknas och du laddar upp allt igen som om det vore 2016.
Det är här en Sheets Instagram carousel-automation snabbt börjar betala sig. Social media managers känner det först, helt ärligt, men marknadsförare som driver kampanjer och små team som hanterar innehåll mellan kunduppdrag dras in i samma kaos.
Det här arbetsflödet gör ett Google Sheet till din publiceringskö för karuseller. Du får se hur det hämtar assets från Google Drive, laddar upp dem till Cloudinary, publicerar karusellen via Instagram Graph API och markerar raden som klar.
Så fungerar automationen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: Från Google Sheets till Instagram, karuseller postar sig
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Get image list from a Google..", pos: "b", h: 48 }
n1@{ icon: "mdi:database", form: "rounded", label: "Get Execution for Carousel", pos: "b", h: 48 }
n2@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
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/>Upload images to Cloudinary"]
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Setup for Instagram (access ..", pos: "b", h: 48 }
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/>Download Image from Google D.."]
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/>Create Media Container (Image)"]
n7@{ icon: "mdi:cog", form: "rounded", label: "Combine Instagram media cont..", 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/>Create Media Container (Caro.."]
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/>Publish Instagram Carousel"]
n10@{ icon: "mdi:database", form: "rounded", label: "Update Execute to 'Processed'", pos: "b", h: 48 }
n2 --> n1
n1 --> n0
n9 --> n10
n3 --> n4
n6 --> n7
n8 --> n9
n7 --> n8
n0 --> n5
n5 --> n3
n4 --> 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 n2 trigger
class n1,n10 database
class n3,n5,n6,n8,n9 api
classDef customIcon fill:none,stroke:none
class n3,n5,n6,n8,n9 customIcon
Problemet: karusellplanering fallerar när allt görs manuellt
Manuell publicering av karuseller är bedrägligt dyrt. Det handlar inte bara om ”ladda upp bilder + klistra in bildtext”. Det är skattjakten i Drive-mappar, dubbelkollen att bildordningen är rätt, sista minuten-ändringar av storlek och den där nervösa känslan av att du ska trycka på Publicera med fel assets. När du kör flera kampanjer samtidigt multipliceras misstagen. En missad slide kan sänka en produktgenomgång, och en fel bildtext kan skapa en supporthärva du inte behövde.
Friktionen bygger på. En liten fördröjning här, en liten korrigering där, och plötsligt känns publicering som en uppgift du måste frigöra hela schemat för.
- Du lägger ofta runt 30 minuter per karusell bara på att samla in assets och bekräfta ordningen.
- Team glömmer att uppdatera ”status” någonstans, så inlägg dupliceras eller hoppas över.
- När bildtexter finns på ett ställe och bilder på ett annat publicerar någon alltid fel version.
- Att skala till flera konton blir ett kalkylark av kalkylark, inte ett system.
Lösningen: planera i Google Sheets, publicera till Instagram automatiskt
Det här n8n-arbetsflödet bevakar din innehållskö åt dig. Var 5:e minut kontrollerar det ett Google Sheet efter karusellinlägg markerade ”ToDo”. När det hittar ett, hämtar det bilderna från en Google Drive-mapp du har angivit, hämtar varje bildfil och skickar assets till Cloudinary så att de hostas på ett sätt som Instagram kan läsa in pålitligt. Sedan använder det Instagram Graph API för att skapa enskilda mediaobjekt, samlar deras ID:n, bygger en karusellcontainer och publicerar inlägget med din bildtext. Till sist uppdaterar det den ursprungliga raden i Google Sheet så att samma inlägg inte körs igen.
Enkelt uttryckt: Google Sheets blir din planerare, Google Drive förblir ditt assetbibliotek och n8n sköter uppladdning och publicering. Du behåller kontrollen över vad som publiceras, men du slipper det repetitiva grovjobbet.
Det du får: automation vs. resultat
| Vad arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du publicerar 5 karuseller i veckan. Manuellt kanske du lägger runt 30 minuter per inlägg på att hitta Drive-mappen, ladda upp slides, dubbelkolla ordningen och klistra in bildtexter, alltså cirka 2,5 timmar per vecka. Med det här flödet blir ”jobbet” att uppdatera en rad i Google Sheet och lägga bilder i en Drive-mapp, kanske 5 minuter per inlägg. n8n sköter resten i bakgrunden vid nästa 5-minuterskontroll, vilket gör att du vinner tillbaka runt 2 timmar de flesta veckor.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för din karusellkö och status.
- Google Drive för att lagra karusellbilder per inlägg.
- Cloudinary API-inloggningsuppgifter (hämta dem i din Cloudinary-dashboard).
- Instagram Graph API access_token + ig_business_id (hämta dem i Metas utvecklarverktyg för ditt företagskonto).
Kunskapsnivå: Mellan. Du kopplar konton, klistrar in API-uppgifter och mappar några fält i n8n.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En schemalagd kontroll körs automatiskt. Flödet startar med en schematrigger (var 5:e minut som standard) så att du inte behöver klicka på något eller köra det manuellt.
Ditt Google Sheet fungerar som en publiceringskö. n8n hämtar rader från Google Sheets och letar efter karusellinlägg markerade ”ToDo”. Om inget är klart publiceras inget. Enkelt.
Assets hämtas från Google Drive och förbereds för Instagram. Det listar bilderna i din Drive-mapp, hämtar varje fil, laddar upp till Cloudinary och skapar sedan Instagram-mediaobjekt via HTTP-anrop till Graph API. Dessa media-ID:n samlas så att Instagram kan behandla dem som en karusell.
Karusellen publiceras och kön uppdaterar sig själv. n8n skapar karusellcontainern, publicerar inlägget med din bildtext och markerar sedan raden i Google Sheets som behandlad så att den inte upprepas.
Du kan enkelt ändra schemaintervallet så att det matchar din publiceringstakt utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera schematriggern
Det här arbetsflödet körs enligt ett tidsstyrt schema och börjar med att kontrollera ett Google Sheet efter köade karusellinlägg.
- Lägg till och öppna Scheduled Run Trigger.
- Ställ in Rule → Interval → Field på
minutes. - Koppla Scheduled Run Trigger till Retrieve Carousel Queue.
Steg 2: anslut Google Sheets
Dessa noder läser och uppdaterar karusellkön i Google Sheets.
- Öppna Retrieve Carousel Queue och ställ in Document till
[YOUR_ID]och Sheet till[YOUR_ID]. - I Retrieve Carousel Queue, bekräfta att filtren är satta till
Status = ToDoochType = Carousel. - Autentisering krävs: Anslut era googleSheetsOAuth2Api-uppgifter till Retrieve Carousel Queue.
- Öppna Mark Execution Processed och verifiera att Operation är
updatemed Status satt tillProcessedoch ExecuteId satt till{{ $('Retrieve Carousel Queue').item.json.ExecuteId }}. - Autentisering krävs: Anslut era googleSheetsOAuth2Api-uppgifter till Mark Execution Processed.
Steg 3: anslut Google Drive och hämta bildfiler
I det här steget läses målmappen från kön och varje bild laddas ned för uppladdning.
- Öppna List Drive Images och ställ in Filter → Folder ID till
{{ $('Retrieve Carousel Queue').item.json.Folder }}. - Säkerställ att Return All är aktiverat och att Fields inkluderar
id,name,thumbnailLinkochwebViewLink. - Autentisering krävs: Anslut era googleDriveOAuth2Api-uppgifter till List Drive Images.
- Öppna Fetch Drive Image File och ställ in URL till
=https://drive.google.com/uc?export=download&id={{ $json.id }}med Response Format satt tillfile.
Steg 4: konfigurera bilduppladdning och skapande av Instagram-media
Det här arbetsflödet använder flera HTTP-begäranden för att ladda upp bilder, förbereda autentisering och skapa Instagram-mediaobjekt.
- Öppna Send Images to Cloudinary och ställ in URL till
https://api.cloudinary.com/v1_1/[YOUR_ID]/image/upload. - I Send Images to Cloudinary, behåll Method som
POST, Content Type sommultipart-form-dataoch bekräfta att body-parametrarna inkluderarfile(binary) ochupload_presetsatt till[YOUR_ID]. - Öppna Prepare Instagram Credentials och ställ in access_token till
[CONFIGURE_YOUR_TOKEN]och ig_user_id till[YOUR_ID]. - I Prepare Instagram Credentials, ställ in image_url till
{{ $json.url }}och caption till{{ $('Retrieve Carousel Queue').item.json['Expected content'] }}. - Öppna Generate IG Media Item och ställ in URL till
=https://graph.instagram.com/v23.0/{{ $json.ig_user_id }}/mediamed MethodPOSToch Content Typeform-urlencoded. - I Generate IG Media Item, ställ in body-parametrarna
image_url,captionochaccess_tokentill{{ $json.image_url }},{{ $json.caption }}respektive{{ $json.access_token }}.
[CONFIGURE_YOUR_TOKEN] och [YOUR_ID] med giltiga Instagram Graph API-uppgifter.Steg 5: bygg och publicera karusellen
I det här steget aggregeras bild-ID:n, karusellcontainern skapas och inlägget publiceras.
- Öppna Aggregate IG Media IDs och bekräfta att Fields to Aggregate innehåller
body.idmed Merge Lists aktiverat. - Öppna Build Carousel Container och ställ in URL till
=https://graph.instagram.com/v23.0/{{ $('Prepare Instagram Credentials').first().json.ig_user_id }}/media. - I Build Carousel Container, ställ in body-parametrarna: caption till
{{ $('Retrieve Carousel Queue').item.json['Expected content'] }}, media_type till=CAROUSEL, children till{{ $json.id }}och access_token till{{ $('Prepare Instagram Credentials').first().json.access_token }}. - Öppna Publish Carousel Post och ställ in URL till
=https://graph.instagram.com/v23.0/{{ $('Prepare Instagram Credentials').first().json.ig_user_id }}/media_publish. - I Publish Carousel Post, ställ in body-parametrarna creation_id till
{{ $json.body.id }}och access_token till{{ $('Prepare Instagram Credentials').first().json.access_token }}. - Koppla Publish Carousel Post till Mark Execution Processed för att uppdatera kön.
Steg 6: testa och aktivera ert arbetsflöde
Verifiera att varje steg fungerar från start till mål innan ni aktiverar schemalagda körningar.
- Klicka på Execute Workflow för att köra ett manuellt test som startar vid Scheduled Run Trigger.
- Bekräfta att Retrieve Carousel Queue returnerar minst en rad med
Status = ToDoochType = Carousel. - Kontrollera att Send Images to Cloudinary returnerar bild-URL:er och att Generate IG Media Item output:ar ett
body.id. - Verifiera att Publish Carousel Post returnerar ett lyckat svar och att Mark Execution Processed uppdaterar Status till
Processed. - Växla arbetsflödet till Active för att aktivera schemalagd publicering.
Vanliga fallgropar
- Google Sheets-inloggningsuppgifter kan löpa ut eller kräva specifika behörigheter. Om det uppstår problem, kontrollera avsnittet Credentials i n8n och bekräfta att det anslutna Google-kontot fortfarande har åtkomst till sheetet.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Cloudinary- och Instagram Graph API-anrop kan misslyckas utan tydliga fel om en preset, mappinställning eller token-scope är fel. Om publiceringen stannar av, kontrollera svaren i dina HTTP Request-noder och bekräfta att din access_token fortfarande har rätt behörigheter.
Vanliga frågor
Cirka 45 minuter om du redan har API-åtkomst.
Nej. Du kopplar konton, klistrar in inloggningsuppgifter och mappar några fält 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 volymer. Du behöver också räkna in Cloudinary-användning och eventuella Meta API-relaterade kostnader för din setup.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och hanterar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serveradministration.
Ja, och det är en vanlig justering. Uppdatera filterlogiken direkt efter ”Retrieve Carousel Queue” så att den letar efter dina föredragna statusvärden, och justera sedan ”Mark Execution Processed” så att den skriver tillbaka det läge du vill ha (som ”Posted” plus en tidsstämpel). Vissa team lägger också till extra kolumner för kampanjnamn, designer eller länk till kundgodkännande. Om du hanterar flera konton kan du lägga till en kolumn ”Account” och routa till olika credentials innan Graph API-anropen.
Oftast beror det på att Google-autentisering har löpt ut eller att det anslutna kontot har tappat åtkomst till sheetet. Anslut Google Sheets-credential igen i n8n, öppna sedan sheetet och bekräfta att samma Google-användare kan visa och redigera det. Om det fortfarande misslyckas, kontrollera sheet-ID:t och kalkylbladets fliknamn som du mappade i noden, eftersom en omdöpt flik bryter uppslag oftare än man tror.
I praktiken kan den hantera dussintals köade inlägg per dag så länge dina API-gränser och serverresurser räcker.
Ofta, ja, eftersom karusellpublicering via Instagram Graph API är mer än en enkel trigger och en åtgärd i två steg. n8n gör det enklare att hantera loopar (flera bilder), aggregering (samla media-ID:n) och villkorslogik utan att betala extra för varje gren. Det ger dig också möjlighet till self-hosting, vilket kan vara avgörande när du börjar publicera ofta. Zapier eller Make kan fortfarande fungera för lättare schemaläggning, men karuseller tenderar att bli pilliga. Prata med en automationsexpert om du vill ha en snabb rekommendation baserat på din volym.
När detta väl rullar blir ditt Google Sheet den lugna mittpunkten i publiceringsprocessen. Arbetsflödet hanterar de repetitiva delarna, så att du kan lägga fokus på innehållet.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.