Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Google Sheets till GitHub, Jekyll-inlägg klara

Rickard Andersson Partner, Nodenordic.se

Innehållsproduktion fastnar på tråkiga ställen. En ämneslista bor i ett kalkylark, researchen är utspridd över flikar och publiceringen blir en försiktig copy-paste-rutin som du måste få “precis rätt” varje gång.

Den här automatiseringen av Jekyll-inlägg slår hårdast mot stressade marknadsförare, men grundare som levererar thought leadership och byråteam som hanterar kundbloggar känner också av det. Du lägger en timme på processen i stället för på att skriva, redigera eller marknadsföra.

Det här flödet förvandlar en ämnesrad i Google Sheets till en strukturerad, Jekyll-klar Markdown-fil som committas till GitHub och markerar sedan ämnet som klart. Du får se hur det fungerar, vad du behöver och var team oftast kör fast.

Så fungerar automatiseringen

Hela n8n-flödet, från trigger till slutligt resultat:

n8n Workflow Template: Google Sheets till GitHub, Jekyll-inlägg klara

Problemet: Jekyll-publicering blir till kalkylarkskaos

Det låter enkelt: välj ett ämne, gör research, skriv inlägget och publicera. I praktiken dör den “enkla” delen så fort du behöver konsekvent front matter, korrekta filnamn, rätt _posts/-sökväg och ett pålitligt sätt att följa upp vad som är klart. En person uppdaterar arket, en annan publicerar sent, och plötsligt har du dubbletter, saknade datum eller inlägg som bygger lokalt men skapar fel på GitHub Pages. Värst av allt, om vi ska vara ärliga: du kan inte avgöra om flaskhalsen är skrivandet eller processen runt omkring.

Friktionen byggs på.

  • Du tappar ungefär 30 minuter per inlägg bara på att “sätta upp” researchen över flikar och källor.
  • Front matter glider över tid, vilket ger inkonsekventa kategorier, taggar och utdrag.
  • GitHub-commits blir en manuell ceremoni, så inlägg fastnar i draft-limbo i flera dagar.
  • Statusspårning i kalkylark är lätt att glömma, så din “pipeline” är aldrig korrekt.

Lösningen: Google Sheets → researchat utkast → GitHub-commit

Det här n8n-flödet tar din ämnesbacklogg i Google Sheets och gör om den till publicerbara Jekyll-inlägg, utan att du behöver sy ihop delarna manuellt. Det startar enligt schema, hämtar nästa rad där status är tom, och använder sedan titeln som “single source of truth”. Därefter samlar det in kontext via Tavily-sökning och (valfritt) Wikipedia, kondenserar researchen till något som AI:n faktiskt kan använda, och ber Gemini generera ett Markdown-inlägg med YAML front matter. Till sist bygger det filnamn och commit-meddelande, committar .md-filen till din GitHub-repos _posts/-katalog och markerar raden i Google Sheets som klar när committen lyckas.

Det börjar med en schemalagd trigger och en enda “nästa ämne”-hämtning i Google Sheets. Research och sammanfattning sker i mitten, så AI:n inte behöver gissa. Resultatet är en Jekyll-klar Markdown-fil i GitHub, redo för GitHub Pages att bygga.

Vad du får: automatisering vs. resultat

Exempel: så här ser det ut i praktiken

Säg att du publicerar 3 tekniska inlägg i veckan från en Google Sheets-backlogg. Manuellt kan du lägga cirka 30 minuter på att samla källor, ytterligare 20 minuter på att formatera Markdown och YAML front matter, och sedan 10 minuter på att committa, lägga filen rätt och uppdatera arket. Säg runt 1 timme per inlägg. Med det här flödet lägger du kanske 5 minuter på att underhålla ämnesraden, väntar på att körningen ska bli klar och gör en snabb redaktionell genomgång. Det är ungefär 2 till 3 timmar tillbaka varje vecka, och din GitHub-historik hålls snygg.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för din ämneslista och statusspårning
  • GitHub för att lagra inlägg i din Jekyll-repo
  • Tavily API-nyckel (hämta den i din Tavily-dashboard)
  • Gemini API-nyckel (hämta den via Google AI Studio / Google Cloud)

Kunskapsnivå: Medel. Du kopplar behörigheter, bekräftar repo-sökvägar och justerar en prompt, men du behöver inte skriva kod om du inte vill djupare anpassning.

Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Ett schema drar igång allt. Flödet körs dagligen (eller i den takt du väljer) så att din innehållsmotor fortsätter rulla även när kalendern inte gör det.

En enda ämnesrad blir input. n8n läser Google Sheets, hittar nästa rad där status är tom och plockar ut titeln så att varje efterföljande steg hålls synkat.

Research samlas in och kondenseras. Tavily hämtar relevanta källor för ämnet, Wikipedia kan lägga till bakgrund, och ett sammanfattningssteg förvandlar textmassan till en tajt brief som Gemini kan använda.

Gemini skriver, GitHub publicerar. AI:n genererar Markdown med YAML front matter, n8n sätter filnamn och commit-detaljer och committar sedan filen till din repos _posts/-katalog. Efter en lyckad commit markeras raden i Google Sheets som klar.

Du kan enkelt ändra prompten och filnamnsmönstret så att det matchar din sajt och dina redaktionella regler. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-implementeringsguide

Steg 1: Konfigurera den schemalagda triggern

Ställ in schemat som startar automatiseringen så att den kan hämta nästa bloggäme varje dag.

  1. Lägg till och öppna Scheduled Automation Trigger.
  2. Ställ in schemaregeln så att den körs dagligen vid Trigger At Hour 9.
  3. Bekräfta att arbetsflödets tidszon matchar ert önskade schema (det här arbetsflödet använder Asia/Kolkata).

Om ni vill ha flera inlägg per dag, lägg till fler schemaposter i Scheduled Automation Trigger.

Steg 2: Anslut Google Sheets

Hämta ett opublicerat ämne från ett kalkylark och uppdatera senare dess status till ”done”.

  1. Öppna Retrieve Topic from Sheet och välj ert kalkylark.
  2. Ställ in Document till YOUR_GOOGLE_SHEETS_DOCUMENT_ID och Sheet till gid=0.
  3. Behåll filtret så att status är lika med = för att rikta in rader som väntar på bearbetning.
  4. Behörighet krävs: Anslut era googleSheetsOAuth2Api-uppgifter.
  5. Öppna Update Sheet Status Done, ställ in Operation till update och mappa status till done samt row_number till {{$json.row_number}}.
  6. Behörighet krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Update Sheet Status Done.

⚠️ Vanlig fallgrop: Uppdateringsnoden förlitar sig på row_number; se till att ert ark innehåller den här kolumnen och att den returneras av Retrieve Topic from Sheet.

Steg 3: Förbered ämnet och forskningskontexten

Normalisera ämnet, kör en webbsökning och kondensera toppresultaten till ett kompakt kontextblock.

  1. I Isolate Topic Title, behåll tilldelningen där topic är satt till {{ $json.Title }}.
  2. Öppna Tavily Web Lookup och ställ in Query till {{ $json.topic }}.
  3. Säkerställ att options.search_depth är satt till advanced för djupare resultat.
  4. Behörighet krävs: Anslut era tavilyApi-uppgifter.
  5. I Condense Search Findings, behåll JavaScript-koden som bygger Topic och Context från de tre främsta resultaten.

Steg 4: Konfigurera AI-skrivande med Gemini

Generera ett fullt formaterat Markdown-blogginlägg med hjälp av den kondenserade kontexten och verktygsstöd för Wikipedia.

  1. Öppna Gemini Chat Language Model och ställ in Model Name till models/gemini-2.5-pro.
  2. Behörighet krävs: Anslut era googlePalmApi-uppgifter i Gemini Chat Language Model.
  3. Öppna Compose Article via Gemini och behåll Prompt Type satt till define.
  4. Ställ in Text till mallen som injicerar {{$json["Topic"]}} och {{$json["Context"]}}.
  5. Behåll det detaljerade systemMessage som definierar YAML front matter och Markdown-formatering.
  6. Bekräfta att Retrieve Wikipedia Details är ansluten som ett AI-verktyg till Compose Article via Gemini.

AI-verktygsnoder som Retrieve Wikipedia Details ärver behörigheter från den överordnade språkmodellen—se till att behörigheter läggs till i Gemini Chat Language Model, inte i verktygsnoden.

Steg 5: Konfigurera publicering till GitHub

Bygg Markdown-filnamnet och innehållet, och committa det sedan till ert GitHub-repository.

  1. I Assemble Commit File, ställ in filePath till {{ $now.format('yyyy-MM-dd') }}-{{ $('Isolate Topic Title').item.json.topic.toLowerCase().replace(/ /g, '-') }}.md.
  2. Ställ in fileContent till {{$json["output"]}}.
  3. Ställ in commitMessage till Add blog post: {{ $('Retrieve Topic from Sheet').item.json.Title }}.
  4. Öppna Publish Post to GitHub och ställ in Owner till YOUR_GITHUB_USERNAME samt Repository till YOUR_REPOSITORY_NAME.
  5. Ställ in File Path till _posts/{{ $json.filePath }}, File Content till {{ $json.fileContent }} och Commit Message till {{ $json.commitMessage }}.
  6. Behörighet krävs: Anslut era githubOAuth2Api-uppgifter.

⚠️ Vanlig fallgrop: Säkerställ att repot stödjer Jekyll-liknande inlägg i katalogen _posts och att filnamnsformatet matchar reglerna för er site generator.

Steg 6: Testa och aktivera ert arbetsflöde

Kör ett manuellt test för att validera dataflödet och aktivera sedan schemat för produktion.

  1. Klicka på Execute Workflow för att köra ett manuellt test från Scheduled Automation Trigger.
  2. Verifiera att Retrieve Topic from Sheet returnerar en rad och att Isolate Topic Title matar ut en topic.
  3. Kontrollera att Compose Article via Gemini matar ut en fullständig Markdown-artikel och att Publish Post to GitHub skapar en fil i _posts.
  4. Bekräfta att Update Sheet Status Done sätter arkradens status till done.
  5. Slå på arbetsflödet Active för att aktivera den schemalagda publiceringscykeln.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • OAuth-behörigheter för Google Sheets kan löpa ut eller sakna åtkomst till kalkylarket. Om ämnen slutar laddas, kontrollera behörigheten i n8n och bekräfta att arket är delat med det anslutna Google-kontot.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder misslyckas på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in ditt varumärkes röst tidigt, annars kommer du redigera output för alltid.
  • GitHub OAuth-behörigheter är lätta att ge för snävt. Om commits misslyckas, kontrollera scopes för GitHub-app/token och bekräfta att flödet pekar på rätt repo och rätt _posts/-sökväg.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen av Jekyll-inlägg?

Cirka 45 minuter om dina behörigheter och din repo redan är redo.

Behöver jag kunna koda för att automatisera publicering av Jekyll-inlägg?

Nej. Du kommer mest koppla konton och redigera en prompt. Den enda “tekniska” delen är att bekräfta sökvägen i din Jekyll-repo och filnamnsformatet.

Är n8n gratis att använda för det här flödet för automatisering av Jekyll-inlägg?

Ja. n8n har ett gratis alternativ för egen drift och en gratis testperiod 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 Tavily- och Gemini-API-användning.

Var kan jag hosta n8n för att köra den här automatiseringen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serveradministration.

Kan jag anpassa det här flödet för automatisering av Jekyll-inlägg för en annan front matter-mall?

Ja, och det är en av de bästa justeringarna du kan göra. Uppdatera instruktionerna i agenten “Compose Article via Gemini” så att YAML:en matchar din sajt (kategorier, taggar, författare, utdrag, till och med en innehållsförteckning). Om du också vill ha ett annat filnamnsschema ändrar du det i steget “Assemble Commit File” där sökväg och commit-meddelande förbereds. Team lägger ofta till ett eget slug-fält från Google Sheet, tvingar standardkategorier och standardiserar utdragslängd.

Varför misslyckas min GitHub-anslutning i det här flödet?

Oftast handlar det om OAuth-scope eller repo-åtkomst. Anslut GitHub OAuth2-behörigheten på nytt i n8n, bekräfta att den kan skriva till målrepositoriet och dubbelkolla _posts/-sökvägen du committar till. Om det bara misslyckas ibland kan rate limiting eller ett tillfälligt GitHub-avbrott vara orsaken, så titta i körloggarna för exakt svar.

Hur många inlägg kan den här automatiseringen av Jekyll-inlägg hantera?

På egenhostad n8n begränsas det i praktiken av din server och dina API-kvoter.

Är den här automatiseringen av Jekyll-inlägg bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här flödet kräver lite mer än enkel “A till B”. Du hämtar flera källor, kondenserar research, genererar långform-Mardown och committar filer till en specifik repo-sökväg, vilket är där n8n:s flexibilitet hjälper. Det stödjer också egen drift, så du betalar inte mer bara för att du kör det dagligen. Zapier eller Make kan fortfarande fungera om du håller det väldigt enkelt, men du kan slå i taket när logiken blir mer grenad. Prata med en automationsexpert om du vill ha en snabb rekommendation för din stack.

När detta väl rullar slutar ditt kalkylark vara en kyrkogård av “ämnen någon gång” och börjar fungera som en riktig publiceringspipeline. Flödet tar hand om det repetitiva. Du tar hand om idéerna och den sista redigeringen.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal