Din innehållsplan är oftast “organiserad” ända fram till att skrivandet börjar. Sedan blir det flikar, halvfärdiga dokument och ett Google Sheet som ingen uppdaterar. Utkast skapas, men statusen fastnar på PLANNED, och plötsligt publicerar ni innehåll baserat på magkänsla i stället för ett system.
Den här Sheets Linear automation träffar Content Leads först, eftersom det är de som jagar uppdateringar. Men Marketing Managers och byråägare känner av det också när granskningsrundor drar ut på tiden och kalendern börjar halka. Resultatet är enkelt: ditt strategisheet förblir korrekt samtidigt som utkast skapas i Linear, redo för granskning.
Nedan ser du hur flödet fungerar, vad det automatiserar och vad du ska kontrollera när något inte synkar som du förväntar dig.
Så fungerar den här automationen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: Google Sheets + Linear: bloggutkast redo för granskning
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:wrench", form: "rounded", label: "MCP FireCrawl", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Create an issue in Linear", pos: "b", h: 48 }
n2@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n3@{ icon: "mdi:brain", form: "rounded", label: "Anthropic Chat Model", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "Anthropic Chat Model1", pos: "b", h: 48 }
n5@{ icon: "mdi:wrench", form: "rounded", label: "MCP FireCrawl1", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Blog Writer Agent", pos: "b", h: 48 }
n7@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n8@{ icon: "mdi:database", form: "rounded", label: "Append or update row in shee..", pos: "b", h: 48 }
n9@{ icon: "mdi:database", form: "rounded", label: "Get row(s) in sheet in Googl..", pos: "b", h: 48 }
n10@{ icon: "mdi:database", form: "rounded", label: "Get row(s) in sheet in Googl..", pos: "b", h: 48 }
n11@{ icon: "mdi:brain", form: "rounded", label: "Anthropic Chat Model2", pos: "b", h: 48 }
n12@{ icon: "mdi:robot", form: "rounded", label: "Researcher", pos: "b", h: 48 }
n13@{ icon: "mdi:web", form: "rounded", label: "Get many issues in Linear1", pos: "b", h: 48 }
n14@{ icon: "mdi:wrench", form: "rounded", label: "Think", pos: "b", h: 48 }
n15@{ icon: "mdi:wrench", form: "rounded", label: "Think1", pos: "b", h: 48 }
n16@{ icon: "mdi:robot", form: "rounded", label: "Blog Status Manager Agent", pos: "b", h: 48 }
n17@{ icon: "mdi:play-circle", form: "rounded", label: "When chat message received", pos: "b", h: 48 }
n14 -.-> n12
n15 -.-> n16
n12 --> n6
n0 -.-> n6
n5 -.-> n12
n7 --> n16
n2 -.-> n6
n3 -.-> n6
n4 -.-> n16
n11 -.-> n12
n16 --> n12
n1 -.-> n6
n13 -.-> n16
n17 --> n12
n8 -.-> n16
n10 -.-> n16
n9 -.-> n16
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 n7,n17 trigger
class n6,n12,n16 ai
class n2,n3,n4,n11 aiModel
class n0,n5,n14,n15 ai
class n8,n9,n10 database
class n13 api
Varför det här spelar roll: din bloggplan blir snabbt inaktuell
Ett Google Sheet är ett utmärkt ställe att planera ämnen. Det är ett uselt ställe att hantera verkligheten. I samma stund som en skribent börjar researcha blir ert “enkla” flöde utspritt: en brief på ett ställe, utkasttext på ett annat och en task-tracker som kanske (eller kanske inte) speglar det som faktiskt skrivits. Du tappar tid på statusuppdateringar och du tappar förtroende för planen eftersom den alltid ligger efter. Det värsta: du märker det först på veckomötet om innehåll, när alla försöker minnas vad som hände.
Det växer snabbt. Här är var det oftast fallerar.
- Skribenter skapar utkast i slumpmässiga dokument, så redaktörer kan inte granska i en konsekvent kö.
- Statusfält i Google Sheets uppdateras inte, vilket gör att du fortsätter tilldela ämnen som redan är påbörjade.
- Content ops lägger ofta cirka 2 timmar i veckan bara på att stämma av “vad som är planerat” mot “vad som faktiskt finns”.
- När ni skalar produktionen smyger duplicerade ämnen in eftersom det inte finns något pålitligt “redan skrivet”-register.
Det du bygger: en plan-till-utkast-pipeline som uppdaterar sig själv
Det här arbetsflödet gör ditt strategisheet för innehåll till ett faktiskt produktionssystem. Enligt schema (eller när du triggar manuellt) kontrollerar n8n din strategitabell i Google Sheets för att hitta nästa ämne markerat som PLANNED. Det tittar även i Linear för att se vilka utkast-issues som redan finns, så att du inte skapar samma artikel två gånger. När den väljer nästa prioriterade ämne samlar en AI-researchagent in konkurrenskontext och viktiga datapunkter, och lämnar sedan briefen till en skrivagent som producerar ett komplett, SEO-optimerat utkast. Till sist skapar flödet ett Linear-issue med hela utkastinnehållet och uppdaterar statusen i Google Sheet så att planen speglar verkligheten. Om du vill ha notifieringar kan Slack pinga teamet så fort ett utkast är klart.
Flödet startar enligt ett veckoschema (måndag till onsdag som standard). Därifrån stämmer det av Google Sheets och Linear, och kör sedan research och skrivning som separata AI-steg. Resultatet blir ett nytt utkast-issue i Linear plus en uppdaterad rad i ditt sheet, så att granskning och planering håller ihop.
Det du bygger
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att ni publicerar 3 inlägg i veckan och hanterar allt manuellt: välj ämne (10 minuter), bekräfta att det inte är en dubblett (15 minuter), skapa en uppgift i Linear (10 minuter), uppdatera Google Sheet (5 minuter) och meddela teamet i Slack (5 minuter). Det är ungefär 45 minuter per inlägg, eller lite över 2 timmar i veckan, innan något skrivande ens börjar. Med det här flödet är “admin”-delen i princip bara triggen plus en snabb genomläsning när Slack säger att utkastet är klart. De flesta team får tillbaka de där 2 timmarna och minskar dessutom de irriterande statusmissarna som leder till omarbete.
Innan du börjar
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för din ämnesplan och statusar.
- Linear för att lagra utkast-issues och köra granskningar.
- Slack för att notifiera redaktörer när utkast landar.
- Anthropic- eller OpenAI-API-nyckel (hämta den från din modellproviders dashboard).
Svårighetsgrad: Mellan. Du kopplar ihop några konton, mappar fält mellan verktyg och testar med ett ämne innan du låter det rulla veckovis.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En veckotrigg (eller en manuell chatt-trigg) drar igång. Schemat är satt till måndag, tisdag och onsdag så att innehållsproduktionen håller en jämn takt utan att någon behöver komma ihåg att “köra processen”. Om du föredrar kan du också starta den vid begäran via chatt.
Ditt strategisheet läses in och stäms av mot Linear. n8n hämtar rader från Google Sheets för att hitta ämnen i PLANNED, och frågar sedan Linear för att se vad som redan har utkastats. Om ett utkast finns uppdaterar flödet sheet-statusen så att planen speglar verkligheten.
AI-research först, sedan skrivning. En researchagent samlar konkurrenskontext och viktiga datapunkter (med begränsade crawl-anrop för att hålla det effektivt), och därefter gör en skrivagent om briefen till ett komplett bloggutkast med metadata, struktur och positionering i linje med ditt varumärke.
Ett Linear-utkast-issue skapas och teamet blir notifierat. Hela utkastet hamnar i Linear så att redaktörer kan granska på samma ställe där de redan hanterar arbete. Slack kan larma kanalen så fort issuet skapas, så att utkast inte tyst börjar staplas på hög.
Du kan enkelt justera publiceringstakten eller vilken status som räknas som “redo” utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera den schemalagda triggern
Det här arbetsflödet startar enligt ett schema och kan även initieras via chatt. Konfigurera den schemalagda körningen först och bekräfta sedan inmatningsvägen för chatt-triggern.
- Öppna Scheduled Automation Trigger och ställ in schemaregeln till veckovis med triggerAtDay-värdena
1,2och3. - Säkerställ att Scheduled Automation Trigger är kopplad till Content Status Manager på huvudutgången.
- Granska Incoming Chat Trigger och behåll webhook-ID:t som konfigurerat, och bekräfta sedan att den är kopplad till Content Research Agent.
Steg 2: Anslut Google Sheets
Tre Google Sheets-verktygsnoder hanterar strategistatus och SEO-rapportdata som innehållshanteraren använder.
- Öppna Fetch Strategy Rows och ställ in Document till
Trigify SEO Reportoch Sheet tillStrategy_State. Inloggning krävs: Anslut eragoogleSheetsOAuth2Api-uppgifter. - Öppna Retrieve SEO Rows och ställ in Document till
Trigify SEO Reportoch Sheet tillSEO Report. Inloggning krävs: Anslut eragoogleSheetsOAuth2Api-uppgifter. - Öppna Update Sheet Row och låt Operation vara inställt på
appendOrUpdate. - I Update Sheet Row, ställ in Sheet till
Strategy_Stateoch behåll Matching Columns somcurrent_pillarför att uppdatera rätt rad. Inloggning krävs: Anslut eragoogleSheetsOAuth2Api-uppgifter. - Verifiera att kolumnmappningarna i Update Sheet Row är definierade med uttryck som
{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('notes', ``, 'string') }}för varje mappat fält.
Steg 3: Konfigurera AI-språkmodeller och agenter
Arbetsflödet bygger på flera LLM:er och agentnoder. Koppla inloggningsuppgifter till språkmodellsnoderna och bekräfta agentprompter och indata.
- Öppna Anthropic Chat Engine och ställ in modellen till
claude-sonnet-4-5-20250929. Inloggning krävs: Anslut eraanthropicApi-uppgifter. - Öppna Anthropic Chat Engine A och behåll modellen inställd på
claude-sonnet-4-5-20250929. Inloggning krävs: Anslut eraanthropicApi-uppgifter. - Öppna Anthropic Chat Engine B och behåll modellen inställd på
claude-opus-4-5-20251101. Inloggning krävs: Anslut eraanthropicApi-uppgifter. - Öppna OpenAI Chat Engine och ställ in modellen till
gpt-5-2025-08-07. Inloggning krävs: Anslut eraopenAiApi-uppgifter. - I Content Status Manager, behåll Text inställt på
Run task.och säkerställ att den är kopplad till Content Research Agent. - I Content Research Agent, ställ in Text till
{{ $json.output }}{{ $json.chatInput }}och verifiera att den är kopplad till Blog Author Agent. - I Blog Author Agent, ställ in Text till
{{ $json.output }}och låt needsFallback vara aktiverat.
Steg 4: Konfigurera verktyg för research och resonemang
Agenterna förlitar sig på MCP-verktyg, resonemangsverktyg och HTTP-verktyg för research och statuskontroller. Dessa är kopplade som AI-verktyg till de överordnade agenterna.
- Öppna Firecrawl MCP Tool och ställ in Endpoint URL till
https://mcp.firecrawl.dev/[YOUR_ID]/v2/mcp. Lägg till inloggningsuppgifter för Firecrawl i den överordnade agenten där verktyget används (Blog Author Agent). - Öppna Firecrawl MCP Tool A och ställ in Endpoint URL till
https://mcp.firecrawl.dev/[YOUR_ID]/v2/mcp. Lägg till inloggningsuppgifter för Firecrawl i den överordnade agenten där verktyget används (Content Research Agent). - Öppna Retrieve Linear Issues och ställ in URL till
https://api.linear.app/graphql, Method tillPOSToch inkludera rubriken Authorization med er token. Det här verktyget är kopplat till Content Status Manager, så lägg till inloggningsuppgifter/token i HTTP-verktygets konfiguration. - Låt Reasoning Step och Reasoning Step A ligga kvar som AI-resoneringsverktyg; de är kopplade till Content Research Agent respektive Content Status Manager.
Steg 5: Konfigurera utdata-/åtgärdsnoder
Utdata inkluderar att skapa Linear-ärenden och uppdatera strategistatus i Google Sheets baserat på research- och skrivresultat.
- Öppna Linear Issue Creator och ställ in Title till
{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}och Team ID till ert Linear-team-ID. Inloggning krävs: Anslut eralinearApi-uppgifter. - I Linear Issue Creator, behåll Description inställt på
{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Description', ``, 'string') }}så att agenten skriver hela bloggen i ärendet. - Bekräfta att Update Sheet Row fortfarande är kopplad som ett AI-verktyg till Content Status Manager för statusuppdateringar.
Steg 6: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för både den schemalagda vägen och den chattdrivna vägen och aktivera sedan för löpande automatisering.
- Klicka på Execute Workflow för att simulera den schemalagda vägen som startar från Scheduled Automation Trigger och bekräfta att data flödar till Content Status Manager och därefter Content Research Agent.
- Trigga Incoming Chat Trigger med en testinmatning i chatten och verifiera att Content Research Agent output:ar en brief som når Blog Author Agent.
- Bekräfta att en lyckad körning skapar ett Linear-ärende via Linear Issue Creator och uppdaterar Google Sheets via Update Sheet Row.
- När allt är verifierat, ställ in arbetsflödet till Active så att Scheduled Automation Trigger körs automatiskt varje vecka.
Felsökningstips
- Google Sheets-autentisering kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först Google-kopplingen i n8n under fliken Credentials och bekräfta sedan att sheetet är delat med samma Google-konto.
- 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 redigera output för alltid.
Snabba svar
Cirka en timme om fälten i Sheets och Linear redan är bestämda.
Nej. Du kopplar ihop konton och mappar några fält mellan Google Sheets och Linear.
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 API-kostnader för AI-modellen, vilket oftast är några cent per utkast beroende på längd.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det bör du förmodligen. Du kan byta Scheduled Automation Trigger mot Incoming Chat Trigger om du vill generera utkast vid begäran, och du kan ändra vad Content Status Manager räknar som “redo” genom att justera statusmappningen och steget Google Sheets Update Sheet Row. Vanliga justeringar är att lägga till en “Editor”-ansvarig i Linear, bara skriva kortare klusterinlägg och skicka Slack-notiser till olika kanaler baserat på ämneskategori.
Oftast är det ett problem med API-token eller saknade scope-behörigheter för att skapa issues. Skapa en ny Linear API-nyckel, uppdatera den i n8n och bekräfta att den har åtkomst till teamet och projektet du skriver till. Kontrollera också Linear workspace slug eller team-ID som används i steget HTTP Request, eftersom ett kopierat värde från en annan workspace kan “se rätt ut” och ändå fallera.
På n8n Cloud Starter kan du vanligtvis köra en veckovis innehållspipeline utan problem, och egen hosting tar bort körningsbegränsningar helt. I praktiken är flaskhalsen AI-genereringstid och redaktionens granskningskapacitet, inte n8n. Om du försöker generera dussintals utkast i en och samma körning kan du slå i providers rate limits, så det är smartare att batcha ämnen.
Ofta, ja. Det här flödet bygger på logik i flera steg (kontrollera befintliga Linear-issues, uppdatera sheet-status, förgrena när allt är klart och sedan köra research och skrivning), och n8n hanterar den typen av förgrening utan att din faktura blir ett matteproblem. Du får också möjligheten att hosta själv, vilket spelar roll när du kör frekventa utkast eller flera varumärken. Zapier eller Make kan fortfarande fungera för ett lätt “skapa issue från rad”-flöde, men de blir klumpiga när du lägger till agenter, research-anrop och tillståndshantering. Prata med en automationsexpert om du är osäker på vad som passar.
När detta väl rullar slutar ditt sheet att vara en kyrkogård för “planerade” idéer och blir en riktig produktionsdashboard. Flödet tar hand om grovjobbet så att teamet kan fokusera på granskning och publicering.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.