Din innehållsplan ligger förmodligen i Google Sheets. Sedan börjar det verkliga jobbet: öppna källänkarna, plocka ut det användbara, skriva något original, formatera det, klistra in det i WordPress och hålla arket uppdaterat så att ingen gör samma jobb två gånger.
Content marketers känner av det här varje vecka. SEO-specialister märker det när kampanjerna skalar upp. Och om du driver en liten byrå är automatisering av Sheets WordPress-utkast skillnaden mellan ”vi borde publicera mer” och att faktiskt leverera utkast konsekvent.
Det här arbetsflödet gör rader i ett Google Sheet till välformaterade WordPress-utkast med OpenAI, samtidigt som det spårar status och fångar dåliga källor innan de hinner slösa din tid. Du får se hur det fungerar, vad du behöver och var team oftast går snett.
Så fungerar den här automatiseringen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: Google Sheets till WordPress: utkast för granskning
flowchart LR
subgraph sg0["Article Creator Flow"]
direction LR
n0@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n2@{ icon: "mdi:database", form: "rounded", label: "Get New Articles", pos: "b", h: 48 }
n3@{ icon: "mdi:database", form: "rounded", label: "Update Processing", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch HTML"]
n5@{ icon: "mdi:database", form: "rounded", label: "Update Error", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Article Creator", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "Article Summarizer", 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/wordpress.svg' width='40' height='40' /></div><br/>Create a Draft"]
n9["<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/>Format Article"]
n10@{ icon: "mdi:database", form: "rounded", label: "Update Draft Details", pos: "b", h: 48 }
n11["<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 --> n7
n1 --> n5
n11 --> n2
n4 --> n1
n5 --> n0
n8 --> n10
n9 --> n8
n6 --> n9
n0 --> n3
n2 --> n0
n3 --> n4
n7 --> n6
n10 --> n0
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,n7 ai
class n1 decision
class n2,n3,n5,n10 database
class n4,n11 api
class n9 code
classDef customIcon fill:none,stroke:none
class n4,n8,n9,n11 customIcon
Varför det här spelar roll: att gå från ett sheet till publicerat innehåll är fortfarande för manuellt
Google Sheets är en bra ”samlad lista” för ämnen, nyckelord och käll-URL:er. Problemet är allt efter den listan. Någon måste öppna varje källa, avgöra vad som är värt att använda, sammanfatta det, skriva en ny text (inte en omskrivning) och sedan brottas med formateringen i WordPress. Under tiden uppdaterar sig inte arket självt, så samma rad plockas upp två gånger, eller så blir den liggande eftersom ingen vet vem som äger den. Efter några veckor blir arket en kyrkogård av halvfärdiga idéer och ”vi tar det senare”.
Friktionen växer för varje steg. Här brukar det falla isär.
- Rader markerade som ”New” missas eftersom det blir en vana att kolla arket som man bara håller i ungefär en vecka.
- Käll-URL:er är inkonsekventa, så du slösar tid på betalväggar, tunt innehåll eller sidor som inte faktiskt besvarar ämnet.
- Att skapa utkast är repetitivt och felkänsligt, särskilt när flera personer kopierar rubriker och länkar in i WordPress.
- Statusspårning blir ett sidoprojekt och ärligt talat är det det första folk slutar göra när det är mycket.
Det du bygger: Google Sheets → AI-artikel → WordPress-utkast + statusspårning
Den här automatiseringen bevakar ditt Google Sheet efter rader som är redo att behandlas (till exempel allt med en flow-status som ”New”). När du triggar den hämtar n8n en batch av dessa rader, markerar dem som ”Processing” och hämtar källsidan bakom varje URL. Därefter gör den en snabb kvalitetskontroll så att skräpkällor inte smyger sig in i din pipeline. Om källan ser användbar ut sammanfattar OpenAI först nyckelpunkterna och genererar sedan ett helt nytt artikelutkast baserat på ämnet och sammanfattningen. Till sist formaterar arbetsflödet innehållet till något som WordPress tar emot utan strul, skapar ett utkastinlägg och skriver tillbaka utkastlänken och slutstatus till samma rad i Google Sheets.
Arbetsflödet börjar med ett Google Sheet som kö. OpenAI gör grovjobbet (sammanfattning, sedan artikelskapande). WordPress tar emot ett utkast som du kan granska, redigera och publicera när det passar.
Det du bygger
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du publicerar 5 artiklar i veckan. Manuellt är det vanligt att lägga cirka 30 minuter på att samla anteckningar från en källa, cirka 60 minuter på att skriva utkastet och sedan ytterligare 15 minuter på formatering och att skapa WordPress-utkastet. Det blir ungefär 2 timmar per inlägg, eller cirka 10 timmar i veckan. Med det här arbetsflödet lägger du kanske 10 minuter på att sätta upp en rad (ämne + käll-URL) och granskar sedan det färdiga WordPress-utkastet när det är klart. Du redigerar och faktagranskar fortfarande, men du slipper mycket av jobbet med tomt dokument.
Innan du börjar
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att lagra ämnen, käll-URL:er och statusar.
- WordPress som tar emot utkast via REST API.
- OpenAI API-nyckel (hämta den från OpenAI-dashboardens sida för API-nycklar).
Kunskapsnivå: Medel. Du kommer inte att skriva kod, men du behöver koppla in autentiseringar och bekräfta att dina sheet-kolumner matchar det som arbetsflödet förväntar sig.
Vill du att någon bygger detta åt dig? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).
Steg för steg
En webhook drar igång. Du triggar arbetsflödet när du är redo att generera utkast (till exempel en gång per dag eller när du har lagt till nya rader).
Google Sheets blir inköskön. n8n letar efter rader där din flow-status visar att de är nya och behandlar dem i batchar så att du inte överbelastar WordPress eller din AI-användning.
Arbetsflödet validerar och extraherar källinnehållet. Det hämtar sidan bakom varje käll-URL med en HTTP Request och kör sedan en villkorskontroll. Om sidan är tom, blockerad eller uppenbart oanvändbar loggar arbetsflödet en felstatus tillbaka till arket och går vidare.
OpenAI gör källan till ett användbart utkast. Först sammanfattar den källartikeln, sedan genererar ett andra AI-steg ett originalinlägg utifrån ditt ämne plus sammanfattningen. Ett litet formateringssteg förbereder innehållet för WordPress, därefter skapar WordPress-noden ett utkast och arket uppdateras med utkastlänken.
Du kan enkelt ändra sheet-kolumner och publiceringsbeteende så att det matchar din process, till exempel genom att styra vissa ämnen till specifika kategorier eller göra om utkast till schemalagda inlägg. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Konfigurera webhook-triggern
Konfigurera startpunkten för arbetsflödet så att externa system kan trigga artikelutkast.
- Lägg till noden Incoming Webhook Trigger och ställ in Path till
a1889360-e1bf-4b53-a96b-5eafa4b165a1. - Kopiera webhook-URL:en för produktion från Incoming Webhook Trigger för att använda i er externa triggerkälla.
- Bekräfta att exekveringsflödet startar med Incoming Webhook Trigger → Retrieve New Articles.
Tips: Håll webhook-sökvägen unik för att undvika oavsiktliga triggers från andra system.
Anslut Google Sheets
Koppla kalkylarket som lagrar inkommande artikelkällor och statusuppdateringar.
- Öppna Retrieve New Articles och välj kalkylarket Document
n8n Newspress Article Workflowoch SheetCheapnail. - Ställ in filtret i Retrieve New Articles så att Flow Status är lika med
New. - Inloggningsuppgifter krävs: Anslut era
googleSheetsOAuth2Api-inloggningsuppgifter i Retrieve New Articles. - I Mark As Processing ställer ni Operation till
updateoch mappar fält inklusive Flow Timing till{{ $now.setZone("Asia/Kolkata").toFormat("dd-MMM-yyyy HH:mm:ss") }}och Publish Status tillProcessing. - Inloggningsuppgifter krävs: Anslut era
googleSheetsOAuth2Api-inloggningsuppgifter i Mark As Processing, Log Error Status och Update Draft Status.
⚠️ Vanlig fallgrop: Säkerställ att fältet row_number finns och är skrivskyddat i arket, annars kommer uppdateringsoperationerna i Mark As Processing, Log Error Status och Update Draft Status att misslyckas.
Ställ in hämtning och villkorslogik
Hämta varje käll-URL och fortsätt bara om HTML-innehållet finns.
- I Iterate Records behåller ni standardinställningarna för batch så att rader behandlas en i taget.
- Konfigurera Retrieve Web Page med URL satt till
{{ $json.Source }}och behåll Timeout på10000ms. - Ställ in Conditional Check så att den validerar att leftValue finns genom att använda
{{ $json.data }}. - Bekräfta flödet: Mark As Processing → Retrieve Web Page → Conditional Check → Summarize Article (sant) eller Log Error Status (falskt).
Ställ in AI-bearbetning
Sammanfatta källans HTML och generera ett fullständigt artikelutkast.
- Öppna Summarize Article och välj modellen
gpt-4.1-mini. Användarmeddelandet ska hämta HTML med{{ $('Retrieve Web Page').item.json.data }}. - Inloggningsuppgifter krävs: Anslut era
openAiApi-inloggningsuppgifter i Summarize Article. - Öppna Generate Article, behåll jsonOutput aktiverat och säkerställ att källlänken injiceras med
{{ $('Iterate Records').item.json.Source }}. - Inloggningsuppgifter krävs: Anslut era
openAiApi-inloggningsuppgifter i Generate Article. - Verifiera AI-sekvensen: Summarize Article → Generate Article → Format Content.
Tips: Om artikelutdata ser tomt ut, kontrollera att HTML-payloaden finns i Retrieve Web Page och att Conditional Check släpper igenom.
Konfigurera utdata till WordPress och statusuppdateringar
Formatera AI-utdata, skapa ett utkastinlägg i WordPress och uppdatera arket med slutstatus.
- I Format Content behåller ni den medföljande JavaScript-koden för att extrahera title och content från AI-utdata.
- Konfigurera Create WP Draft med Title satt till
{{ $json.title }}, Content satt till{{ $json.content }}och Status satt tilldraft. - Inloggningsuppgifter krävs: Anslut era
wordpressApi-inloggningsuppgifter i Create WP Draft. - I Update Draft Status ställer ni Publish Link till
{{ $json.link }}och Publish Status till{{ $json.status }}, med matchning på row_number. - Bekräfta flödet: Format Content → Create WP Draft → Update Draft Status → Iterate Records.
Lägg till felhantering
Säkerställ att fel loggas tillbaka till arket när källans HTML inte kan hämtas.
- I Retrieve Web Page behåller ni On Error inställt på att fortsätta med vanlig output.
- I Conditional Check verifierar ni att den falska vägen är ansluten till Log Error Status.
- I Log Error Status ställer ni Publish Link till
{{ $('Retrieve Web Page').item.json.error.status }}och Flow Status tillError.
⚠️ Vanlig fallgrop: Om Retrieve Web Page inte returnerar error.status blir felloggen tom — testa med en ogiltig URL för att validera loggningen.
Testa och aktivera ert arbetsflöde
Kör ett fullständigt test för att validera end-to-end-automationen innan ni aktiverar den i produktion.
- Klicka på Execute Workflow och skicka en exempelrequest till URL:en för Incoming Webhook Trigger.
- Bekräfta att Retrieve New Articles hämtar rader med
Flow Status = Newoch att Mark As Processing uppdaterar raden tillProcessing. - Verifiera att ett WordPress-utkast skapas i Create WP Draft och att arket uppdateras av Update Draft Status med länken till utkastet.
- När allt är validerat växlar ni arbetsflödet till Active för att aktivera användning i produktion.
Felsökningstips
- Google Sheets-autentisering kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först skärmen för Credentials i n8n och dina Google Cloud-inställningar för OAuth consent.
- Om du hämtar källor med HTTP Request blockerar vissa sajter botar eller kräver cookies. När du ser tomt innehåll, testa en annan käll-URL eller lägg till headers som user-agent i HTTP Request-noden.
- Standardprompterna i OpenAI-noderna är generiska. Lägg in din tonalitet tidigt (ton, målgrupp, formateringsregler), annars kommer du ändå att behöva skriva om varje utkast.
Snabba svar
Cirka 30 minuter om dina autentiseringar för Sheet och WordPress är klara.
Nej. Du kopplar konton, klistrar in några ID:n och justerar prompterna så att de matchar din stil.
Ja. n8n har ett gratis alternativ för egen drift 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 API-kostnader, som vanligtvis bara är några dollar i månaden vid lätt publicering.
Två alternativ: n8n Cloud (hanterat, enklast uppsättning) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärt och hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det bör du. De flesta team anpassar Google Sheets-kolumnerna (för kategori, författare eller mål-nyckelord), justerar prompterna för ”Summarize Article” och ”Generate Article” för tonalitet och struktur och uppdaterar noden ”Create WP Draft” för att sätta kategorier, taggar eller till och med ändra inläggsstatus.
Oftast handlar det om autentisering eller behörigheter för WordPress REST API. Bekräfta att användaren du autentiserar med kan skapa inlägg och dubbelkolla webbplats-URL:en i WordPress-autentiseringen. Vissa säkerhetsplugin blockerar REST-anrop som standard, vilket kan se ut som ”slumpmässiga” fel. Om det fungerar en gång och sedan slutar, rotera autentiseringsuppgifterna och testa igen med en enda rad.
På en typisk n8n Cloud-plan kör team utan problem några tusen körningar per månad, och egen drift tar bort taket för antal körningar (din server blir begränsningen). I praktiken är flaskhalsarna källwebbplatserna du hämtar från och hur lång tid OpenAI-genereringen tar per artikel. Batchbearbetning hjälper dig att styra takten så att du inte fyller WordPress med utkast. Om du vill ha daglig output, börja med 5–10 rader per körning och skala upp när du är nöjd med kvaliteten.
Ofta, ja. n8n hanterar grenlogik (som ”dålig källa → logga fel → fortsätt”) utan att förvandla din automatisering till en hög av separata zaps eller scenarier. Du får också ett riktigt kodsteg för formatering, vilket är praktiskt när WordPress-HTML behöver vara konsekvent. Och om du kör egen drift betalar du inte per task på samma sätt. Zapier eller Make kan fortfarande vara rätt val för enkla tvåstegsflöden, men det här växer oftast förbi det snabbt. Prata med en automatiseringsexpert om du vill ha en rekommendation för din volym och granskningsprocess.
När det här väl är igång slutar ditt Google Sheet att vara en lista med goda intentioner och börjar fungera som en produktionslinje. Arbetsflödet tar hand om de repetitiva delarna och du behåller kontrollen där det spelar roll: granskning, korrekthet och slutlig 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.