Din innehållskalender ser organiserad ut i Google Sheets. Sedan kommer publiceringsdagen, och allt förvandlas till flikar, inloggningar, kopiera-klistra-in-formatering och “var tog den där bildfilen vägen?”-kaos.
Den här Sheets WordPress-automationen träffar innehållsansvariga först, om vi ska vara ärliga. Men byråägare som jonglerar flera kunder och SEO-ansvariga som försöker publicera konsekvent känner också av friktionen. Resultatet är enkelt: köade, Elementor-färdiga WordPress-inlägg som publiceras snyggt och lämnar ett pålitligt historikspår.
Nedan ser du hur arbetsflödet körs, vad det automatiserar och vad du kan förvänta dig tillbaka (tid, konsekvens och färre “varför är layouten trasig?”-överraskningar).
Så fungerar den här automatiseringen
Hela n8n-arbetsflödet, från trigger till slutresultat:
n8n Workflow Template: Google Sheets till WordPress, Elementor-inlägg i kö
flowchart LR
subgraph sg0["On form submission1 Flow"]
direction LR
n0@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", 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/code.svg' width='40' height='40' /></div><br/>Modify Prompt"]
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/code.svg' width='40' height='40' /></div><br/>WordpressAuth"]
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "WordpressData", pos: "b", h: 48 }
n12@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
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/form.svg' width='40' height='40' /></div><br/>On form submission1"]
n14["<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/>HTML to Elementor Format"]
n15@{ icon: "mdi:database", form: "rounded", label: "Client", pos: "b", h: 48 }
n16@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n17@{ icon: "mdi:database", form: "rounded", label: "Get row(s) in sheet", pos: "b", h: 48 }
n18@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n19@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map Data", pos: "b", h: 48 }
n20@{ icon: "mdi:database", form: "rounded", label: "Append row in sheet", pos: "b", h: 48 }
n21@{ icon: "mdi:database", form: "rounded", label: "Update row in sheet", pos: "b", h: 48 }
n22@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Scheduled", pos: "b", h: 48 }
n23@{ icon: "mdi:robot", form: "rounded", label: "Generate an image", pos: "b", h: 48 }
n24["<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/>Post Blog"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Upload Image"]
n15 --> n1
n1 --> n14
n19 --> n2
n24 --> n20
n22 --> n21
n25 --> n4
n2 --> n15
n0 -.-> n1
n3 --> n23
n4 --> n24
n18 --> n19
n16 --> n17
n23 --> n25
n20 --> n22
n17 --> n18
n13 --> n19
n21 --> n18
n12 -.-> n1
n14 --> n3
end
subgraph sg1["Google Sheets Flow"]
direction LR
n5["<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/n8n.svg' width='40' height='40' /></div><br/>n8n | get wf"]
n6["<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/n8n.svg' width='40' height='40' /></div><br/>n8n | update"]
n7@{ icon: "mdi:play-circle", form: "rounded", label: "Google Sheets Trigger", 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/code.svg' width='40' height='40' /></div><br/>Write JSON"]
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Replace values", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format to 'values'", pos: "b", h: 48 }
n11@{ icon: "mdi:database", form: "rounded", label: "Get all values", pos: "b", h: 48 }
n8 --> n5
n5 --> n9
n11 --> n10
n9 --> n6
n10 --> n8
n7 --> 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 n13,n16,n7 trigger
class n1,n23 ai
class n12 aiModel
class n0 ai
class n22 decision
class n15,n17,n20,n21,n11 database
class n24,n25 api
class n2,n3,n14,n8 code
classDef customIcon fill:none,stroke:none
class n2,n3,n13,n14,n24,n25,n5,n6,n8 customIcon
Problemet: att publicera från ett kalkylark blir fortfarande manuellt arbete
Google Sheets är toppen för planering. WordPress fungerar bra för publicering. Elementor ser riktigt bra ut när du bygger direkt i det. Röran uppstår i överlämningen. Någon måste ta en rad från arket, göra den till ett riktigt inlägg, formatera rubriker, lägga in länkar, skapa en utvald bild, ladda upp media och sedan kontrollera sidan så att Elementor inte gjort något märkligt med avstånd. Gör du detta över flera kunder blir det ett tyst tidsläckage som dessutom skapar onödiga misstag.
Friktionen bygger på. Här är var det fallerar i verkligheten.
- Även en “snabb” publicering kan ta runt 30 minuter när du räknar in formatering, bilder och en sista QA-koll.
- Elementor-layouter är lätta att sabba när innehåll klistras in från dokument eller AI-verktyg, så någon får bygga om sektioner för hand.
- Publiceringsscheman glider eftersom processen beror på att en person är tillgänglig vid rätt tidpunkt, inte på planen i arket.
- Utan en tydlig publiceringslogg slösar team tid på att fråga “gick den här live?” och leta efter länkar i Slack-trådar.
Lösningen: köa i Google Sheets, publicera Elementor-färdiga inlägg automatiskt
Det här arbetsflödet gör ditt Google Sheet till ett lättviktigt publiceringssystem för Elementor-baserade WordPress-sajter. Du kan trigga det på beställning (via en n8n-formulärinsändning) eller låta det köra på schema (det kontrollerar din innehållskalender varje timme). När ett inlägg ska ut, hämtar det raddetaljerna, slår upp rätt kunduppgifter och skickar briefen till en AI-agent som drivs av Google Gemini. Agenten genererar SEO-optimerat innehåll och ett koncept för utvald bild. Därefter formar ett anpassat konverteringssteg om innehållet till en native Elementor-JSON-struktur så att inlägget ärver sajtens stil och responsivitet, istället för att se ut som ett inklistrat dokument. Till sist laddar arbetsflödet upp media, publicerar blogginlägget via HTTP-anrop och skriver in en korrekt post i ditt historikark så att du får en permanent logg.
Arbetsflödet startar antingen med en schemalagd kontroll av arket eller en snabb formulärinsändning. Därifrån skapar Gemini utkastet och bilden, innehållet konverteras till en Elementor-vänlig struktur och WordPress tar emot ett inlägg som ser ut som om det byggts direkt i Elementor. Publiceringsloggen uppdateras direkt efter att det gått live, så du kan följa leveransen utan gissningar.
Det här får du: automatisering vs. resultat
| Vad arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att du hanterar 10 inlägg i veckan över 3 kundsajter. Manuellt tar en “gjord på rätt sätt”-publicering i Elementor ofta omkring 30 minuter per inlägg (formatering, utvald bild, uppladdning, QA), vilket blir cirka 5 timmar i veckan. Med det här arbetsflödet är ditt “jobb” att lägga till rader i Schedule-arket och fylla i några fält, kanske 5 minuter per inlägg. Arbetsflödet kör varje timme, genererar innehåll och bild, publicerar och loggar. Det är ungefär 4 timmar tillbaka de flesta veckor, plus mindre layoutstädning.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att hantera kunder, schema och historik.
- WordPress (Elementor-sajt) för att publicera inlägg med native styling.
- Google Gemini API-nyckel (hämta den från Google AI Studio)
Kunskapsnivå: Medel. Du kopplar konton, klistrar in API-nycklar och justerar ett par arbetsflödesfält så att de matchar dina kolumner i arket och din WordPress-setup.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En schemalagd kontroll eller en formulärinsändning sätter igång. Du kan publicera på beställning via ett n8n-formulär (praktiskt vid snabba kundönskemål), eller köra den schemalagda triggern som kontrollerar ditt Google Sheet varje timme efter poster markerade som redo att publiceras.
Arbetsflödet hämtar rätt kund- och inläggsdetaljer. Det slår upp kundposten (inklusive WordPress-appuppgifter) och sammanfogar det med dina planerade inläggsfält från Schedule-arket, så att varje kund får rätt sajt, ton och regler.
Gemini genererar innehåll och en tillgång för utvald bild. AI-agenten använder din förbättrade prompt och kan ta hänsyn till konkurrent-URL:er, så att utkastet inte bara blir “AI-fyllnad”. Ett separat genereringssteg tar fram bilden, som sedan förbereds för uppladdning.
Elementor-formatering och publicering sker automatiskt. Ett anpassat konverteringssteg gör om den genererade HTML:en till Elementor-JSON, sedan laddar arbetsflödet upp bilden och publicerar inlägget via HTTP-anrop till WordPress. Efter publicering lägger det till en rad i ditt historikark och uppdaterar status på schemaraden.
Du kan enkelt ändra kolumnerna i arket och reglerna i prompten så att de matchar din process. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera triggrarna
Det här arbetsflödet kan starta från en uppdatering i ett kalkylark, en formulärinsändning eller ett schema. Konfigurera varje trigger så att den bevakar rätt källa och timing.
- Öppna Sheets Update Trigger och välj det Google Sheet och den uppdateringshändelse ni vill övervaka.
- Öppna Form Submission Trigger och kopiera den genererade formulär-URL:en; Webhook ID är
4e898d0d-43f3-480b-8fc2-f35251cebec9. - Öppna Scheduled Automation Trigger och ställ in schemaintervallet för batchbearbetning.
Inloggningsuppgifter krävs: anslut era Google Sheets Trigger-inloggningsuppgifter i Sheets Update Trigger.
Steg 2: anslut Google Sheets
Flera Google Sheets-noder läser, skriver och uppdaterar rader. Konfigurera dem med samma kalkylark och intervall vid behov.
- Öppna Fetch Spreadsheet Values och välj kalkylarket och intervallet som används för att hämta värden för JSON-sammansättning.
- Öppna Client Sheet Lookup och ställ in kalkylarket och intervallet som används för att hitta kundspecifika promptdata.
- Öppna Retrieve Sheet Rows och konfigurera bladet och intervallet som används för schemalagda batchhämtningar.
- Öppna Append Sheet Row och ange målbladet där nya publicerade resultat ska loggas.
- Öppna Modify Sheet Row och mappa radidentifierarna som används för att uppdatera poster efter schemalagd bearbetning.
Inloggningsuppgifter krävs: anslut era Google Sheets-inloggningsuppgifter för alla Google Sheets-noder (Fetch Spreadsheet Values, Client Sheet Lookup, Retrieve Sheet Rows, Append Sheet Row, Modify Sheet Row).
Steg 3: konfigurera AI- och minneskomponenter
AI-stacken genererar innehåll och bilder, med en chattmodell med valfritt minneskontext. Säkerställ att modell och minne är korrekt anslutna.
- Öppna Gemini Chat Model och anslut era Google Gemini-inloggningsuppgifter så att den används som språkmodell för Intelligent Agent.
- Öppna Intelligent Agent och säkerställ att den använder Gemini Chat Model som AI-språkmodell.
- Verifiera att Compact Memory Buffer är kopplad som minne för Intelligent Agent (inloggningsuppgifter ska läggas till i den överordnade AI-noden, inte i minnesunder-noden).
- Öppna Generate Image Asset och anslut era Google Gemini-inloggningsuppgifter för bildgenerering.
Inloggningsuppgifter krävs: anslut era Google Gemini-inloggningsuppgifter i Gemini Chat Model och Generate Image Asset.
Steg 4: konfigurera innehållsbearbetning och mappning
Det här steget standardiserar inkommande data, förfinar prompts och förbereder strukturerade payloads för efterföljande steg.
- I Map Fields mappar ni inkommande fält från Form Submission Trigger till ert interna schema (t.ex. title, topic, keywords).
- I Refine Prompt Text lägger ni till den promptformningslogik som krävs innan anropet till Client Sheet Lookup.
- I Convert to Elementor HTML formaterar ni AI-utdata till HTML-block som är kompatibla med Elementor innan autentiseringskonfigurationen.
- I Format Values List och Compose JSON Payload formar ni listutdata och bygger JSON-strukturen för arbetsflödesposter.
- I Substitute Field Values injicerar ni data som returneras av Retrieve Workflow Data innan ni skickar vidare till Update Workflow Entry.
- I Prepare WordPress Data mappar ni alla fält (title, content, image ID, status) som används av publiceringsanropet.
Steg 5: konfigurera WordPress-publicering och mediauppladdning
Dessa HTTP-anrop laddar upp den genererade bilden och publicerar inlägget. Säkerställ att autentisering och payloads är korrekta.
- I WordPress Auth Setup lägger ni till autentiseringslogiken (Basic Auth eller Application Passwords) som används av efterföljande HTTP-anrop.
- Öppna Upload Media Asset och ställ in URL-endpointen till er WordPress-mediaendpoint (t.ex.
/wp-json/wp/v2/media) och inkludera auth-headers från WordPress Auth Setup. - Öppna Publish Blog Post och ställ in URL-endpointen till er endpoint för inlägg (t.ex.
/wp-json/wp/v2/posts) med payloaden från Prepare WordPress Data. - Bekräfta flödet efter publicering: Publish Blog Post → Append Sheet Row.
Steg 6: konfigurera schemalagd bearbetning och uppdateringar av arbetsflöde
Den schemalagda vägen hämtar rader, itererar genom batchar och uppdaterar arbetsflödesdata som används för efterföljande substitutioner.
- Verifiera att Scheduled Automation Trigger skickar utdata till Retrieve Sheet Rows och sedan till Iterate Items Batch för batchning.
- I Iterate Items Batch ställer ni in batchstorleken så att den matchar era API-gränser och kapaciteten för efterföljande bearbetning.
- Bekräfta att Scheduled Branch Check utvärderar villkoret som avgör om Modify Sheet Row ska köras.
- Säkerställ att Retrieve Workflow Data är ansluten till Substitute Field Values och Update Workflow Entry så att arbetsflödesposter hålls synkroniserade.
Steg 7: testa och aktivera ert arbetsflöde
Kör end-to-end-tester för varje trigger och bekräfta att Sheets-uppdateringar, AI-utdata och WordPress-publicering lyckas.
- Kör Form Submission Trigger manuellt med en testinsändning för att validera innehållsvägen via Map Fields, Intelligent Agent och Publish Blog Post.
- Trigga Sheets Update Trigger genom att redigera en rad och bekräfta att Fetch Spreadsheet Values → Format Values List → Compose JSON Payload slutförs.
- Kör Scheduled Automation Trigger en gång för att verifiera batchloopen via Retrieve Sheet Rows och Iterate Items Batch.
- Kontrollera att resultaten är lyckade: ett nytt mediaobjekt uppladdat, ett WordPress-inlägg skapat och en loggrad tillagd av Append Sheet Row.
- Aktivera arbetsflödet genom att växla det till Active när testerna passerar.
Vanliga fallgropar
- Google Sheets-inloggningar kan gå ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först status för credential-kopplingen i n8n och Google-kontots åtkomst till kalkylarket.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- WordPress applösenord kan återkallas och vissa säkerhetsplugins blockerar REST-anrop. Om publiceringen misslyckas, kontrollera sajtens inställningar för applösenord samt eventuella brandväggs- eller säkerhetsloggar.
Vanliga frågor
Cirka 45 minuter om ditt ark och din WordPress-åtkomst är redo.
Nej. Du kopplar främst konton och mappar fält. Kodstegen finns redan i arbetsflödet; oftast redigerar du bara platshållare så att de matchar ditt ark och din sajt.
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 volymer. Du behöver också räkna med kostnader för Google Gemini API-användning, som vanligtvis är låg för några inlägg per vecka.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) 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 serverhantering.
Ja, och det är hela poängen. Du kan ha separata kundregler i kundarket och sedan justera steget för promptförfining så att varje kund får rätt ton, länkregler och formateringsbegränsningar. Vanliga justeringar är att ändra hur nyckelord matas in, lägga till obligatoriska avsnitt (FAQ, jämförelser, produktomnämnanden) och byta från “publicera nu” till “bara schemalägg” genom att justera den schemalagda grenen och logiken för radstatus.
Oftast är det applösenordet eller behörigheter. Skapa ett nytt WordPress applösenord för användaren, uppdatera det i arbetsflödet och bekräfta att användaren kan skapa inlägg. Om du kör ett säkerhetsplugin eller en brandvägg hos hosten, kontrollera om REST API-anrop blockeras, eftersom det här arbetsflödet publicerar via HTTP-anrop. Begränsningar i hastighet (rate limits) är mindre vanliga här, men kan dyka upp om du publicerar många inlägg i en kort burst.
Många. På n8n Cloud Starter begränsas du av månatliga körningar, och varje inlägg kan ta flera körningar beroende på hur du batchar rader. Om du kör egen drift finns ingen körningsgräns i n8n i sig, så din praktiska gräns är serverresurser plus WordPress- och Gemini-genomströmning. I praktiken kör byråer arbetsflöden som detta för dussintals inlägg per vecka utan problem när batching och timeouts är intrimmade.
För Elementor-färdig publicering är n8n vanligtvis en bättre match. Du kan köra anpassad JavaScript för konverteringen från HTML till Elementor-JSON, bygga grenlogik tydligt för schemalagd vs publicering på beställning och köra egen drift när volymen växer. Zapier och Make kan absolut flytta rader och anropa WordPress, men så fort du behöver transformationer i flera steg och robust loggning blir det lätt pilligt och dyrt. Dessutom är det enklare att lagra och återanvända kunduppgifter på ett strukturerat sätt här. Prata med en automationsexpert om du vill ha en snabb rekommendation baserat på din volym och antal kunder.
När detta väl rullar slutar arket vara en önskelista och börjar fungera som ett faktiskt publiceringssystem. Arbetsflödet tar hand om de repetitiva delarna så att du kan lägga tiden på strategi, granskning och resultat.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.