Din Reels-plan brukar börja starkt, och sedan kommer verkligheten ikapp. Ämnen upprepas, godkännanden begravs i DM:ar och “innehållskalendern” blir ett halvt uppdaterat kalkylark som ingen litar på.
Den här Slack Sheets Reels-automationen träffar social media managers först, men grundare och små byråteam känner också av friktionen. Du får en tydlig godkännandeloop i Slack plus en Google Sheets-logg som stoppar återkommande ämnen, så att du kan publicera jämnt utan att behöva jaga hela tiden.
Nedan ser du exakt hur flödet körs varje morgon, hur det förhindrar dubbletter och hur det ser ut när en Reel går från AI-utkast till godkänt inlägg på Instagram.
Så fungerar den här automatiseringen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: Slack + Google Sheets för jämna Instagram Reels
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n1["<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/slack.svg' width='40' height='40' /></div><br/>Slack Approval Request"]
n2["<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/facebook.svg' width='40' height='40' /></div><br/>Instagram Upload"]
n3@{ icon: "mdi:cog", form: "rounded", label: "Wait (1 min)", 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/facebook.svg' width='40' height='40' /></div><br/>Instagram Publish"]
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/slack.svg' width='40' height='40' /></div><br/>Slack Notification"]
n6@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "Generate Content Plan", 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/>Generate Video"]
n9@{ icon: "mdi:cog", form: "rounded", label: "Wait for Rendering", 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/code.svg' width='40' height='40' /></div><br/>Parse LLM Output"]
n11@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Approval", pos: "b", h: 48 }
n12@{ icon: "mdi:database", form: "rounded", label: "Get Past Topics", pos: "b", h: 48 }
n13@{ icon: "mdi:database", form: "rounded", label: "Save New Topic", pos: "b", h: 48 }
n3 --> n4
n11 --> n13
n11 --> n7
n8 --> n9
n13 --> n8
n12 --> n7
n2 --> n3
n10 --> n1
n0 --> n12
n4 --> n5
n6 -.-> n7
n9 --> n2
n7 --> n10
n1 --> n11
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 n7 ai
class n6 aiModel
class n11 decision
class n12,n13 database
class n2,n4,n8 api
class n10 code
classDef customIcon fill:none,stroke:none
class n1,n2,n4,n5,n8,n10 customIcon
Problemet: Reels-tempo dör i godkännandekaoset
Att publicera Reels konsekvent är sällan ett “kreativitetsproblem”. Det är processen runt omkring. Någon skissar en idé, någon annan vill ha justeringar, den “slutliga” versionen ligger i en Slack-tråd och publiceringen skjuts upp tills du missar ditt fönster. Och nästa vecka råkar du ta upp samma ämne igen eftersom det inte finns någon pålitlig historik över vad som redan gått ut. Den mentala belastningen är ärligt talat det värsta. Du håller koll på godkännanden, ämnen, material och deadlines i huvudet samtidigt som Instagram hela tiden vill ha mer.
Det byggs upp snabbt. Här är var det brister i det dagliga arbetet.
- Reels-idéer återanvänds eftersom din lista över “tidigare ämnen” är ofullständig eller utspridd i anteckningar och chatt.
- Godkännanden blir liggande eftersom ingen vet vem som har nästa steg, så inlägg försenas en dag (eller tre).
- Manuell uppladdning och textarbete tar cirka en timme som du egentligen tänkte lägga på engagemang.
- När ett inlägg väl går live är loggningen det sista någon vill göra, vilket garanterar framtida förvirring.
Lösningen: daglig AI-planering för Reels, Slack-godkännande och Sheets-loggning
Det här flödet körs varje dag kl. 09:00 och flyttar en Reel från “idé” till “publicerad” med en tydlig granskningspunkt. Först tittar det i din Google Sheets-logg över tidigare ämnen (så att du inte upprepar dig). Sedan genererar OpenAI en ny quiz-inspirerad innehållsplan, som struktureras till korrekt formaterade fält som fråga, svar och titel. Därefter renderar Creatomate en faktisk Reel med din mall, där AI-text och de tillgångar mallen förväntar sig sätts in. Till sist blir Slack kontrollrummet: en förhandsvisning postas för granskning, ett godkännande kontrolleras och endast godkända Reels laddas upp och publiceras på Instagram via Facebook Graph API. När den är live sparar flödet tillbaka det nya ämnet i Sheets och postar en bekräftelse i Slack.
Flödet startar med en schemalagd trigger och en snabb “undvik dubbletter”-kontroll i Google Sheets. Efter att AI:n skapat utkastet skickas renderingsbegäran till Creatomate och flödet väntar på den färdiga filen. Slack hanterar det mänskliga beslutet, och sedan sker Instagram-publicering och loggning automatiskt.
Vad du får: automation vs. resultat
| Det här automatiserar flödet | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du publicerar 5 Reels i veckan. Manuellt tar det oftast cirka 20 minuter att ta fram ett ämne, 30 minuter att göra en enkel klippning (även med mallar), 10 minuter att ladda upp och skriva texten, plus ytterligare 10 minuter för att jaga ett godkännande. Det blir ungefär 70 minuter per Reel, eller cirka 6 timmar i veckan. Med det här flödet är ditt “arbete” att granska ett Slack-meddelande och godkänna, vilket ligger närmare 5 minuter per Reel (och resten kör medan du gör annat). Det är nästan en hel förmiddag tillbaka varje vecka.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för tidigare ämnen och publiceringslogg.
- Slack för granskning och godkännanden.
- OpenAI API-nyckel (hämta den i OpenAI-dashboarden).
- Creatomate för mallbaserad videorendering.
- Facebook Graph API-åtkomst (via en Meta-app) för Instagram-publicering.
Svårighetsnivå: Medel. Du kopplar konton, klistrar in några ID:n (Sheet, Slack-kanal, mall) och testar godkännande-/publiceringsloopen en gång.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett dagligt schema drar igång det. Flödet körs varje morgon kl. 09:00, vilket gör att din innehållspipeline fortsätter även när kalendern blir kaotisk.
Google Sheets fungerar som minne. Det hämtar dina tidigare frågor, svar, titlar och datum och använder listan för att styra nästa innehållsplan bort från upprepningar.
OpenAI skapar innehållsplanen. En quiz-inspirerad idé genereras och ett kort formateringssteg gör om resultatet till strukturerade fält som nedströmsverktyg kan lita på (i stället för röriga stycken).
Creatomate renderar, Slack godkänner, Instagram publicerar. n8n skickar en renderingsbegäran till Creatomate, väntar på den färdiga videon, postar den i Slack för granskning och kontrollerar godkännandebeslutet. Om den godkänns laddar flödet upp mediet och publicerar Reelen via Facebook Graph API, loggar sedan ämnet tillbaka till Google Sheets och postar en “publicerad”-notis i Slack.
Du kan enkelt ändra innehållsformatet (quiz, listartikel, mytkrossare) så att det matchar din tonalitet. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera schematriggern
Det här arbetsflödet startar enligt ett tidsstyrt schema för att automatiskt generera och publicera en ny Reel.
- Lägg till och öppna Scheduled Automation Start.
- Ställ in schemaregelns intervall på
hours(som konfigurerat i noden). - Lämna Flowpast Branding som en visuell referensnotering (ingen konfiguration behövs).
Steg 2: anslut Google Sheets för ämnesminne
Google Sheets lagrar tidigare ämnen och sparar det nyligen godkända ämnet för att förhindra duplicering.
- Öppna Retrieve Past Topics och ställ in Document ID till
[YOUR_ID]och Sheet Name till[YOUR_ID]. - Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter till Retrieve Past Topics.
- Öppna Store New Topic och ställ in Operation till
appendOrUpdate. - Ställ in Document ID till
[YOUR_ID]och Sheet Name till[YOUR_ID]i Store New Topic. - Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter till Store New Topic.
Tips: Håll sheetens kolumn Question konsekvent, eftersom Draft Content Plan använder {{ $('Retrieve Past Topics').all().map(item => item.json.Question).join(', ') }} för att undvika dubbletter.
Steg 3: konfigurera AI-generering av innehåll och parsning
AI:n genererar en quiz-liknande innehållsplan, som sedan parsas till JSON för mallbaserad videorendering.
- Öppna OpenAI Chat Engine och ställ in modellen till
gpt-4o-mini. - Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter till OpenAI Chat Engine.
- Öppna Draft Content Plan och behåll hela prompttexten som angiven, inklusive det inbäddade uttrycket
{{ $('Retrieve Past Topics').all().map(item => item.json.Question).join(', ') }}. - Bekräfta att Draft Content Plan använder OpenAI Chat Engine som språkmodell (inloggningsuppgifterna hör till OpenAI Chat Engine, inte den här noden).
- Öppna Extract AI JSON och behåll den angivna JavaScript-koden för att parsa rå JSON från AI-utdata.
⚠️ Vanlig fallgrop: Om AI:n skriver ut markdown-kodblock förlitar sig Extract AI JSON på sin rensningslogik. Ta inte bort regex-rensningen om ni inte justerar prompten så att den garanterar ren JSON-utdata.
Steg 4: konfigurera Slack-godkännande och villkorsstyrd routing
Slack samlar in godkännande innan Reelen renderas och publiceras.
- Öppna Slack Approval Prompt och ställ in Operation till
sendAndWait. - Ställ in Channel ID till
[YOUR_ID]och behåll meddelandemallen med uttryck som{{ $json['Question.text'] }}och{{ $json['Image-R6B.source'] }}. - Inloggningsuppgifter krävs: Anslut era slackOAuth2Api-inloggningsuppgifter till Slack Approval Prompt.
- Öppna Approval Decision och behåll villkoret
{{ $json.data.approved }}inställt påtrueför godkännande. - Bekräfta routingen: Slack Approval Prompt → Approval Decision → Store New Topic (godkänd) och att det alternativa utdataflödet loopar tillbaka till Draft Content Plan för att generera på nytt.
Tips: Det alternativa utdataflödet från Approval Decision är användbart för att automatiskt generera ett nytt ämne om det första blir underkänt.
Steg 5: konfigurera rendering, uppladdning och publicering
Dessa noder renderar videon, laddar upp den som en Reel och publicerar den efter en kort väntan.
- Öppna Render Video Request och ställ in URL till
https://api.creatomate.com/v2/rendersoch Method tillPOST. - Behåll JSON Body som det angivna uttrycket, inklusive värden som
"template_id": "YOUR_TEMPLATE_ID"och fält mappade från Extract AI JSON. - Inloggningsuppgifter krävs: Anslut era httpHeaderAuth-inloggningsuppgifter till Render Video Request.
- Öppna Render Wait Timer och Pause One Minute, och behåll Unit inställd på
minutes. - Öppna Instagram Media Upload och ställ in Node till
[YOUR_ID]med Graph API Versionv18.0. - I query-parametrarna för Instagram Media Upload ställer ni in media_type till
REELS, video_url till{{ $json.url }}och caption till{{ $('Extract AI JSON').item.json['Question.text'] }}plus hashtags. - Inloggningsuppgifter krävs: Anslut era facebookGraphApi-inloggningsuppgifter till Instagram Media Upload och Publish Reel Media.
- Öppna Publish Reel Media och säkerställ att edge är
media_publishmed creation_id inställt till{{ $json.id }}. - Öppna Slack Publish Alert, ställ in Channel ID till
[YOUR_ID]och behåll meddelandemallen som refererar till{{ $('Render Video Request').item.json.url }}och{{ $('Render Video Request').item.json.snapshot_url }}. - Inloggningsuppgifter krävs: Anslut era slackOAuth2Api-inloggningsuppgifter till Slack Publish Alert.
Steg 6: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att verifiera hela flödet från start till mål innan ni slår på schemalagd publicering.
- Klicka på Execute Workflow och verifiera att Scheduled Automation Start triggar Retrieve Past Topics.
- Bekräfta att Draft Content Plan returnerar giltig JSON och att Extract AI JSON parsar den utan fel.
- Godkänn Slack-meddelandet från Slack Approval Prompt och verifiera att Approval Decision routar till Store New Topic.
- Kontrollera att Render Video Request returnerar en render-URL och att Instagram Media Upload och Publish Reel Media slutförs utan problem.
- Verifiera att Slack Publish Alert postar det slutliga meddelandet med video- och snapshot-URL:er.
- När allt fungerar, växla arbetsflödet till Active för att aktivera schemalagd publicering.
Vanliga fallgropar
- Inloggningar för Google Sheets kan löpa ut eller så kan arket flyttas. Om ämnen slutar loggas, kontrollera n8n-inloggningen och bekräfta Sheet-ID:t i “Retrieve Past Topics” och “Store New Topic” först.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder misslyckas på grund av tomma svar.
- Slack-godkännanden kan misslyckas utan att det märks om boten inte finns i kanalen eller saknar rättighet att posta. Verifiera kanal-ID:t som används i “Slack Approval Prompt” och bekräfta att appen har åtkomst.
- Publicering via Facebook Graph API är känslig för behörigheter och kopplade konton. Om “Instagram Media Upload” misslyckas, kontrollera behörigheterna i din Meta-app, kopplingen mellan sida och IG samt token-giltigheten i Graph API-setupen.
Vanliga frågor
Cirka en timme om du redan har dina konton och din mall redo.
Nej. Du kommer främst att kopiera ID:n (Sheet, kanal, mall) och koppla inloggningar 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 med OpenAI-användning samt Creatomate-kostnader för rendering, som beror på hur många videor du genererar.
Två alternativ: n8n Cloud (hanterad, 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 serverhantering.
Ja, och det bör du. De flesta team byter “quiz”-prompten i OpenAI-steget och justerar de strukturerade fälten som skapas av kodsteget “Extract AI JSON”. Vanliga anpassningar är att lägga till en starkare hook, lägga in on-screen-texter, ändra CTA-text eller generera flera utkast och bara skicka det bästa till Slack för godkännande.
Oftast är Slack-appen inte med i kanalen, eller så har token tappat rättighet att posta. Återanslut Slack-inloggningen i n8n, bekräfta kanal-ID:t i noden för Slack-godkännande och säkerställ att inställningarna i din workspace tillåter att boten skriver meddelanden.
På n8n Cloud Starter kan du köra tillräckligt många körningar för ett typiskt mindre varumärke som postar dagligen. Om du self-hostar finns ingen körningsgräns från n8n; dina faktiska begränsningar blir Creatomates renderkapacitet och Meta API:ets rate limits när du försöker publicera i bulk.
Ofta, ja, eftersom det här flödet kräver väntelägen, förgrenad godkännandelogik och några “limsteg” som blir dyra eller krångliga i Zapier. n8n låter dig också self-hosta, så du betalar inte mer bara för att du postade mer den här månaden. Nackdelen är setupen: du lägger lite mer tid på att koppla Meta-delarna för publicering. Om du bara behöver en tvåstegs-zap för “posta den här filen” kan Zapier gå snabbare. Prata med en automationsexpert om du vill ha en rak rekommendation för din exakta volym och ditt flöde.
När det här är live slutar din Reels-process att vara ett dagligt kaosrace. Flödet tar hand om det repetitiva, och teamet kan fokusera på att förbättra det kreativa som faktiskt driver resultat.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.