n8n RSS to WP Automation
Overview
What Does This Workflow Do?
This n8n RSS to WP Automation workflow automatically reads your selected RSS feed, uses AI to rewrite content into blog-ready posts,
generates SEO metadata (Title, Slug, Meta Description, Focus Keyword, Category, Tags), publishes posts directly
to WordPress, and logs the details to Google Sheets for auditing or future editing.
Best Use Cases
- News aggregation websites automating curated content publishing.
- Blogs wanting to auto-post AI-enhanced summaries of industry updates.
- Creating content pipelines for affiliate, tutorial, or niche sites needing fresh posts.
Key Nodes Used
- RSS Read – Fetch articles from your RSS feed.
- OpenAI Chat Model – Rewrite RSS content into natural blog posts.
- AI Agent & SEO Info – Generate engaging content and SEO data.
- WordPress – Automatically create posts on your site.
- Google Sheets – Archive post metadata for tracking and updates.
Important Notes
- Categories and Tags in WordPress must exist before using this workflow, or the WordPress API will reject your request.
- Use a Limit node to avoid processing too many RSS items at once and overwhelming your blog.
- API quotas (RSS provider, OpenAI, Google Sheets) can limit daily runs – monitor usage to avoid failures.
- Always test the workflow with a single item before scheduling automated runs.
Workflow Editor Screenshot

Workflow JSON Code
{ "name": "rssautopost", "nodes": [ { "parameters": { "url": "https://rss.app/feeds/t21pC63T.xml", "options": {} }, "type": "n8n-nodes-base.rssFeedRead", "typeVersion": 1.2, "position": [ -500, -60 ], "id": "26c84d62-9a86-4141-a87e-93b0e16d01a9", "name": "RSS Read" }, { "parameters": { "rule": { "interval": [ { "daysInterval": 5, "triggerAtHour": 9 } ] } }, "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.2, "position": [ -660, -60 ], "id": "69a5692f-fd3e-4eed-8556-d39bcd5327d2", "name": "Schedule Trigger" }, { "parameters": { "maxItems": 2 }, "type": "n8n-nodes-base.limit", "typeVersion": 1, "position": [ -340, -60 ], "id": "278205b2-eb19-40ce-80c8-8313d3b311a3", "name": "Limit" }, { "parameters": { "promptType": "define", "text": "=You are a professional content writer specializing in technology and automation. Your task is to rewrite an article for a blog post.\n\nInstructions:\n\n1. Use the given title as the base theme.\n2. If the RSS content contains useful text, integrate and refine it to improve readability.\n3. Keep the style engaging, professional, and suitable for a technology-focused audience.\n4. Add an introductory paragraph and a concise conclusion.\n5. Maintain SEO-friendly structure: short paragraphs, subheadings if relevant, and avoid duplicate content.\n\nVariables:\n\n* Title: {{ $json.title }}\n* RSS Content: {{ $json.content }}\n\nBegin your output with a clear and engaging blog post based on these inputs.\n", "options": {} }, "type": "@n8n/n8n-nodes-langchain.agent", "typeVersion": 2, "position": [ -160, -60 ], "id": "14ccb329-58b2-4493-a69f-4f4535bf7639", "name": "AI Agent" }, { "parameters": { "model": { "__rl": true, "value": "gpt-4o", "mode": "list", "cachedResultName": "gpt-4o" }, "options": {} }, "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "typeVersion": 1.2, "position": [ -220, 140 ], "id": "409f1829-18a8-48ad-b042-3278ea7f1cd3", "name": "OpenAI Chat Model", "credentials": { "openAiApi": { "id": "mcn9UzY9nNmZNQmb", "name": "OpenAi account" } } }, { "parameters": { "jsCode": "for (const item of $('SEO Info').all()) {\n const text = item.json.message.content || \"\";\n\n const titleMatch = text.match(/Title:\\s*(.+?)(?=Slug:|Meta Description:|Focus Keyword:|Category:|Tags:|$)/is);\n const slugMatch = text.match(/Slug:\\s*(.+?)(?=Meta Description:|Focus Keyword:|Category:|Tags:|$)/is);\n const metaMatch = text.match(/Meta Description:\\s*(.+?)(?=Focus Keyword:|Category:|Tags:|$)/is);\n const keywordMatch = text.match(/Focus Keyword:\\s*(.+?)(?=Category:|Tags:|$)/is);\n const categoryMatch = text.match(/Category:\\s*(.+?)(?=Tags:|$)/is);\n const tagsMatch = text.match(/Tags:\\s*(.+)/i);\n\n item.json.title = titleMatch ? titleMatch[1].trim() : \"\";\n item.json.slug = slugMatch ? slugMatch[1].trim() : \"\";\n item.json.metaDescription = metaMatch ? metaMatch[1].trim() : \"\";\n item.json.focusKeyword = keywordMatch ? keywordMatch[1].trim() : \"\";\n item.json.category = categoryMatch ? categoryMatch[1].trim() : \"\";\n item.json.tags = tagsMatch\n ? tagsMatch[1].split(\",\").map(tag => tag.trim())\n : [];\n}\n\nreturn $('SEO Info').all();\n" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 460, -60 ], "id": "7e11a735-8726-4100-a7cc-aea4efee21db", "name": "Extract the info" }, { "parameters": { "modelId": { "__rl": true, "value": "gpt-4o", "mode": "list", "cachedResultName": "GPT-4O" }, "messages": { "values": [ { "content": "=You are a professional SEO assistant for a technology blog.\n\nMy website, AutomateGeniusHub.com, focuses on automation tools, AI-powered workflows, n8n tutorials, and practical guides to help users build automated systems. The main categories on the website are Automation, AI, n8n, and Tutorials. When generating the recommended Category, please pick one that best matches these website topics.\n\nGiven the article content below, generate:\n\n1) A clear and engaging Title for the article (1 line).\n2) A concise and SEO-friendly Slug based on the title (lowercase, hyphen-separated, no special characters).\n3) A compelling Meta Description (120-160 characters) that includes a focus keyword relevant to the article.\n4) A recommended Category for the blog post, picking one from these website-relevant topics: Automation, AI, n8n, or Tutorials.\n5) A list of 3-6 recommended Tags, each a single keyword or short phrase relevant to the article.\n\nFormat your response exactly like this, inserting two line breaks (empty lines) between each field:\n\nTitle: [your generated title]\n\n\nSlug: [your generated slug]\n\n\nMeta Description: [your meta description text]\n\n\nFocus Keyword: [the single main keyword]\n\n\nCategory: [recommended category]\n\n\nTags: [comma-separated tags]\n\nArticle Content:\n\"\"\"\n{{ $json.output }}\n\"\"\"\n" } ] }, "options": {} }, "type": "@n8n/n8n-nodes-langchain.openAi", "typeVersion": 1.8, "position": [ 140, -60 ], "id": "e7a63812-3375-47b3-8d48-67813aedf641", "name": "SEO Info", "credentials": { "openAiApi": { "id": "mcn9UzY9nNmZNQmb", "name": "OpenAi account" } } }, { "parameters": { "operation": "append", "documentId": { "__rl": true, "value": "1w-AUT7Fw-FNAMzkMjSGqgfsyenfdPlHzCopwyRDSy3M", "mode": "list", "cachedResultName": "automategeniushub.com posts", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1w-AUT7Fw-FNAMzkMjSGqgfsyenfdPlHzCopwyRDSy3M/edit?usp=drivesdk" }, "sheetName": { "__rl": true, "value": "gid=0", "mode": "list", "cachedResultName": "Sheet1", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1w-AUT7Fw-FNAMzkMjSGqgfsyenfdPlHzCopwyRDSy3M/edit#gid=0" }, "columns": { "mappingMode": "defineBelow", "value": { "tile": "={{ $json.title }}", "slug": "={{ $json.slug }}", "exerpt": "={{ $json.metaDescription }}", "keyword": "={{ $json.focusKeyword }}", "category": "={{ $json.category }}", "tags": "={{ $json.tags }}" }, "matchingColumns": [], "schema": [ { "id": "tile", "displayName": "tile", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "slug", "displayName": "slug", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "exerpt", "displayName": "exerpt", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "keyword", "displayName": "keyword", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "category", "displayName": "category", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": false }, { "id": "tags", "displayName": "tags", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": false } ], "attemptToConvertTypes": false, "convertFieldsToString": false }, "options": {} }, "type": "n8n-nodes-base.googleSheets", "typeVersion": 4.6, "position": [ 620, 40 ], "id": "e8552122-cb14-46cd-b951-1d265cfd5edb", "name": "Append row in sheet", "credentials": { "googleSheetsOAuth2Api": { "id": "eSQgy5LAFfmcjUk1", "name": "Google Sheets account" } } }, { "parameters": { "title": "={{ $json.title }}", "additionalFields": { "content": "={{ $('AI Agent').item.json.output }}", "slug": "={{ $json.slug }}" } }, "type": "n8n-nodes-base.wordpress", "typeVersion": 1, "position": [ 620, -180 ], "id": "fc58ca18-57a1-4e2d-a52e-ae60193cd919", "name": "Create a post", "credentials": { "wordpressApi": { "id": "RnwVhFDGnlWTxpOS", "name": "Wordpress account" } } } ], "pinData": {}, "connections": { "Schedule Trigger": { "main": [ [ { "node": "RSS Read", "type": "main", "index": 0 } ] ] }, "RSS Read": { "main": [ [ { "node": "Limit", "type": "main", "index": 0 } ] ] }, "Limit": { "main": [ [ { "node": "AI Agent", "type": "main", "index": 0 } ] ] }, "OpenAI Chat Model": { "ai_languageModel": [ [ { "node": "AI Agent", "type": "ai_languageModel", "index": 0 } ] ] }, "AI Agent": { "main": [ [ { "node": "SEO Info", "type": "main", "index": 0 } ] ] }, "Extract the info": { "main": [ [ { "node": "Create a post", "type": "main", "index": 0 }, { "node": "Append row in sheet", "type": "main", "index": 0 } ] ] }, "SEO Info": { "main": [ [ { "node": "Extract the info", "type": "main", "index": 0 } ] ] } }, "active": false, "settings": { "executionOrder": "v1" }, "versionId": "45d2fa89-894d-4730-aa8b-18627b71e8ed", "meta": { "templateCredsSetupCompleted": true, "instanceId": "b58c72a58c801e03c1291a94486621c33c072d68397a812e8c55705976de38d8" }, "id": "BfdPCX8A1ICvT0rt", "tags": [] }