Din innehållskalender ser ”organiserad” ut tills du försöker göra en brief till ett riktigt utkast. Sedan är det flikar överallt, halvfärdiga dispositioner, bortglömda interna länkar och ett Google Doc som på något sätt blir sex lite olika versioner.
Innehållsmarknadsförare känner av det först, men byråledare och upptagna grundare dras snabbt in. Den här Airtable blog automation tar en strukturerad brief och producerar ett publiceringsklart utkast, och loggar sedan godkännandestatus i Google Sheets så att inget försvinner.
Nedan ser du hur workflowet körs, vad det levererar och vad du behöver för att sätta upp det utan att förvandla veckan till ”felsökning av automation hela veckan”.
Problemet: briefar blir inte publiceringsklara utkast
Airtable är bra för att samla in briefar, men de flesta team stannar där. I samma stund som skrivandet börjar splittras allt upp i dokument, chattar och ”final_final_v3”-utkast. Internlänkning blir rörigt eftersom ingen har tid att skanna hela sajten efter de bästa matchningarna, så du hoppar över det eller lägger in samma tre länkar varje gång. Granskningar drar ut på tiden också, eftersom status ligger i någons huvud i stället för i ett ark som hela teamet kan lita på. Och ärligt talat gör omskrivningarna mest ont när briefen var tydlig från början.
Det blir snabbt mycket. Här är var det oftast faller isär.
- Skribenter lägger cirka 2 timmar på research och disposition för sådant som briefen redan antydde.
- Internlänkning blir en manuell skattjakt över dussintals (eller hundratals) URL:er.
- Redigering blir en andra skrivrunda eftersom första utkastet inte matchar intention eller struktur.
- Godkännandespårning hamnar i DM:s, vilket leder till förseningar och missade publiceringsdatum.
Så fungerar den här automationen
Hela n8n-workflowet, från trigger till slutleverans:
n8n Workflow Template: Airtable + Google Sheets, publiceringsklara utkast
flowchart LR
subgraph sg0["Tavily search result 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/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook"]
n1@{ icon: "mdi:wrench", form: "rounded", label: "Tavily search results", pos: "b", h: 48 }
n2@{ icon: "mdi:brain", form: "rounded", label: "Anthropic Chat Model", 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/airtable.svg' width='40' height='40' /></div><br/>Airtable Get Article Data"]
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Airtable Fields for Agents", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set KWs and Insights fields", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Refine the Title", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Key Takeaways", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Key Takeaways AI Agent", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Introduction Field", pos: "b", h: 48 }
n10@{ icon: "mdi:robot", form: "rounded", label: "Outline Agent", pos: "b", h: 48 }
n11@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Outline Fields", pos: "b", h: 48 }
n13@{ icon: "mdi:robot", form: "rounded", label: "Content Writer Agent", pos: "b", h: 48 }
n14@{ icon: "mdi:robot", form: "rounded", label: "Introduction Agent", pos: "b", h: 48 }
n15@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model2", pos: "b", h: 48 }
n17@{ icon: "mdi:cog", form: "rounded", label: "Create Article Folder", pos: "b", h: 48 }
n18@{ icon: "mdi:cog", form: "rounded", label: "Google Drive", pos: "b", h: 48 }
n19@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n20["<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/>Airtable"]
n21@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields1", pos: "b", h: 48 }
n22@{ icon: "mdi:robot", form: "rounded", label: "SERPs, Writing, KWs, Insights", pos: "b", h: 48 }
n23["<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/>Update Article Writer table"]
n24@{ icon: "mdi:swap-vertical", form: "rounded", label: "Sets New Title Field", pos: "b", h: 48 }
n25["<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/>Update Article Title"]
n26@{ icon: "mdi:brain", form: "rounded", label: "Open AI", pos: "b", h: 48 }
n27@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Key Takeaways", pos: "b", h: 48 }
n28@{ icon: "mdi:brain", form: "rounded", label: "OpenAI", pos: "b", h: 48 }
n29@{ icon: "mdi:robot", form: "rounded", label: "Main Body Prompt Writer", pos: "b", h: 48 }
n30@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model1", pos: "b", h: 48 }
n31@{ icon: "mdi:robot", form: "rounded", label: "AI Agent Conclusion Writer", pos: "b", h: 48 }
n32@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Conclusion", pos: "b", h: 48 }
n33@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model5", pos: "b", h: 48 }
n34@{ icon: "mdi:cog", form: "rounded", label: "Create Doc Filename is title", pos: "b", h: 48 }
n35@{ icon: "mdi:cog", form: "rounded", label: "Add Final Article", pos: "b", h: 48 }
n36@{ icon: "mdi:cog", form: "rounded", label: "Add Meta Description", pos: "b", h: 48 }
n37@{ icon: "mdi:robot", form: "rounded", label: "OpenAI Meta", pos: "b", h: 48 }
n41@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Airtable Fields", pos: "b", h: 48 }
n47@{ icon: "mdi:swap-vertical", form: "rounded", label: "Final Article", pos: "b", h: 48 }
n48["<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/>HTTP Request"]
n49@{ icon: "mdi:cog", form: "rounded", label: "XML", pos: "b", h: 48 }
n50@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out", pos: "b", h: 48 }
n51@{ icon: "mdi:cog", form: "rounded", label: "Aggregate", pos: "b", h: 48 }
n52["<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/>HTTP Request1"]
n53@{ icon: "mdi:cog", form: "rounded", label: "XML1", pos: "b", h: 48 }
n54@{ icon: "mdi:brain", form: "rounded", label: "Open AI1", pos: "b", h: 48 }
n55@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set list URLs", pos: "b", h: 48 }
n56@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set best urls", pos: "b", h: 48 }
n57@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Airtable Fields for Agent", pos: "b", h: 48 }
n58@{ icon: "mdi:robot", form: "rounded", label: "URLs Selection", pos: "b", h: 48 }
n59["<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"]
n49 --> n50
n53 --> n51
n28 -.-> n14
n26 -.-> n6
n0 --> n41
n54 -.-> n58
n51 --> n55
n50 --> n52
n19 --> n20
n37 --> n36
n21 --> n31
n18 --> n19
n48 --> n49
n47 --> n17
n52 --> n53
n10 --> n12
n56 --> n4
n55 --> n57
n32 --> n47
n58 --> n56
n6 --> n24
n35 --> n37
n11 -.-> n10
n7 --> n14
n59 --> n5
n14 --> n9
n30 -.-> n29
n15 -.-> n31
n33 -.-> n13
n12 --> n29
n41 --> n3
n36 --> n18
n2 -.-> n22
n13 --> n21
n27 -.-> n8
n24 --> n25
n25 --> n8
n17 --> n34
n1 -.-> n22
n8 --> n7
n9 --> n10
n29 --> n13
n3 --> n48
n31 --> n32
n5 --> n23
n23 --> n6
n34 --> n35
n22 --> n59
n57 --> n58
n4 --> n22
end
subgraph sg1["OpenAI Image Prompt1 Flow"]
direction LR
n39@{ icon: "mdi:robot", form: "rounded", label: "OpenAI Image Prompt1", pos: "b", h: 48 }
n40@{ icon: "mdi:cog", form: "rounded", label: "Add Image Prompt1", pos: "b", h: 48 }
n39 --> n40
end
subgraph sg2["Article Assembly Age Flow"]
direction LR
n16@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model3", pos: "b", h: 48 }
n43@{ icon: "mdi:robot", form: "rounded", label: "Article Assembly Agent1", pos: "b", h: 48 }
n16 -.-> n43
end
subgraph sg3["Final Edit Agent1 Flow"]
direction LR
n44@{ icon: "mdi:robot", form: "rounded", label: "Final Edit Agent1", pos: "b", h: 48 }
n45@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model6", pos: "b", h: 48 }
n45 -.-> n44
end
subgraph sg4["Flow 5"]
direction LR
n42@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set KWs and Insights fields1", pos: "b", h: 48 }
end
subgraph sg5["Flow 6"]
direction LR
n38["<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/>Update Article Writer table1"]
end
subgraph sg6["Flow 7"]
direction LR
n46@{ icon: "mdi:swap-vertical", form: "rounded", label: "Final Article1", pos: "b", h: 48 }
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 n6,n8,n10,n13,n14,n22,n29,n31,n37,n58,n39,n43,n44 ai
class n2,n11,n15,n26,n27,n28,n30,n33,n54,n16,n45 aiModel
class n1 ai
class n3,n20,n23,n25,n38 database
class n0,n48,n52 api
class n59 code
classDef customIcon fill:none,stroke:none
class n0,n3,n20,n23,n25,n48,n52,n59,n38 customIcon
Lösningen: Airtable-briefar in, bloggutkast ut (med godkännanden spårade)
Det här workflowet startar med en brief i Airtable och gör den till ett komplett utkast som är redo att klistra in i ditt CMS med minimal efterstädning. I stället för en enda AI-prompt som ska ”göra allt” använder det flera specialiserade AI-agenter som hanterar varsin del: research, disposition, skrivande, redigering, SEO-finputsning och grundläggande faktakontroll. Det finns också ett inbyggt steg för internlänkning. Workflowet skannar dina webbadresser, hittar relevanta sidor för ämnet och lägger in SEO-vänliga ankarlänkar automatiskt, vilket är den del de flesta team hoppar över när det går fort. När det är klart skickar workflowet resultatet till Google Sheets så att teamet kan följa granskning och godkännande utan att jaga någon.
Workflowet börjar när en ny brief (eller en markerad ”redo”-brief) hämtas från Airtable. Därefter genererar agenterna sina egna prompts utifrån ämne och intention, skriver utkastet och finputsar det. Slutligen loggar det leveransen och statusfält i Google Sheets så att utkastet rör sig genom din pipeline utan friktion.
Det du får: automation vs. resultat
| Det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att du publicerar 3 SEO-inlägg per vecka. Manuellt tar ett ”bra” utkast ofta cirka 3 timmar när du räknar in research, disposition, skrivande och att lägga in 6–10 interna länkar. Det är ungefär 9 timmar i veckan innan redigeringen ens börjar. Med det här workflowet lägger du kanske 10 minuter på att skärpa Airtable-briefen och sätta vinkel, och väntar sedan runt 15 minuter medan agenterna genererar utkastet och lägger in interna länkar. Du granskar och finpolerar fortfarande, men du börjar från ett strukturerat utkast i stället för ett tomt blad.
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)
- Airtable för att lagra briefar, fält och innehållsparametrar
- Google Sheets för att spåra utkast, godkännanden och statusar
- OpenAI API-nyckel (eller annan AI-leverantör) (hämtas i din AI-leverantörs dashboard)
Svårighetsnivå: Medel. Du kopplar konton, mappar fält och justerar några prompts och URL:er.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Airtable startar allt. En ny post (eller en flagga ”redo för utkast”) triggar workflowet så att du slipper kopiera briefar till ett annat verktyg.
Workflowet bygger kontext och instruktioner. Med HTTP-anrop och fältmappning hämtar det ämnesdetaljer, målgruppsnoteringar och eventuellt referensmaterial (inklusive PDF:er om du bifogar dem), och genererar sedan dynamiska prompts anpassade efter briefen.
Specialiserade AI-agenter gör grovjobbet. En agent gör research och förtydligar intention, en annan tar fram en stark disposition, skrivagenten skriver utkastet och en sista passering skärper ton, SEO och läsbarhet. Den modulära modellen är varför utkasten känns mindre ”generisk AI”.
Internlänkning och leverans sker på slutet. Workflowet skannar dina befintliga sajt-URL:er, väljer de närmaste matchningarna för ämnet, lägger in ankarlänkar och skriver sedan det färdiga utkastet plus metadatafält till Google Sheets för godkännande.
Du kan enkelt ändra reglerna för internlänkning för att prioritera produktsidor, ”money”-sidor eller nyligen publicerade inlägg beroende på dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Vanliga fallgropar
- Airtable-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först scopes i din Airtable personal access token och åtkomsten till basen.
- Om du använder Wait-noder eller extern bearbetning (som URL-skanning eller PDF-läsning) varierar processtiderna. Öka väntetiden om noder längre fram misslyckas på grund av tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din varumärkesröst tidigt, annars kommer du att redigera output för evigt.
Vanliga frågor
Räkna med ungefär en timme om din Airtable-bas och ditt Sheet är redo.
Nej. Du mappar främst fält och klistrar in API-uppgifter. Den mest ”tekniska” delen är att avgöra vilka Airtable-fält som ska styra ton, längd och länkningsregler.
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 kostnader för AI-API, som oftast landar på några cent per utkast beroende på längd.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) 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. Du kan justera logiken för URL-skanning och matchning så att den prioriterar produktsidor, kategorisidor eller inlägg med hög konvertering, och sedan ändra steget ”edit fields” som lägger in ankartext. Vanliga anpassningar är att begränsa länkar till en per sektion, exkludera vissa URL-sökvägar (som /tag/) och tvinga varumärkessäkra ankarfraser. Om du publicerar inom flera nischer kan du också lagra länkningsregler i Airtable per kund och låta workflowet tillämpa dem automatiskt.
Oftast beror det på en utgången token eller saknade behörigheter till basen. Skapa en ny Airtable personal access token, bekräfta att den har läs/skriv-åtkomst till rätt bas och uppdatera sedan inloggningen i n8n. Om det bara fallerar på vissa poster, kontrollera om fält har döpts om eller om select-alternativ har ändrats, eftersom det kan bryta mappningar utan att det märks direkt.
På n8n Cloud Starter kan du köra några tusen körningar per månad, vilket räcker för de flesta små team. Om du self-hostar finns ingen gräns för körningar, men du begränsas av din server och din AI-leverantörs rate limits. I praktiken kör de flesta team detta i batchar (som 5–20 briefar åt gången) så att redaktörer kan granska i jämn takt i stället för att bli översvämmade.
För agentbaserat skrivande och logik för internlänkar är n8n oftast bättre, eftersom du kan förgrena, loopa, slå ihop och lägga till ”om detta, så det”-regler utan att betala extra för varje litet steg. Zapier och Make fungerar för enkel routing, men blir klumpiga när du vill ha flerstegs AI-arbete plus URL-skanning och formatering. En annan praktisk punkt: self-hosting av n8n kan hålla kostnaderna förutsägbara när du skalar innehållsvolym. Om ditt workflow bara är ”Airtable-rad → en prompt → Google Doc”, då kan Zapier vara snabbare. Prata med en automationsexpert om du vill ha en rak rekommendation för din setup.
Det här är vad ”innehållssystem” ska betyda: workflowet tar hand om repetitiva moment, och teamet fokuserar på omdöme och originalitet. Sätt upp det en gång och leverera utkast konsekvent.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.