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
flowchart LR
subgraph sg0["Manual Launch Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Launch Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Load Recipe CSV", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Batch Splitter", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Delay Until Publish", 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/github.dark.svg' width='40' height='40' /></div><br/>GitHub File Commit"]
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/x.dark.svg' width='40' height='40' /></div><br/>Publish to X"]
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/linkedin.svg' width='40' height='40' /></div><br/>Share on LinkedIn"]
n7@{ icon: "mdi:cog", form: "rounded", label: "Parse CSV File", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "AI Copywriter Agent", pos: "b", h: 48 }
n9@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n10["<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/>Markdown Builder"]
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/code.svg' width='40' height='40' /></div><br/>Purge Processed Row"]
n12@{ icon: "mdi:play-circle", form: "rounded", label: "Scheduled Run Trigger", pos: "b", h: 48 }
n10 --> n3
n0 --> n1
n1 --> n7
n1 --> n11
n5 --> n6
n9 -.-> n8
n4 --> n5
n12 --> n1
n2 --> n8
n2 --> n11
n7 --> n2
n3 --> n4
n8 --> n10
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 n0,n12 trigger
class n8 ai
class n9 aiModel
class n10,n11 code
class n3 disabled
class n5 disabled
class n6 disabled
classDef customIcon fill:none,stroke:none
class n4,n5,n6,n10,n11 customIcon
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
| Det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
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.
- Lägg till en Manual Launch Trigger-nod för att möjliggöra manuella körningar.
- Lägg till en Scheduled Run Trigger-nod och ställ in Rule till
interval → triggerAtHour: 8. - 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.
- I Load Recipe CSV ställer ni in File Path till
/data/recipes.csv. - Ställ in Data Property Name till
=datai Load Recipe CSV. - Koppla Load Recipe CSV till Parse CSV File och Purge Processed Row parallellt.
- 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.
/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.
- I Batch Splitter ställer ni in Batch Size till
1. - Koppla Parse CSV File till Batch Splitter.
- Koppla Batch Splitter till AI Copywriter Agent och Purge Processed Row parallellt.
- 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 }}. - Öppna OpenAI Chat Model och välj modellen
gpt-4o-mini. - Inloggningsuppgifter krävs: anslut era openAiApi-inloggningsuppgifter i OpenAI Chat Model.
- 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).
- 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.
- I Markdown Builder behåller ni JavaScript-koden som skapar
markdownPathochmarkdownContentfrån Batch Splitter och AI-utdata. - Koppla Markdown Builder till Delay Until Publish.
- I Delay Until Publish ställer ni in Amount till
{{ $json.data_pubblicazione }}och Unit till=. - Koppla Delay Until Publish till GitHub File Commit.
- I GitHub File Commit ställer ni in File Path till
{{ $json["markdownPath"] }}. - Ställ in File Content till
{{ $('Markdown Builder').item.json.markdownContent }}. - Ställ in Commit Message till
=={{ 'Add recipe: ' + $json.titolo }}. - Inloggningsuppgifter krävs: anslut era githubApi-inloggningsuppgifter i GitHub File Commit.
- Koppla GitHub File Commit till Publish to X och koppla sedan Publish to X till Share on LinkedIn.
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.
- Klicka på Execute Workflow med start från Manual Launch Trigger.
- Verifiera att Parse CSV File skickar ut rader och att AI Copywriter Agent returnerar Markdown-innehåll.
- Kontrollera Markdown Builder efter
markdownPathochmarkdownContenti utdata. - Bekräfta att GitHub File Commit skapade filen i repot.
- 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.
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
Cirka en timme om ditt repo och dina API-nycklar är redo.
Nej. Du klistrar mest in credentials och justerar några fält. De enda ”kod”-delarna är redan inbyggda i arbetsflödet.
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).
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.
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.
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.
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.
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.