Over eight months we processed more than 140,000 automated posts through JekCMS's publish API connected to n8n. The integration requires fewer than a dozen workflow nodes, handles media uploads, sets categories, and respects your publishing schedule. This article documents the exact node configuration we use in our own content operations.
The publish API endpoint is POST /api/v1/posts/publish-task. It accepts JSON with title, content, author_id, category, featured_image (a URL), and an optional scheduled_at ISO 8601 timestamp. The API key goes in the X-API-Key header. Successful creation returns the new post's ID and public URL.
Minimal n8n Workflow Structure
In n8n, the minimal working workflow has four nodes: an HTTP Request to fetch source content (from OpenAI, an RSS feed, or your own source), a Code node to format the payload, an HTTP Request to call the JekCMS API, and an IF node to route errors to a Slack notification or retry queue. The entire flow completes in under two seconds per post under normal conditions.
Media Handling at Scale
Media handling deserves careful attention. When you pass a featured_image URL, JekCMS fetches it synchronously during the API request, converts it to AVIF, and stores it locally. If the source URL is slow to respond, your entire API request blocks. For high-volume pipelines, pre-upload images to your JekCMS install using the POST /api/v1/media/upload-from-url endpoint and pass the resulting media ID rather than a URL.
Real-World Numbers
We run approximately 600 automated posts per month across three sites using this workflow. The failure rate is under 0.3%, and every failure is a network timeout on the source content fetch, not a JekCMS API error. The endpoint itself has had 100% uptime over the eight-month period covered in this report.