Din innehållspipeline är förmodligen inte “svår”. Den är bara irriterande. Idéer finns på ett ställe, research är utspridd, utkast är halvfärdiga och slutversionen behöver fortfarande att någon kopierar, klistrar in, formaterar och arkiverar den någonstans som faktiskt är vettigt.
Content managers märker det när deadlines staplas. En marknadsansvarig märker det när kvaliteten börjar sjunka. Och en solo-operatör som driver sitt eget nyhetsbrev? Samma röra, färre händer. Den här automatiseringen för innehållsutkast gör en enda förfrågan till ett bloggutkast som är redo för granskning i Airtable, eller ett nyhetsbrevsutkast i kö i Google Sheets.
Nedan ser du exakt vad arbetsflödet producerar, var det sparar utkast och hur du kan forma det så att det matchar din röst utan att behöva detaljstyra varje stycke.
Så fungerar den här automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Airtable + Google Sheets: utkast redo att publicera
flowchart LR
subgraph sg0["Form Intake 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/form.svg' width='40' height='40' /></div><br/>Form Intake Trigger"]
n1@{ icon: "mdi:robot", form: "rounded", label: "Insight Gathering Agent", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Structure Drafting Agent", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Content Writing Agent", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Editorial Optimization Agent", pos: "b", h: 48 }
n5@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Engine", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Content Type Router", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "Blog Formatting Agent", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Newsletter Formatting Agent", pos: "b", h: 48 }
n9@{ icon: "mdi:brain", form: "rounded", label: "Gemini Chat Engine", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Create Feature Image"]
n11@{ icon: "mdi:cog", form: "rounded", label: "Image File Converter", 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/airtable.svg' width='40' height='40' /></div><br/>Store Blog in Airtable"]
n13@{ icon: "mdi:database", form: "rounded", label: "Append Newsletter Sheet", pos: "b", h: 48 }
n3 --> n4
n2 --> n3
n1 --> n2
n4 --> n6
n0 --> n1
n7 --> n10
n11 --> n12
n6 --> n7
n6 --> n8
n9 -.-> n7
n9 -.-> n8
n8 --> n13
n5 -.-> n1
n5 -.-> n2
n5 -.-> n3
n5 -.-> n4
n10 --> 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 n1,n2,n3,n4,n7,n8 ai
class n5,n9 aiModel
class n6 decision
class n12,n13 database
class n10 api
classDef customIcon fill:none,stroke:none
class n0,n10,n12 customIcon
Utmaningen: utkast som aldrig känns “klara”
Publicering stoppas sällan av brist på idéer. Den stoppas av träsket mellan idé och “det här är redo för granskning”. Någon måste samla källor, bygga en disposition, skriva ett första utkast som inte låter robotiskt och sedan redigera för tydlighet och sökintention. Och sedan återstår grovjobbet: formatering för ditt CMS, skapa en utvald bild och säkerställa att utkastet hamnar på rätt ställe så att resten av teamet faktiskt kan hitta det senare. Det är lätt att tappa en hel eftermiddag på ett enda “enkelt” inlägg.
Och friktionen byggs på.
- Research blir inkonsekvent eftersom alla har olika processer och olika krav på källor.
- Dispositioner hoppas över när det är stressigt, vilket gör att redigeringen tar längre tid och att texten tappar riktning.
- Utkast hamnar i dokument, Slack, e-posttrådar och slumpmässiga mappar, så granskning blir en skattjakt.
- Formatering och “lägg in det i Airtable/Sheets” är rent adminjobb, men det stjäl ändå fokus från skrivandet.
Lösningen: utkastskapande med flera agenter som arkiverar sig självt
Det här n8n-arbetsflödet startar med en enkel formulärinskickning (ditt ämne, några indata och vilken innehållstyp du vill ha). Därifrån tar en kedja av fyra specialiserade AI-agenter över: en samlar insikter och källor, en annan omvandlar insikterna till en struktur, en skrivagent producerar ett komplett utkast och en redaktörsagent vässar det för läsbarhet och SEO. Efter den redaktionella genomgången skickar arbetsflödet innehållet vidare baserat på ditt val. Bloggutkast formateras för publicering, en utvald bild genereras via OpenAI (DALL·E) och allt lagras i Airtable. Nyhetsbrevsutkast tar en separat formateringsväg och läggs till i ett Google Sheet, i kö och redo för granskning eller schemaläggning.
Arbetsflödet börjar med din förfrågan och slutar med ett korrekt formaterat, granskningsklart utkast i verktyget du redan använder för att hantera arbetet. Airtable blir din databas för bloggutkast och Google Sheets blir din nyhetsbrevskö, så inget försvinner bland någons webbläsarflikar.
Vad som ändras: före vs. efter
| Detta tar bort | Effekten du märker |
|---|---|
|
|
Effekt i praktiken
Säg att du publicerar 3 blogginlägg och 2 nyhetsbrev varje vecka. Manuellt kan även en “snabb” process se ut som 60 minuter för research och disposition plus cirka 2 timmar för att skriva och redigera, alltså ungefär 15 timmar per vecka innan du ens räknar formatering och arkivering. Med det här arbetsflödet är din hands-on-tid närmare 5 minuter per förfrågan för att skicka in och skumma resultatet, och sedan gör agenterna grovjobbet medan du gör annat. Du granskar förstås fortfarande, men du granskar ett utkast som redan ligger i Airtable eller är köat i Sheets.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Airtable för att lagra bloggutkast och metadata
- Google Sheets för att köa nyhetsbrevsutkast för granskning
- OpenRouter API-nyckel (hämta den från din OpenRouter-dashboard)
- Google Gemini API-nyckel (hämta den från Google AI Studio)
- OpenAI API-nyckel (hämta den från OpenAI API-dashboarden)
Kunskapsnivå: Mellan. Du kopplar konton, lägger in API-nycklar och mappar några fält till Airtable och Sheets.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Arbetsflödets steg
En formulärinskickning startar allt. Du anger ämnet och väljer “blogg” eller “nyhetsbrev”, så att automatiseringen vet vilken typ av output du vill ha och var den ska lagras.
Research och struktur byggs först. Agenten för insiktsinsamling samlar nyckelpunkter och källor, sedan omvandlar agenten för strukturutkast detta till en disposition som är enklare att skriva utifrån (och enklare att redigera senare).
Skrivande och redigering sker i två separata pass. Agenten för innehållsskrivning producerar utkastet, sedan förfinar agenten för redaktionell optimering det för tydlighet och sökintention med hjälp av de kopplade språkmodellerna (OpenRouter och Gemini).
Arbetsflödet skickar resultatet till rätt destination. Om det är ett blogginlägg förbereder agenten för bloggformatering innehållet, DALL·E genererar en utvald bild via en HTTP-förfrågan och slututkastet lagras i Airtable. Om det är ett nyhetsbrev anpassar formateringsagenten texten för e-postläsning och lägger till den i Google Sheets.
Du kan enkelt justera skrivstilen och lagringsfälten så att de matchar din granskningsprocess. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera formulärtriggern
Ställ in intagsformuläret som startar AI-publiceringspipelinen med ett ämne och en innehållstyp.
- Lägg till och öppna Form Intake Trigger.
- Ställ in Form Title till
SEO Blog & Newsletter Generator. - Ställ in Form Description till
Generate high-quality, SEO-optimized blog posts and newsletters using AI. - Under Form Fields konfigurerar ni en rullista med etiketten Content Type med alternativen
BlogochNewsletter, och lägger till en obligatorisk textruta (textarea) med etiketten Topic.
$json['Content Type'] och $json.Topic så att de matchar de nya etiketterna.Steg 2: Anslut AI-språkmodellerna
Koppla in LLM-leverantörerna som används av agenterna och säkerställ att autentiseringsuppgifter läggs till i modellnoderna (inte i agentnoderna).
- Öppna OpenRouter Chat Engine och ställ in Model till
agentica-org/deepcoder-14b-preview:free. - Credential Required: Anslut era openRouterApi-autentiseringsuppgifter i OpenRouter Chat Engine.
- Öppna Gemini Chat Engine och behåll standardalternativen om ni inte behöver en specifik modellöverskrivning.
- Credential Required: Anslut era googlePalmApi-autentiseringsuppgifter i Gemini Chat Engine.
Steg 3: Sätt upp kedjan för AI-innehållsgenerering
Konfigurera multiagent-pipelinen som researchar, tar fram en disposition, skriver och optimerar innehållet.
- I Insight Gathering Agent behåller ni prompten som definierad och säkerställer att den refererar till formulärfälten med
{{$json['Content Type']}}och{{$json.Topic}}. - I Structure Drafting Agent säkerställer ni att prompten börjar med
{{$json.output}}för att skicka vidare research-resultatet. - I Content Writing Agent bekräftar ni att prompten börjar med
{{$json.output}}för att utveckla dispositionen till ett komplett utkast. - I Editorial Optimization Agent behåller ni prompten som börjar med
{{$json.output}}för att finslipa utkastet och lägga till metadata. - Verifiera att körflödet går i ordning: Form Intake Trigger → Insight Gathering Agent → Structure Drafting Agent → Content Writing Agent → Editorial Optimization Agent.
{{$json.output}} att misslyckas. Behåll promptformaten oförändrade under testning.Steg 4: Konfigurera routning för innehållstyp och parallell formatering
Routa optimerat innehåll till blogg- eller nyhetsbrevsformatering och konfigurera formateringsagenterna för utdata.
- Öppna Content Type Router och definiera regler som jämför den inskickade innehållstypen (t.ex.
BlogvsNewsletter) för att routa korrekt. - Bekräfta den parallella körningen: Content Type Router skickar output till både Blog Formatting Agent och Newsletter Formatting Agent parallellt.
- I Blog Formatting Agent behåller ni prompten som börjar med
{{$json.output}}och säkerställer att den outputtartitle_column,blog_column,keywords,meta_descriptionochimage_prompt. - I Newsletter Formatting Agent behåller ni prompten som börjar med
{{$json.output}}och säkerställer att den outputtartitle_column,content_html,content_plainochpreview_text.
Steg 5: Konfigurera mediegenerering och blogglagring
Generera en utvald bild för blogginlägg och lagra blogginnehållet i Airtable.
- Öppna Create Feature Image och behåll URL inställd på
https://api.openai.com/v1/images/generationsmed MethodPOST. - Ställ in JSON Body till den angivna payloaden och säkerställ att prompten använder
{{$json.output.image_prompt}}. - Credential Required: Anslut era openAiApi-autentiseringsuppgifter i Create Feature Image.
- I Image File Converter ställer ni in Operation till
toBinaryoch Source Property tilldata[0].b64_json. - Ställ in filnamnet till
=blog-featured-{{ $now.toFormat('yyyy-MM-dd-HHmmss') }}.pngoch MIME Type tillimage/png. - Öppna Store Blog in Airtable och mappa fälten: Title till
{{$('Blog Formatting Agent').item.json.output.title_column}}, Status tillDraft, Content till{{$('Blog Formatting Agent').item.json.output.blog_column}}, Keywords till{{$('Blog Formatting Agent').item.json.output.keywords}}, Created Date till{{$now.toISO()}}och Meta Description till{{$('Blog Formatting Agent').item.json.output.meta_description}}. - Credential Required: Anslut era airtableTokenApi-autentiseringsuppgifter i Store Blog in Airtable.
[YOUR_ID] kommer arbetsflödet att misslyckas. Ersätt dem med era faktiska Airtable Base- och Table-ID:n.Steg 6: Konfigurera lagring av nyhetsbrev i Google Sheets
Lägg till det formaterade nyhetsbrevsresultatet i ert Google Sheets-arkiv.
- Öppna Append Newsletter Sheet och välj ert mål för Document och Sheet (t.ex.
Newsletter Archive→Sheet1). - Ställ in kolumner: Title till
{{$('Newsletter Formatting Agent').item.json.output.title_column}}, Status tillReady to Send, Content HTML till{{$('Newsletter Formatting Agent').item.json.output.content_html}}, Created Date till{{$now.toFormat('yyyy-MM-dd HH:mm:ss')}}, Preview Text till{{$('Newsletter Formatting Agent').item.json.output.preview_text}}och Content Plain till{{$('Newsletter Formatting Agent').item.json.output.content_plain}}. - Credential Required: Anslut era googleSheetsOAuth2Api-autentiseringsuppgifter i Append Newsletter Sheet.
Steg 7: Testa och aktivera ert arbetsflöde
Validera hela AI-pipelinen och aktivera den sedan för användning i produktion.
- Klicka på Execute Workflow och skicka in Form Intake Trigger med en exempel-Content Type och Topic.
- Bekräfta att Insight Gathering Agent till Editorial Optimization Agent genererar output utan fel.
- Verifiera att bloggkörningar skapar en bild via Create Feature Image och en post i Store Blog in Airtable, medan nyhetsbrevskörningar lägger till en rad i Append Newsletter Sheet.
- När allt fungerar, växla arbetsflödet till Active för att aktivera användning i produktion.
Saker att se upp med
- Airtable-uppgifter kan löpa ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera först omfattningarna (scopes) för Airtable personal access token och base-/table-ID:n i “Store Blog in Airtable”.
- Om genereringen av utvald bild går långsamt varierar processtiderna. Öka väntetiden (eller lägg till en) om nedströmsnoder sparar en tom fil eller misslyckas på grund av saknad binärdata.
- Standardprompter i agentnoderna är generiska. Lägg in regler för er varumärkesröst tidigt i Research- eller Outline-prompterna, annars kommer du att sitta och justera tonläge i varenda utkast.
Vanliga frågor
Cirka en timme om dina API-nycklar och Airtable/Sheets är klara.
Ja, men du vill ha någon som är bekväm med att koppla konton och klistra in API-nycklar. Ingen kodning, bara noggrann setup och testning.
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 in kostnader för AI-API:er (OpenRouter, Gemini och OpenAI för bildgenerering), som varierar beroende på hur långa dina utkast är.
Två alternativ: n8n Cloud (hanterat, enklaste setup) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Börja med att redigera prompterna i de fyra agentnoderna (Insight Gathering, Structure Drafting, Content Writing och Editorial Optimization) så att arbetsflödet lär sig din ton och dina begränsningar. Du kan byta modeller genom att ändra anslutningarna för OpenRouter Chat Engine eller Gemini Chat Engine, och du kan hoppa över bilder genom att inaktivera HTTP-förfrågningsvägen “Create Feature Image”. Vanliga justeringar är att lägga till ett avsnitt för “brand voice”, tvinga en intern stilguide för rubriker och spara extra fält (nyckelord, CTA, författare) i Airtable.
Oftast handlar det om behörigheter: token kan inte skriva till basen, eller så är table-ID:t fel. Kontrollera base-/table-ID:n i “Store Blog in Airtable” igen och bekräfta sedan att dina Airtable token-scopes tillåter att skapa poster. Om det bara misslyckas i vissa körningar kan du skicka ett fältvärde som inte matchar kolumntypen (till exempel en array in i ett textfält).
På n8n Cloud Starter kan du vanligtvis köra några tusen exekveringar per månad, vilket räcker för de flesta små team som genererar utkast dagligen. Om du self-hostar finns ingen exekveringsgräns; din begränsning är din server och AI-leverantörernas rate limits. Den tyngre begränsningen är ofta bildgenerering och längre utkast, så om du planerar att köra batcher, sprid ut förfrågningarna och håll koll på dina OpenRouter/Gemini-kvoter.
Ofta, ja, eftersom agentkedjor i flera steg, förgrening (blogg vs nyhetsbrev) och filhantering blir klumpigt och dyrt i enklare byggare. n8n är också lättare att anpassa när du vill ha “riktig logik”, som routing, slå ihop innehåll eller byta AI-leverantörer utan att bygga om allt. Zapier eller Make kan fortfarande fungera bra för lätta tvåstegsflöden. Om du är osäker, prata med en automationsexpert och få en snabb rekommendation baserat på volym och komplexitet.
Det är så här content ops ska kännas: en korrekt förfrågan in, ett korrekt utkast ut, lagrat där ditt team redan jobbar. Sätt upp det en gång och lägg sedan energin på det som människor faktiskt är bra på.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.