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

CSV till GitHub: Jekyll-inlägg publiceras och delas

Rickard Andersson Partner, Nodenordic.se

Din innehållskalender ser bra ut på papper. Sedan kommer tisdagen, ett kundsamtal drar ut på tiden och den där ”snabba publiceringen” blir ett halvfärdigt utkast som ligger i en mapp som ingen kollar.

Marknadschefer känner av det när SEO-inlägg släpar efter och rankingen svajar. En soloföretagare känner av det när ”jag publicerar senare” blir en vecka. Och byråer? Ni jonglerar sajter, godkännanden och deadlines, vilket är exakt varför Jekyll-publiceringsautomation är så attraktivt.

Det här arbetsflödet förvandlar en enkel CSV-lista till färdiga Jekyll-inlägg som committas till GitHub och kan sedan, valfritt, delas på LinkedIn (och X). Du får se vad som automatiseras, vilka resultat du kan förvänta dig och vad du behöver för att köra det stabilt.

Så fungerar den här automationen

Hela n8n-arbetsflödet, från trigger till slutresultat:

n8n Workflow Template: CSV till GitHub: Jekyll-inlägg publiceras och delas

Problemet: att publicera från en innehållslista är fortfarande manuellt

De flesta team har inte svårt att få fram idéer. De har svårt att leverera konsekvent. En CSV (eller ett kalkylark) blir ”single source of truth”, men någon måste fortfarande göra varje rad till ett Markdown-inlägg, lägga till front matter, formatera rubriker, skapa en slug, committa till GitHub och publicera på rätt datum. Missar du en liten detalj får du korrupta byggen, dubblerade inlägg eller ett utkast som aldrig lämnar någons anteckningar. Det är inte svårt arbete. Det är repetitivt arbete, och det stjäl tyst några timmar varje vecka.

När kalendern blir full byggs friktionen på.

  • Du skriver om samma front matter-fält om och om igen, och ett enda stavfel kan krascha Jekyll-bygget.
  • Publicering försenas eftersom ”committa till GitHub” behandlas som ett tekniskt steg, inte ett innehållssteg.
  • Delning i sociala medier blir en eftertanke, så inlägg går live utan någon distribution.
  • Även när du publicerar kan du inte lita på att SEO-fälten är konsekventa i varje inlägg.

Lösningen: CSV-styrda inlägg som skapas, schemaläggs, committas och delas

Det här n8n-arbetsflödet börjar med en enkel input: en lokal CSV-fil (till exempel /data/recipes.csv) med din titel, en kort beskrivning/prompt, primärt nyckelord, sekundära nyckelord och ett publiceringsdatum. När arbetsflödet körs (schemalagt eller manuellt) läser det CSV:en, bearbetar rader i batchar och skickar varje post till en AI-copywriter-agent byggd med LangChain och en OpenAI-chattmodell. Agenten skriver en strukturerad långformad Markdown-artikel som följer dina SEO-regler, sedan bygger en Markdown Builder korrekt formaterad Jekyll front matter, skapar en SEO-vänlig slug och förbereder filsökvägen i _posts/YYYY-MM-DD-title.md. Till sist väntar arbetsflödet tills publiceringstidpunkten, committar inlägget till GitHub och kan valfritt dela titeln på X och LinkedIn. När en rad är hanterad tas den bort från CSV:en så att pipelinen förblir strukturerad.

Det börjar med ”läs innehållslista”, sedan ”generera inlägget” och därefter ”publicera vid rätt tid”. Distribution kommer sist, så arbetsflödet sluter cirkeln i stället för att lämna dig med ytterligare en sak att komma ihåg.

Det du får: automation vs. resultat

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

Säg att du publicerar 5 Jekyll-inlägg per vecka från en CSV-kö. Manuellt tar även ett ”enkelt” flöde (formatera Markdown, skriva front matter, skapa slug + filnamn, committa till GitHub och sedan dela på LinkedIn) kanske 25 minuter per inlägg, alltså ungefär 2 timmar i veckan. Med det här arbetsflödet: du lägger till rader i CSV:en på cirka 5 minuter, AI:n skriver utkast medan du gör annat, och GitHub-committen sker vid publiceringstid utan att du rör något. Det är ungefär 90 minuter tillbaka varje vecka, plus färre ”oj, vi glömde dela det”-ögonblick.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
  • GitHub för att committa inlägg till ditt repo
  • OpenAI (via LangChain) för att generera Markdown-artikeln
  • OpenAI API-nyckel (hämta den i din OpenAI-dashboard)

Svårighetsnivå: Medel. Du kopplar in credentials och bekräftar sökvägar i ditt repo, men du bygger ingen hel applikation.

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

Så fungerar det

Ett schema (eller manuell körning) startar processen. Du kan köra det dagligen via Scheduled Run Trigger, eller trycka Manual Launch Trigger när du vill skicka igenom inlägg direkt.

Din CSV blir en publiceringskö. n8n läser den lokala CSV-filen, tolkar varje rad till fält som titel, primärt nyckelord och publiceringsdatum och använder sedan en batch-splitter så att inlägg skapas ett i taget i stället för i en rörig klump.

AI:n skriver utkastet, sedan ”Jekyll-fierar” arbetsflödet det. AI-agenten tar fram en strukturerad Markdown-artikel, och Markdown Builder skapar front matter, genererar en korrekt formaterad slug och sätter slutlig sökväg under _posts/. Liten detalj, stor effekt.

Publicering och delning sker automatiskt. Arbetsflödet väntar tills publiceringstidpunkten, committar den nya Markdown-filen till GitHub och kan sedan posta på X och dela på LinkedIn så att inlägget faktiskt blir sett.

Du kan enkelt anpassa CSV-fälten för att matcha din egen SEO-mall utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementation

Steg 1: konfigurera triggertypen

Konfigurera både manuella och schemalagda triggers så att ni kan köra arbetsflödet vid behov eller enligt en daglig rytm.

  1. Lägg till en Manual Launch Trigger-nod för att möjliggöra manuella körningar.
  2. Lägg till en Scheduled Run Trigger-nod och ställ in Rule till interval → triggerAtHour: 8.
  3. Koppla både Manual Launch Trigger och Scheduled Run Trigger till Load Recipe CSV.

Steg 2: anslut receptets datakälla

Läs in och tolka er recept-CSV-fil för vidare bearbetning.

  1. I Load Recipe CSV ställer ni in File Path till /data/recipes.csv.
  2. Ställ in Data Property Name till =data i Load Recipe CSV.
  3. Koppla Load Recipe CSV till Parse CSV File och Purge Processed Row parallellt.
  4. I Parse CSV File ställer ni in Delimiter till ;.

Load Recipe CSV skickar utdata till både Parse CSV File och Purge Processed Row parallellt.

⚠️ Vanlig fallgrop: Purge Processed Row redigerar /data/recipes.csv direkt. Testa med en backupfil för att undvika oavsiktlig dataförlust.

Steg 3: konfigurera batchbearbetning och AI-generering av text

Dela upp CSV:n i enskilda rader, generera text med agenten och bygg den slutliga Markdown-filen.

  1. I Batch Splitter ställer ni in Batch Size till 1.
  2. Koppla Parse CSV File till Batch Splitter.
  3. Koppla Batch Splitter till AI Copywriter Agent och Purge Processed Row parallellt.
  4. I AI Copywriter Agent behåller ni Text-prompten enligt definitionen och säkerställer att den refererar till fält som {{ $json.titolo }} och {{ $json.keyword_principale }}.
  5. Öppna OpenAI Chat Model och välj modellen gpt-4o-mini.
  6. Inloggningsuppgifter krävs: anslut era openAiApi-inloggningsuppgifter i OpenAI Chat Model.
  7. Säkerställ att OpenAI Chat Model är ansluten som språkmodell för AI Copywriter Agent (inloggningsuppgifter ska läggas till i OpenAI Chat Model, inte i agenten).
  8. Koppla AI Copywriter Agent till Markdown Builder.

Batch Splitter skickar utdata till både AI Copywriter Agent och Purge Processed Row parallellt.

Steg 4: konfigurera sammansättning av Markdown och publicering

Sätt ihop den slutliga Markdown-posten, fördröj publiceringen vid behov och committa filen till GitHub innan delning i sociala kanaler.

  1. I Markdown Builder behåller ni JavaScript-koden som skapar markdownPath och markdownContent från Batch Splitter och AI-utdata.
  2. Koppla Markdown Builder till Delay Until Publish.
  3. I Delay Until Publish ställer ni in Amount till {{ $json.data_pubblicazione }} och Unit till =.
  4. Koppla Delay Until Publish till GitHub File Commit.
  5. I GitHub File Commit ställer ni in File Path till {{ $json["markdownPath"] }}.
  6. Ställ in File Content till {{ $('Markdown Builder').item.json.markdownContent }}.
  7. Ställ in Commit Message till =={{ 'Add recipe: ' + $json.titolo }}.
  8. Inloggningsuppgifter krävs: anslut era githubApi-inloggningsuppgifter i GitHub File Commit.
  9. Koppla GitHub File Commit till Publish to X och koppla sedan Publish to X till Share on LinkedIn.

⚠️ Vanlig fallgrop: Delay Until Publish, Publish to X och Share on LinkedIn är inaktiverade i arbetsflödet. Aktivera dem först efter att ni har validerat ert innehållsflöde.

⚠️ Vanlig fallgrop: Publish to X och Share on LinkedIn kräver inloggningsuppgifter för plattformarna, men inga är konfigurerade. Lägg till rätt inloggningsuppgifter innan ni aktiverar dessa noder.

Steg 5: testa och aktivera ert arbetsflöde

Kör ett manuellt test för att bekräfta att CSV:n bearbetas, att Markdown genereras och att GitHub-commit går igenom.

  1. Klicka på Execute Workflow med start från Manual Launch Trigger.
  2. Verifiera att Parse CSV File skickar ut rader och att AI Copywriter Agent returnerar Markdown-innehåll.
  3. Kontrollera Markdown Builder efter markdownPath och markdownContent i utdata.
  4. Bekräfta att GitHub File Commit skapade filen i repot.
  5. När ni är redo aktiverar ni Delay Until Publish, Publish to X och Share on LinkedIn, och växlar sedan arbetsflödet till Active.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • GitHub-credentials kan gå ut eller behöva specifika behörigheter. Om något slutar fungera, börja med att kontrollera token-scopes och repots åtkomstinställningar.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • OpenAI-prompter som ”funkar typ” kommer att driva över tid. Lägg in varumärkesröst, rubriker och SEO-regler tidigt, annars kommer du att redigera output för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här Jekyll-publiceringsautomationen?

Cirka en timme om ditt repo och dina API-nycklar är redo.

Behöver jag kodningskunskaper för att automatisera Jekyll-publicering?

Nej. Du klistrar mest in credentials och justerar några fält. De enda ”kod”-delarna är redan inbyggda i arbetsflödet.

Är n8n gratis att använda för det här arbetsflödet för Jekyll-publiceringsautomation?

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 volymer. Du behöver också räkna in OpenAI API-kostnader (ofta några cent per inlägg, beroende på längd).

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

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 klarar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här arbetsflödet för Jekyll-publiceringsautomation för en annan nisch än recept?

Ja, och det bör du. Byt ut de receptspecifika instruktionerna i prompten i AI Copywriter Agent och justera sedan logiken i Markdown Builder så att den matchar dina rubriker och front matter-fält. Vanliga anpassningar är andra regler för kategori/taggar, en annan tonalitet och att ändra filnamnsmönstret när du inte vill ha datumbaserade inlägg.

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

Oftast beror det på en utgången token eller saknade repo-behörigheter. Generera om din GitHub-token, bekräfta att den har åtkomst till repot du committar till och spara om credentialn i n8n. Kontrollera också målbranch och filsökväg, eftersom commit till en branch som inte finns kommer att misslyckas. Om du publicerar mycket på en gång kan GitHub rate-limita dig, så minska batchstorleken och försök igen.

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

Om du self-hostar finns ingen fast körningsgräns (det beror på din server och dina API-rate limits). På n8n Cloud täcker Starter-planen ett visst antal månatliga körningar, och högre planer hanterar mer. I praktiken kör de flesta mindre sajter detta dagligen eller veckovis i batchar med några få inlägg åt gången, vilket håller GitHub-commits och AI-generering stabilt.

Är den här Jekyll-publiceringsautomationen bättre än att använda Zapier eller Make?

Ofta, ja, eftersom arbetsflödet behöver grenlogik, filskapande, ett vänta-tills-publicering-steg och en korrekt GitHub-commit. Det går att göra på andra plattformar, men det blir lätt pilligt och kan snabbt bli dyrt när varje inlägg blir flera tasks. n8n ger dig också möjligheten att self-hosta, vilket är en stor fördel om du publicerar mycket. Zapier eller Make kan fortfarande vinna om du vill ha enklaste UI:t och bara trycker ut ett par inlägg i månaden. Vill du ha en snabb rekommendation för din setup, prata med en automationsexpert.

När det här väl rullar blir din ”innehållslista” en riktig publiceringsmaskin. Sätt upp det, håll CSV:en påfylld och låt GitHub, Jekyll och LinkedIn ta hand om resten.

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