Du klistrar in helt okej markdown i Contentful, trycker på publicera och plötsligt faller allt isär. Listor kollapsar, rubriker blir märkliga, länkar beter sig konstigt, bilder gör det inte, och helt plötsligt sitter du med en “snabb upprensning” som stjäl hela eftermiddagen.
Den här Contentful OpenAI-automationen drabbar content managers först, men marknadsansvariga och byråfolk som levererar inlägg åt kunder känner av det också. Du publicerar poster som redan följer Contentfuls Rich Text-regler, så att du kan lägga tid på budskapet, inte formateringen.
Nedan är workflowet som konverterar markdown till giltig Contentful Rich Text JSON, sammanfogar det strukturerat, formaterar posten efter ditt fältschema och publicerar via Contentful API. Ingen handpåläggning. Inga “varför blev den här rubriken vanlig brödtext”-ögonblick.
Så här fungerar automationen
Hela n8n-workflowet, från trigger till slutresultat:
n8n Workflow Template: Contentful + OpenAI: publicera utan omformatering
flowchart LR
subgraph sg0["When Executed by Another Workflow Flow"]
direction LR
n0["<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/>Create newly formatted Conte.."]
n1@{ icon: "mdi:play-circle", form: "rounded", label: "When Executed by Another Wor..", 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/merge.svg' width='40' height='40' /></div><br/>Merge1"]
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/>Format1"]
n4@{ icon: "mdi:robot", form: "rounded", label: "Markdown to Contentful format", pos: "b", h: 48 }
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/code.svg' width='40' height='40' /></div><br/>Split by Headings"]
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/code.svg' width='40' height='40' /></div><br/>Combine Rich Text Objects"]
n7@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model2", pos: "b", h: 48 }
n2 --> n3
n3 --> n0
n5 --> n4
n7 -.-> n4
n6 --> n2
n4 --> n6
n1 --> n5
n1 --> n2
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 n1 trigger
class n4 ai
class n7 aiModel
class n0 api
class n3,n5,n6 code
classDef customIcon fill:none,stroke:none
class n0,n2,n3,n5,n6 customIcon
Problemet: markdown “bara funkar” inte i Contentful
Markdown är snabbt. Contentful Rich Text är strikt. Den kollisionen märks vid sämsta möjliga tillfälle: precis innan publicering, när du redan jonglerar granskningar, SEO-fält och en deadline. Du klistrar in markdown från GitHub, ett dokument eller en generator, och Contentful antingen underkänner strukturen eller accepterar den med subtila skador. Sedan kommer den långsamma delen: leta trasiga listor, fixa länkar en och en och dubbelkolla förhandsvisningen eftersom en liten formateringsändring kan få ringar på vattnet på hela sidan. Ärligt talat, det är inte svårt. Det är bara oändligt.
Friktionen byggs på. Här är var det brukar haverera.
- Valideringsfel i Rich Text tvingar fram sista-minuten-ändringar, även när innehållet i sig är korrekt.
- Manuell omformatering stjäl cirka 30–60 minuter per inlägg när du räknar in förhandsvisningskontroller och länkfixar.
- Team börjar undvika struktur (listor, underrubriker, inbäddade länkar) eftersom det är för irriterande att underhålla.
- Publicering blir skört, så innehåll fastnar i utkast medan någon “städar upp det”.
Lösningen: konvertera markdown till Contentful Rich Text (automatiskt)
Det här workflowet tar en JSON-payload som redan innehåller din inläggsmetadata (titel, slug, beskrivning, nyckelord, lästid och så vidare) plus brödtexten i markdown. Först delas markdownen upp i logiska sektioner vid varje ##-rubrik, vilket gör konverteringen stabil och undviker att slå i AI:ns context-limiter. Varje del skickas sedan genom en OpenAI-agent som instrueras att returnera giltig Contentful Rich Text JSON (exakt den nodeType-, data– och content-struktur som Contentful förväntar sig). Därefter sammanfogar workflowet alla konverterade delar till ett strukturerat Rich Text-dokument, mappar allt till ditt Contentful-fältschema (inklusive locales) och publicerar posten via Contentful Management API. Slutresultatet är en publiceringsklar post som inte behöver omformateras.
Workflowet startar när ett annat n8n-workflow anropar det med en post-payload. OpenAI konverterar markdownsektionerna till Rich Text-noder, sedan bygger n8n ihop dem till ett dokument och skickar den färdiga posten till Contentful via ett autentiserat HTTP-anrop.
Det du får: automation vs. resultat
| Vad workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att du publicerar 3 inlägg i veckan och att varje inlägg behöver cirka 45 minuters upprensning efter att du klistrat in markdown i Contentful (fixa rubriker, listor, länkar, förhandsvisa, repetera). Det är ungefär 2 timmar i veckan på formatering, inte skrivande. Med det här workflowet triggar du publiceringen genom att skicka JSON-payloaden en gång och låter sedan delkonverteringen och API-publiceringen köra i bakgrunden. Din “tidsåtgång” blir i stället närmare 10 minuter av stickprovskontroll, vilket är en helt annan vecka.
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)
- Contentful för att skapa och publicera poster via API.
- OpenAI för konvertering från markdown till Rich Text.
- Contentful Management API-token (skapa den i Contentful-inställningar under API keys).
Kompetensnivå: Medel. Du klistrar in inloggningsuppgifter, bekräftar Contentful field IDs/locales och testar med en exempelpost.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett sub-workflow triggar körningen. Ett annat workflow skickar en JSON-payload med din metadata (titel, slug, kategori, SEO-fält) plus brödtexten i markdown.
Markdownen segmenteras via rubriker. n8n delar upp artikeln på ## så att konverteringen sker i mindre, mer tillförlitliga block, vilket också gör felsökning enklare om en sektion är felformaterad.
OpenAI konverterar varje sektion till Contentful Rich Text. Agenten styrs av strikta regler (obligatoriska nycklar som nodeType, data och nästlade content-arrayer) så att Contentful inte underkänner posten vid publicering.
Workflowet sammanställer och publicerar. n8n slår ihop de konverterade sektionerna till ett enda dokument, mappar allt till ditt Contentful-fältschema och din locale-struktur och publicerar sedan via en POST-request till Contentful Management API.
Du kan enkelt ändra chunk-reglerna för att dela på andra rubriknivåer eller justera fältmappningen för en annan Contentful content type. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera triggern för körning av underflöde
Sätt upp flödets startpunkt och bekräfta de parallella körningsgrenarna som delar upp bearbetningsflödet.
- Lägg till noden Subworkflow Execution Trigger för att ta emot körningar från ett annat flöde.
- Koppla Subworkflow Execution Trigger till både Segment by Headings och Combine Streams.
- Bekräfta parallell körning: Subworkflow Execution Trigger skickar utdata till både Segment by Headings och Combine Streams parallellt.
Steg 2: Anslut Contentful (Generate Contentful Entry)
Konfigurera utgående anrop som skapar Contentful-posten efter att formateringen är klar.
- Lägg till noden Generate Contentful Entry och koppla den efter Format Payload.
- Konfigurera begärans inställningar i Generate Contentful Entry så att de matchar era Contentful API-krav (metod, URL, headers och body).
⚠️ Vanlig fallgrop: Om Contentful avvisar begäran, kontrollera att API-endpointen, authorization-headers och JSON-payloadens schema matchar er Contentful-content model.
Steg 3: Sätt upp markdown-bearbetning och AI
Förbered segmentering av markdown och AI-konvertering till en rich text-struktur.
- Koppla Segment by Headings till Markdown to Rich Text AI för att dela upp markdown i strukturerade sektioner innan AI-bearbetning.
- Öppna Markdown to Rich Text AI och säkerställ att den är kopplad till OpenAI Chat Engine som språkmodell.
- Inloggning krävs: Anslut era OpenAI-inloggningsuppgifter i OpenAI Chat Engine (inloggningsuppgifter konfigureras på modellnoden, inte på Markdown to Rich Text AI).
Steg 4: Konfigurera sammansättning, sammanfogning och formatering av payload
Kombinera AI-utdata med den ursprungliga strömmen och formatera den slutliga payload som Contentful förväntar sig.
- Koppla Markdown to Rich Text AI till Assemble Rich Text för att bygga den konsoliderade rich text-payloaden.
- Koppla Assemble Rich Text till Combine Streams (Index 1 input) så att merge inkluderar båda strömmarna.
- Verifiera att Combine Streams skickar utdata till Format Payload, och därefter till Generate Contentful Entry.
Tips: Använd Format Payload för att anpassa fältnamn, locales och nästlade strukturer till Contentfuls rich text-krav innan inskick.
Steg 5: Testa och aktivera ert flöde
Kör ett komplett test från triggern för att säkerställa att markdown konverteras, slås ihop och publiceras till Contentful korrekt.
- Klicka på Execute Workflow och skicka in exempel-markdown till Subworkflow Execution Trigger.
- Bekräfta att Segment by Headings och Combine Streams båda tar emot data och fortsätter parallellt.
- Validera att Generate Contentful Entry returnerar ett lyckat svar och att posten visas i Contentful med rich text-formatering.
- Slå på flödet med växeln Active för användning i produktion.
Vanliga fallgropar
- Contentful-inloggning kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först din Management API-token och åtkomst till space/environment i Contentful.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera output för alltid.
Vanliga frågor
Cirka 30 minuter om du redan har din Contentful content type och API-token redo.
Nej. Du kommer mest att klistra in inloggningsuppgifter och bekräfta din Contentful-fältmappning. Den enda “koden” här är redan paketerad i workflowets befintliga noder.
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 in OpenAI API-användning, vilket vanligtvis är några cent per artikel när du konverterar i delar.
Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärt och hanterar n8n bra. Egen drift ger obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, och det är den vanligaste justeringen. Uppdatera mappningen i “Format Payload” så att den matchar dina field IDs/locales och justera sedan HTTP Request-headers för ditt content type ID. Många team anpassar också “Segment by Headings”-logiken (till exempel dela på H3 för längre inlägg) och förfinar AI-prompten så att liststilar, länkbeteende och bildhantering matchar era webbplatsmönster.
Oftast beror det på en ogiltig eller utgången Contentful Management API-token. Skapa en ny token och uppdatera sedan Authorization-headern i HTTP Request-noden. Om token är okej, kontrollera att du använder rätt space ID och environment och bekräfta att content type-headern matchar en befintlig typ. Rate limits kan också dyka upp om du publicerar mycket på en gång, så att sprida ut körningarna kan hjälpa.
På en typisk n8n Cloud-plan hanterar den gott och väl behoven för ett mindre team, och egen drift tar bort körningsbegränsningar. I praktiken är dina begränsningar Contentfuls rate limiting och hur lång tid dina OpenAI-konverteringar tar för stora inlägg.
Ofta, ja, eftersom workflowet kräver riktig logik: dela upp innehåll, konvertera delar och sedan slå ihop, formatera och passa in i ett strikt schema. n8n hanterar branching och kodbaserade transformationer snyggt utan att bli en skör kedja av mini-zaps. Du får också möjlighet att köra egen drift, vilket spelar roll när du publicerar ofta. Zapier eller Make kan fortfarande fungera om du håller flödet enkelt och accepterar mindre kontroll över JSON-strukturen. Om du är osäker, prata med en automationsexpert och få en snabb rekommendation baserat på din volym och din stack.
När detta väl är på plats slutar publicering att vara ett formateringsprojekt. Du skickar in markdown, du får ut en giltig Contentful-post och du går vidare.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.