Din innehålls-”process” ser oftast ut så här: någon snappar upp en trend, någon annan halvskriver ett utkast, godkännanden sker i DM:ar och slutversionen försvinner i ett dokument som ingen hittar senare.
Slack Sheets approval-automatisering träffar sociala medier-ansvariga först (för pressen att publicera dagligen är på riktigt). Men byråansvariga och marknadsförare med brett ansvar känner också av det när kvalitetskontrollen beror på vem som råkar vara online.
Det här arbetsflödet gör om RSS-trender till tre kanalredo utkast, skickar dem via Slack för ett enkelt beslut (godkänn/avslå) och sparar sedan det godkända innehållet i Google Sheets så att det är sökbart och redo att publicera.
Så här fungerar automatiseringen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: Slack + Google Sheets för godkända AI-utkast
flowchart LR
subgraph sg0["Every 8 Hours Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Every 8 Hours", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Workflow Configuration", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch Google Trends RSS"]
n3@{ icon: "mdi:robot", form: "rounded", label: "AI Agent: Trend Filter", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model - Filter", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser - F..", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "AI Agent: SEO Blog Writer", pos: "b", h: 48 }
n7@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model - Blog", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "AI Agent: Instagram Designer", pos: "b", h: 48 }
n9@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model - Instagram", pos: "b", h: 48 }
n10@{ icon: "mdi:robot", form: "rounded", label: "AI Agent: Script Writer", pos: "b", h: 48 }
n11@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model - Script", pos: "b", h: 48 }
n12["<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 All Content"]
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/slack.svg' width='40' height='40' /></div><br/>Send to Slack for Approval"]
n14@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n15@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", 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/code.svg' width='40' height='40' /></div><br/>Code in JavaScript"]
n17@{ icon: "mdi:database", form: "rounded", label: "Append row in sheet", pos: "b", h: 48 }
n15 --> n17
n14 --> n15
n0 --> n1
n12 --> n16
n16 --> n13
n3 --> n6
n3 --> n8
n3 --> n10
n1 --> n2
n10 --> n12
n2 --> n3
n7 -.-> n6
n6 --> n12
n4 -.-> n3
n11 -.-> n10
n13 --> n14
n8 --> n12
n9 -.-> n8
n5 -.-> n3
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 n3,n5,n6,n8,n10 ai
class n4,n7,n9,n11 aiModel
class n15 decision
class n17 database
class n2 api
class n16 code
classDef customIcon fill:none,stroke:none
class n2,n12,n13,n16 customIcon
Därför är det här viktigt: dagligt innehåll fastnar i ”nästan klart”
De flesta team har inte problem med att få fram idéer. De har problem med att ta idéerna genom den röriga mitten: välja vad som spelar roll, skriva i rätt format, få ett snabbt godkännande och hålla allt organiserat efter att det är ”klart”. Trender rör sig snabbt, och tills du har klistrat in en RSS-länk i Slack, skrivit tre olika versioner och väntat på att någon ska ge tummen upp är ögonblicket borta. Ännu värre: du får utkast utspridda över trådar, Docs, Notion-sidor och någons anteckningsapp. Så förvandlas ”vi borde posta mer” till konstant stress.
Friktionen bygger på. Här är var det faller isär i verkligheten.
- Du skriver om samma idé tre gånger för blogg, Instagram och kortvideo eftersom det inte finns någon gemensam startpunkt.
- Godkännanden sker i Slack, men själva utkastet ligger någon annanstans, så folk råkar godkänna fel version.
- Bra utkast försvinner efter godkännande, vilket gör att du inte kan söka, återanvända eller granska vad som ”vann” senare.
- När du skalar till flera kunder eller varumärken tappar du konsekvens, eftersom varje kreatör improviserar sitt eget format.
Det du bygger: en AI-utkastpipeline med Slack-godkännande och lagring i Sheets
Den här automatiseringen körs enligt schema och hämtar de senaste ämnena från ett RSS-flöde (tänk Google News, Google Trends eller vilket nischat branschflöde du litar på). En AI-”redaktör” går igenom det som kom in och väljer ut de få ämnen som faktiskt är värda att skriva om, så att du inte slösar tid på brus. Utifrån den kurerade listan arbetar tre AI-skribenter parallellt: en skapar en SEO-bloggstruktur, en planerar en femslides Instagram-karusell och en skriver ett kort TikTok/Reels-manus. Sedan städar arbetsflödet upp formateringen, skickar ett enda, snyggt strukturerat meddelande till Slack och väntar på ditt beslut. När du godkänner läggs innehållet automatiskt till i Google Sheets så att du får ett felfritt, sökbart bibliotek med publiceringsklara utkast.
Arbetsflödet startar med schemalagd trendbevakning via RSS. Därifrån filtrerar OpenAI (gpt-4o-mini) på relevans och skapar tre plattformsspecifika utkast samtidigt. Till sist fångar Slack upp godkännandet och Google Sheets blir din ”single source of truth” för vad som har granskats.
Det du bygger
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du publicerar 5 innehållsidéer i veckan i tre format (bloggoldisposition, karusellplan och kort videomanus). Manuellt är det vanligt att lägga cirka 30 minuter på att hitta ämnen, sedan ungefär 45 minuter på att skriva de tre versionerna, plus ytterligare 10 minuter på att jaga godkännande. Det blir runt 7 timmar i veckan. Med det här arbetsflödet körs ämneshämtning och första utkast automatiskt; du granskar mest Slack-meddelandet och godkänner vinnare, vilket ofta är runt 10 minuter per idé. Du får tillbaka cirka 5 timmar i veckan, och de godkända utkasten hamnar i Google Sheets redo att schemaläggas.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Självhostningsalternativ om du föredrar det (Hostinger fungerar bra)
- Slack för godkännandemeddelanden och knappar
- Google Sheets för att lagra godkända utkast centralt
- OpenAI API-nyckel (hämta den i OpenAI API-dashboarden)
Kunskapsnivå: Mellan. Du kopplar autentiseringar och sätter upp Slack Interactivity en gång, sedan handlar det mest om att justera prompts och dina kolumner i arket.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En schemalagd trigger körs varje dag. n8n startar allt vid den tid du väljer, så att du vaknar till nya utkastalternativ i stället för en tom sida.
Trender hämtas från RSS och filtreras sedan av en AI-”redaktör”. Arbetsflödet använder en HTTP-förfrågan för att hämta flödet, och därefter väljer en AI Agent bara de ämnen som matchar din nisch och känns värda att publicera.
Tre utkast skapas parallellt. En AI Agent skriver en SEO-bloggstruktur, en annan tar fram en plan för en femslides Instagram-karusell och en tredje skapar ett kort videomanus med OpenAI:s gpt-4o-mini för kostnadseffektivitet.
Slack blir godkännandefiltret och Google Sheets blir arkivet. Ett formaterat Slack-meddelande skickas med interaktiva godkännandeknappar, arbetsflödet väntar och en If-gren avgör vad som händer härnäst. Godkänn, och innehållet läggs till i ditt ark; avslå, och inget sparas.
Du kan enkelt byta RSS-källa så att den matchar din bransch och justera AI-prompts så att de matchar er tonalitet. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den schemalagda trend-triggern
Ställ in arbetsflödet så att det körs enligt ett återkommande schema, så att nytt trendinnehåll genereras automatiskt.
- Lägg till och öppna Scheduled Trend Trigger.
- Ställ in schemaregeln så att den körs var 8:e timme (fält: hours, intervall:
8). - Koppla Scheduled Trend Trigger till Set Workflow Params.
Steg 2: Anslut trendflödets källa
Definiera RSS-källan och hämta trenddata till arbetsflödet.
- Öppna Set Workflow Params och ställ in trendsRssUrl till
https://trends.google.com/trends/trendingsearches/daily/rss?geo=JP. - Ställ in slackChannel till
[YOUR_ID]i Set Workflow Params. - Öppna Retrieve Trends Feed och ställ in URL till
=https://news.google.com/rss?hl=ja&gl=JP&ceid=JP:ja. - Koppla Set Workflow Params → Retrieve Trends Feed → AI Trend Selector.
{{ $json.trendsRssUrl }}.Steg 3: Konfigurera AI-baserat trendval och parsning
Använd en AI-agent för att välja ett ämne från RSS-datan och parsa det till strukturerad JSON.
- Öppna AI Trend Selector och bekräfta att Text är satt till
={{ $json.data }}. - Säkerställ att AI Trend Selector har Has Output Parser aktiverat.
- Öppna Parse Filter Output och behåll Input Schema-JSON:en enligt definitionen för
selected_topic,reasonochtarget_audience. - OpenAI Chat Filter är ansluten som språkmodell för AI Trend Selector — inloggningsuppgifter krävs: anslut era
openAiApi-inloggningsuppgifter. - Parse Filter Output är en AI-verktygsundernod — lägg till inloggningsuppgifter på den överordnade OpenAI Chat Filter, inte på själva parsern.
Steg 4: Generera innehåll för flera plattformar parallellt
Använd tre AI-agenter för att skapa utkast för blogg, Instagram och videomanus samtidigt, och slå sedan ihop och rensa resultaten.
- AI Trend Selector skickar output parallellt till både AI SEO Outline Writer och AI Instagram Carousel, och även parallellt till AI Video Script Maker.
- I AI SEO Outline Writer, bekräfta att Text är
={{ $json.output.selected_topic }}. - I AI Instagram Carousel, bekräfta att Text är
=トピック:{{ $json.output.selected_topic }}\n インスタのカルーセル投稿(5枚分)の構成案を作って。. - I AI Video Script Maker, bekräfta att Text är
=トピック:{{ $json.output.selected_topic }}\n TikTok用の動画台本を作って。. - Anslut språkmodeller: OpenAI Blog Model → AI SEO Outline Writer, OpenAI Insta Model → AI Instagram Carousel och OpenAI Script Model → AI Video Script Maker. Inloggningsuppgifter krävs: anslut era
openAiApi-inloggningsuppgifter på varje OpenAI-modellnod. - Säkerställ att alla tre AI-noder kopplas in i Combine Generated Content med Number Inputs satt till
3. - Öppna Content Cleanup Script och behåll JavaScript-logiken intakt för att sanera output innan den skickas till Slack.
Steg 5: Konfigurera Slack-godkännande och lagring i Sheets
Skicka det genererade innehållet till Slack för godkännande och lagra sedan godkända poster i Google Sheets.
- Öppna Slack Approval Request och verifiera att Message Type är
block. - Bekräfta att fältet Blocks UI innehåller godkännande-URL:erna med
{{ $execution.resumeUrl }}?action=approveoch{{ $execution.resumeUrl }}?action=reject. - Inloggningsuppgifter krävs: anslut era
slackOAuth2Api-inloggningsuppgifter i Slack Approval Request. - Öppna Pause for Approval och ställ in Resume till
webhook. - Konfigurera Approval Decision att kontrollera att Left Value
={{ $json.query.action }}är lika med Right Valueapprove. - Öppna Append to Sheet och verifiera kolumnmappningarna: テスト1 →
{{ $('Content Cleanup Script').item.json.blog_content }}, テスト2 →{{ $('Content Cleanup Script').item.json.insta_content }}, テスト3 →{{ $('Content Cleanup Script').item.json.script_content }}. - Inloggningsuppgifter krävs: anslut era
googleSheetsOAuth2Api-inloggningsuppgifter i Append to Sheet.
Steg 6: Testa och aktivera ert arbetsflöde
Validera flödet från början till slut och aktivera sedan schemat för användning i produktion.
- Klicka på Execute Workflow och bekräfta att Scheduled Trend Trigger startar körningen.
- Verifiera att AI Trend Selector producerar en JSON-output med
selected_topic, och att de tre AI-innehållsnoderna sedan kör parallellt. - Kontrollera att Slack Approval Request postar ett block-meddelande och att godkännandeknapparna öppnar resume-URL:en.
- Godkänn förfrågan och bekräfta att Append to Sheet lägger till en rad i målarket.
- När allt fungerar, växla arbetsflödet till Active för att aktivera schemalagda körningar.
Tips för felsökning
- Slack Interactivity misslyckas ofta för att Request URL är fel eller för att appen saknar behörigheter. Kontrollera inställningarna i din Slack-app (Interactivity & Shortcuts samt scopet chat:write) innan du ändrar något i n8n.
- Om du använder Wait-noder eller extern bearbetning kan tajmingen bli inkonsekvent. Om godkännandesteget återupptas men senare noder ser tom data, öka hanteringen för vänteläget eller bekräfta att Slack faktiskt skickar knappens payload.
- OpenAI-prompts som är för generiska ger platta utkast. Lägg in era tonregler och exempel på ”gör / gör inte” tidigt i instruktionerna till AI Agent, annars lägger du tiden på att skriva om i stället för att godkänna.
Snabba svar
Cirka en timme om din Slack-app och ditt Google Sheet redan är redo.
Nej. Du kopplar mest konton, klistrar in en RSS-URL och justerar några prompts.
Ja. n8n har ett gratis självhostat alternativ och en gratis testperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in OpenAI API-kostnader, som vanligtvis är några cent per batch av utkast med gpt-4o-mini.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärt och hanterar n8n bra. Självhosting ger obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, och det bör du. De enklaste ändringarna är att byta RSS-URL:en i ”Retrieve Trends Feed”, uppdatera instruktionerna till AI Agent (AI Trend Selector, AI SEO Outline Writer, AI Instagram Carousel, AI Video Script Maker) och justera mappningen i ”Append to Sheet” så att den matchar dina kolumner. Vissa team lägger till en ”Kund”-kolumn, ett ”Prioritet”-fält eller ett extra AI-pass för varumärkesefterlevnad innan Slack-godkännande.
Oftast är det Slack-appens konfiguration, inte n8n. Bekräfta att Interactivity är aktiverat, att Request URL pekar på din n8n Production Webhook URL och att din app är installerad i rätt workspace med behörigheten chat:write. Om det fungerade tidigare och plötsligt slutade: rotera tokens och välj om credential i noden ”Slack Approval Request”. Kontrollera även channel ID; för att posta i en privat kanal måste botten vara tillagd i den kanalen.
Om du självhostar finns ingen körningsgräns (det begränsas främst av din server och OpenAI:s rate limits). På n8n Cloud beror kapaciteten på plan, och det här arbetsflödet körs normalt en gång per schema plus eventuella omförsök. I praktiken kör de flesta små team det dagligen och granskar en handfull ämnen åt gången; att skala brukar innebära att batcha fler RSS-poster och att skärpa AI Trend Selector så att den ger färre, mer högkvalitativa val.
Ofta, ja. Det här arbetsflödet har parallell AI-generering, ett vänteläge för mänskligt godkännande och en If-gren som styr tydligt vad som sparas, vilket är där Zapier-aktiga ”linjära zaps” börjar kännas trånga. n8n ger också djupare kontroll över hur data formas (det där kodsteget för upprensning spelar större roll än många tror) och möjlighet att självhosta när användningen växer. Zapier eller Make kan fortfarande fungera bra för ett enkelt ”RSS till Slack-meddelande”-flöde, särskilt om du aldrig vill röra prompts. Om du vill ha en riktig utkastpipeline med konsekvent formatering och ett sökbart arkiv är n8n oftast ett smidigare val. Prata med en automationsexpert om du vill ha hjälp att välja.
När det här väl rullar ”gör” du inte innehåll varje dag. Du godkänner bara de bästa idéerna och låter arbetsflödet hålla allt felfritt, konsekvent och lätt att hitta.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.