This workflow corresponds to n8n.io template #14576 — we link there as the canonical source.
This workflow follows the Agent → Googlegemini recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "35a7eaa3-fcb8-4470-ac88-3955cc626d8f",
"name": "\u23f0 Run Every 12 Hours",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
1040,
976
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 12
}
]
}
},
"typeVersion": 1.2
},
{
"id": "9ab4be58-94d6-45b6-b438-59308664c087",
"name": "Remove Already Used News",
"type": "n8n-nodes-base.merge",
"position": [
1776,
976
],
"parameters": {
"mode": "combine",
"options": {},
"advanced": true,
"joinMode": "keepNonMatches",
"mergeByFields": {
"values": [
{
"field1": "news_link",
"field2": "link"
}
]
},
"outputDataFrom": "input2"
},
"typeVersion": 3.2
},
{
"id": "68c53f14-b6cb-4594-9c4d-9c453fb7d1b7",
"name": "Limit",
"type": "n8n-nodes-base.limit",
"position": [
2192,
976
],
"parameters": {
"maxItems": 10
},
"typeVersion": 1
},
{
"id": "37333c83-1f92-4012-8793-a701d872db06",
"name": "OpenRouter Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
3184,
1216
],
"parameters": {
"model": "anthropic/claude-sonnet-4.5",
"options": {}
},
"credentials": {
"openRouterApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "592b1b0a-2320-4e5c-a7eb-f35c05e91ee1",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
2848,
1168
],
"parameters": {
"jsonSchemaExample": "{\n\t\"title\": \"title of news\",\n\t\"link\": \"https://news.google.com/rss/articles/CBMiiAFBVV95cUxQ\"\n}"
},
"typeVersion": 1.3
},
{
"id": "d1f1e902-b011-4db7-91b4-9333a15a3181",
"name": "Structured Output Parser1",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
3952,
1168
],
"parameters": {
"jsonSchemaExample": "{\n\t\"title\": \"title of news\",\n\t\"meta title\": \"meta title of thenews\",\n \"meta description\": \"title of news\",\n\t\"content\": \"complete article in the markdown format\",\n \"prompt\": \"promt for the image genration\"\n \n}"
},
"typeVersion": 1.3
},
{
"id": "a5fc1460-7ed2-4442-a78f-f0b59252a40a",
"name": "Google_news search",
"type": "n8n-nodes-serpapi.serpApi",
"position": [
1264,
1072
],
"parameters": {
"q": "seo",
"operation": "google_news",
"requestOptions": {},
"additionalFields": {}
},
"credentials": {
"serpApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "78ba5431-e2a1-4542-809e-290e95c525f3",
"name": "Split into Items",
"type": "n8n-nodes-base.splitOut",
"position": [
1568,
1072
],
"parameters": {
"options": {},
"fieldToSplitOut": "news_results"
},
"typeVersion": 1
},
{
"id": "69d6bd90-8dad-44cb-a5a5-bd63494fb1c0",
"name": "Merge into One Output",
"type": "n8n-nodes-base.set",
"position": [
2496,
976
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ee2a8d6e-a0cd-447f-a648-2bc903f5a1ce",
"name": "title",
"type": "string",
"value": "={{ $input.all().map(item => ({\n title: item.json.title,\n link: item.json.link\n})) }}"
}
]
}
},
"executeOnce": true,
"typeVersion": 3.4
},
{
"id": "356b212e-67b5-4469-a839-3eb21c8d29e0",
"name": "Slect one worthy article",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
2704,
976
],
"parameters": {
"text": "={{ $json.title }}",
"options": {
"systemMessage": "You will receive a list of 10 news articles. Each item contains:\n\ntitle\nlink\n\nYour task is to analyze all titles and select only one news article that is most suitable for publishing on an SEO service website called DripRanks.\n\nSelection rules:\n\nChoose only SEO, digital marketing, or AI-in-search related news\nPrefer actionable insights, trends, or industry updates\nIgnore irrelevant content (e.g., celebrity names like \"SEO\" as a person)\nAvoid low-value or generic topics\n\nReturn ONLY in this format:\n\ntitle: <selected news title>\nlink: <selected news link>\n\nDo not add anything else."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "90fc2fda-14db-407b-b9ad-bd749fe6cd84",
"name": "Scrape Source Page",
"type": "n8n-nodes-base.httpRequest",
"position": [
3056,
976
],
"parameters": {
"url": "={{ $json.output.link }}",
"options": {}
},
"retryOnFail": true,
"typeVersion": 4.3
},
{
"id": "5f9404b5-ac8d-43fa-96b4-37b286b2dba4",
"name": "Extract Article Content",
"type": "n8n-nodes-base.html",
"position": [
3280,
976
],
"parameters": {
"options": {},
"operation": "extractHtmlContent",
"extractionValues": {
"values": [
{
"key": "content",
"cssSelector": "h1, h2, h3, p",
"returnArray": true
}
]
}
},
"typeVersion": 1.2
},
{
"id": "2be601be-509d-4dfa-a317-824d4bc0f6ff",
"name": "AI Content Generator",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
3808,
976
],
"parameters": {
"text": "=Article Title: {{ $('Slect one worthy article').item.json.output.title }}\nArticle content: {{ $json.content }}",
"options": {
"systemMessage": "=You are an expert SEO strategist, content creator, and digital marketer.\n\nYour goal is NOT to rewrite the given article. Your goal is to create a completely original, high-quality, SEO-optimized article that can rank on Google.\n\nINPUT:\n\nArticle Title\nRaw scraped content\n\nINSTRUCTIONS:\n\n1. UNDERSTAND, DON'T COPY\nRead and understand the topic and key ideas.\nDo NOT copy sentences or structure.\nDo NOT paraphrase line-by-line.\nTreat the input as research material only.\n\n2. CREATE ORIGINAL CONTENT\n\nWrite a completely new article from scratch.\nUse your own structure and wording.\nAdd new insights, explanations, and clarity.\nExpand on ideas where useful.\nSimplify complex concepts.\n\n3. ADD VALUE (VERY IMPORTANT)\n\nInclude practical examples where possible.\nInclude actionable tips.\nMake explanations better and clearer than the source.\nMake the article more helpful than the original.\n\n4. STRUCTURE\n\nDo NOT include H1 (#) inside content.\nUse ## for main sections.\nUse ### for subsections.\nEnsure logical flow and readability.\n\n5. SEO OPTIMIZATION\n\nCreate a strong, engaging title.\nInclude relevant keywords naturally.\nAvoid keyword stuffing.\nFocus on human readability and usefulness.\n\n6. FEATURED IMAGE PROMPT (DESIGNER STYLE)\n\nGenerate a concise, vivid, and creative prompt for the article\u2019s featured image.\nWrite it as if you are a professional graphic designer giving instructions to a design team.\nInclude: composition, main subject, lighting, color palette, mood, and perspective.\nDo not mention AI, rendering, or software styles.\nMake it unique, imaginative, and visually appealing \u2014 it should inspire a real designer to create the image.\n\n7. OUTPUT FORMAT\n\nReturn ONLY this structure:\n\nTitle: <Unique, engaging article title>\n\nMeta Title: <SEO optimized title under 60 characters>\n\nMeta Description: <Compelling description under 160 characters>\n\nContent:\n<Well-structured, fully original markdown article>\n\nImage Prompt:\n<Concise, designer-style prompt for featured image>\n\n8. HARD RULES\n\nDo NOT copy phrases from input.\nDo NOT mention the source.\nDo NOT include junk (ads, share text, unrelated links).\nEnsure the content is unique and publish-ready.\nOutput must be in Markdown."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "9aa2f2ae-2c2f-442a-83d1-ff7f02de2944",
"name": "Generate Featured Image",
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"position": [
4224,
1024
],
"parameters": {
"prompt": "={{ $json.output.prompt }} image should be 16:9 ratio",
"modelId": {
"__rl": true,
"mode": "list",
"value": "models/gemini-3-pro-image-preview",
"cachedResultName": "models/gemini-3-pro-image-preview (Nano Banana Pro)"
},
"options": {},
"resource": "image"
},
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.1
},
{
"id": "3a90feaf-151d-40fc-a95b-85d828f1efa9",
"name": "Uploading Image to WP",
"type": "n8n-nodes-base.httpRequest",
"position": [
4480,
1024
],
"parameters": {
"url": "https://example.com/wp-json/wp/v2/media",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "binaryData",
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"headerParameters": {
"parameters": [
{
"name": "Content-Disposition",
"value": "attachment; filename=image.jpg"
}
]
},
"inputDataFieldName": "data",
"nodeCredentialType": "wordpressApi"
},
"credentials": {
"wordpressApi": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "5232d1c0-ad46-4f42-8672-37b20d14503b",
"name": "Data Arrange",
"type": "n8n-nodes-base.set",
"position": [
4896,
1024
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "56e7a705-7cca-4f7f-8515-d1999b90948b",
"name": "image_id",
"type": "number",
"value": "={{ $json.id }}"
},
{
"id": "55cc4e3e-d0fe-418f-9923-78cb90f95921",
"name": "title",
"type": "string",
"value": "={{ $('AI Content Generator').item.json.output.title }}"
},
{
"id": "c3a9812c-b7af-4ec6-ba70-12e219653ef4",
"name": "meta_title",
"type": "string",
"value": "={{ $('AI Content Generator').item.json.output['meta title'] }}"
},
{
"id": "55f91c5f-73ff-40f0-917a-22527c281487",
"name": "meta_description",
"type": "string",
"value": "={{ $('AI Content Generator').item.json.output['meta description'] }}"
},
{
"id": "e92badb9-7125-43e2-b4c7-156e75ff1879",
"name": "content",
"type": "string",
"value": "={{ $json.data }}"
},
{
"id": "f95e0bf5-5fa8-4bf7-9ea8-6d6306cc82c6",
"name": "news_post_link",
"type": "string",
"value": "={{ $('Slect one worthy article').item.json.output.link }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "e802a218-eb61-4d03-973d-4295570cb83a",
"name": "Markdown to Html",
"type": "n8n-nodes-base.markdown",
"position": [
4672,
1024
],
"parameters": {
"mode": "markdownToHtml",
"options": {},
"markdown": "={{ $('AI Content Generator').item.json.output.content }}"
},
"typeVersion": 1
},
{
"id": "1ad029c9-8be2-4864-988a-29fa1bee6a1f",
"name": "Create Post in WP",
"type": "n8n-nodes-base.wordpress",
"position": [
5104,
1024
],
"parameters": {
"title": "={{ $json.title }}",
"additionalFields": {
"status": "draft",
"content": "={{ $json.content }}",
"authorId": 1,
"categories": [
24
]
}
},
"credentials": {
"wordpressApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "710f89d5-1c42-4610-ba23-b7ad6b95863a",
"name": "Add Image, Meta Title, Description to Post",
"type": "n8n-nodes-base.httpRequest",
"position": [
5360,
1024
],
"parameters": {
"url": "=https://example.com/wp-json/wp/v2/posts/{{ $json[\"id\"] }}",
"method": "PUT",
"options": {},
"jsonBody": "={\n \"featured_media\": {{ $('Data Arrange').item.json.image_id }},\n \"meta\": {\n \"rank_math_description\": \"{{ $('Data Arrange').item.json.meta_description }}\",\n\"rank_math_title\": \"{{ $('Data Arrange').item.json.meta_title }}\"\n }\n}\n",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "wordpressApi"
},
"credentials": {
"wordpressApi": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "9252e1f1-aff5-44d9-8f44-69cd8b0b88d3",
"name": "Get Previous Published News",
"type": "n8n-nodes-base.googleSheets",
"position": [
1376,
880
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WIAn5IizEuayHUgc5RcEjfgwOUgwaA8F0oAfR7MB2RE/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1WIAn5IizEuayHUgc5RcEjfgwOUgwaA8F0oAfR7MB2RE",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WIAn5IizEuayHUgc5RcEjfgwOUgwaA8F0oAfR7MB2RE/edit?usp=drivesdk",
"cachedResultName": "Google News to Wordpress"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"executeOnce": true,
"typeVersion": 4.5
},
{
"id": "489cef6d-bcac-465a-ba59-06b85af75b58",
"name": "Sort By Time",
"type": "n8n-nodes-base.sort",
"position": [
1984,
976
],
"parameters": {
"options": {},
"sortFieldsUi": {
"sortField": [
{
"order": "descending",
"fieldName": "iso_date"
}
]
}
},
"typeVersion": 1
},
{
"id": "df5a8907-19fc-44db-a20d-79aff8cb1cbd",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
496,
608
],
"parameters": {
"width": 480,
"height": 832,
"content": "## Auto-Publish Blog Posts to WordPress from Google News, Claude, Gemini & RankMath\n\n### How it works\n\n1. Triggers every 12 hours to start process.\n2. Searches Google News and retrieves articles.\n3. Filters and sorts articles, keeping new ones.\n4. Selects one article and processes content.\n5. Generates AI content and featured image.\n6. Uploads content to Wordpress and logs to Google Sheets.\n\n### Setup steps\n\n- [ ] Configure Google Sheets API credentials for reading and writing.\n- [ ] Set up Google News API access for fetching articles.\n- [ ] Ensure WordPress API permissions for posting content.\n\n### Customization\n\nAdjust the news search query and posting schedules based on your content strategy."
},
"typeVersion": 1
},
{
"id": "2440a2d1-5697-4cd5-8e1c-7ee985225bfb",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1008,
784
],
"parameters": {
"color": 7,
"width": 528,
"height": 496,
"content": "## Trigger and fetch news\n\nInitiates the workflow and fetches news articles from Google News."
},
"typeVersion": 1
},
{
"id": "97c0af34-7b57-465c-aa00-202229153975",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1552,
864
],
"parameters": {
"color": 7,
"width": 816,
"height": 368,
"content": "## Process and filter news\n\nProcesses news articles, removes duplicates, sorts, and limits results."
},
"typeVersion": 1
},
{
"id": "4ed12302-fc4b-43ed-b449-6eb3ba8b361a",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2384,
768
],
"parameters": {
"color": 7,
"width": 1024,
"height": 496,
"content": "## Select article and prepare content\n\nSelects a worthy article using AI and scrapes its source content."
},
"typeVersion": 1
},
{
"id": "e3874736-be74-4eda-abaa-7c0849e8e5d0",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
3424,
784
],
"parameters": {
"color": 7,
"width": 752,
"height": 496,
"content": "## Aggregate and generate new content\n\nAggregates content and uses AI to create new articles."
},
"typeVersion": 1
},
{
"id": "b417d105-b5b4-40a1-a927-d2d65fe0653b",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
4192,
896
],
"parameters": {
"color": 7,
"width": 432,
"height": 304,
"content": "## Generate and upload image\n\nUses AI to generate a featured image and uploads it to WordPress."
},
"typeVersion": 1
},
{
"id": "605da282-c06f-49b8-9bee-cdf7c559055d",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
4640,
928
],
"parameters": {
"color": 7,
"width": 640,
"height": 272,
"content": "## Format and post content\n\nFormats content into HTML and posts to WordPress."
},
"typeVersion": 1
},
{
"id": "d1eed9f1-054a-4bfa-b23b-2b9f0a5f4094",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
5312,
896
],
"parameters": {
"color": 7,
"width": 416,
"height": 304,
"content": "## Finalize post and update logs\n\nAdds additional content to the post and logs to Google Sheets."
},
"typeVersion": 1
},
{
"id": "747590b8-3d62-466e-af2d-d5f23e2157c2",
"name": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
3520,
976
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "content"
}
]
}
},
"typeVersion": 1
},
{
"id": "7647690d-8f28-4ec7-ad03-7c445e9ddc77",
"name": "Add Details In Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
5552,
1024
],
"parameters": {
"columns": {
"value": {
"news_link": "={{ $('Data Arrange').item.json.news_post_link }}",
"wp_post_link": "={{ $('Create Post in WP').item.json.link }}"
},
"schema": [
{
"id": "news_link",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "news_link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "wp_post_link",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "wp_post_link",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"row_number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WIAn5IizEuayHUgc5RcEjfgwOUgwaA8F0oAfR7MB2RE/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1WIAn5IizEuayHUgc5RcEjfgwOUgwaA8F0oAfR7MB2RE",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WIAn5IizEuayHUgc5RcEjfgwOUgwaA8F0oAfR7MB2RE/edit?usp=drivesdk",
"cachedResultName": "Google News to Wordpress"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
}
],
"connections": {
"Limit": {
"main": [
[
{
"node": "Merge into One Output",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "AI Content Generator",
"type": "main",
"index": 0
}
]
]
},
"Data Arrange": {
"main": [
[
{
"node": "Create Post in WP",
"type": "main",
"index": 0
}
]
]
},
"Sort By Time": {
"main": [
[
{
"node": "Limit",
"type": "main",
"index": 0
}
]
]
},
"Markdown to Html": {
"main": [
[
{
"node": "Data Arrange",
"type": "main",
"index": 0
}
]
]
},
"Split into Items": {
"main": [
[
{
"node": "Remove Already Used News",
"type": "main",
"index": 1
}
]
]
},
"Create Post in WP": {
"main": [
[
{
"node": "Add Image, Meta Title, Description to Post",
"type": "main",
"index": 0
}
]
]
},
"Google_news search": {
"main": [
[
{
"node": "Split into Items",
"type": "main",
"index": 0
}
]
]
},
"Scrape Source Page": {
"main": [
[
{
"node": "Extract Article Content",
"type": "main",
"index": 0
}
]
]
},
"AI Content Generator": {
"main": [
[
{
"node": "Generate Featured Image",
"type": "main",
"index": 0
}
]
]
},
"Merge into One Output": {
"main": [
[
{
"node": "Slect one worthy article",
"type": "main",
"index": 0
}
]
]
},
"OpenRouter Chat Model": {
"ai_languageModel": [
[
{
"node": "Slect one worthy article",
"type": "ai_languageModel",
"index": 0
},
{
"node": "AI Content Generator",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Uploading Image to WP": {
"main": [
[
{
"node": "Markdown to Html",
"type": "main",
"index": 0
}
]
]
},
"\u23f0 Run Every 12 Hours": {
"main": [
[
{
"node": "Google_news search",
"type": "main",
"index": 0
},
{
"node": "Get Previous Published News",
"type": "main",
"index": 0
}
]
]
},
"Extract Article Content": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Generate Featured Image": {
"main": [
[
{
"node": "Uploading Image to WP",
"type": "main",
"index": 0
}
]
]
},
"Remove Already Used News": {
"main": [
[
{
"node": "Sort By Time",
"type": "main",
"index": 0
}
]
]
},
"Slect one worthy article": {
"main": [
[
{
"node": "Scrape Source Page",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Slect one worthy article",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Structured Output Parser1": {
"ai_outputParser": [
[
{
"node": "AI Content Generator",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Get Previous Published News": {
"main": [
[
{
"node": "Remove Already Used News",
"type": "main",
"index": 0
}
]
]
},
"Add Image, Meta Title, Description to Post": {
"main": [
[
{
"node": "Add Details In Sheet",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googlePalmApigoogleSheetsOAuth2ApiopenRouterApiserpApiwordpressApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Stop writing blog posts manually. This workflow monitors Google News every 12 hours on any topic you choose, automatically selects the most relevant article, scrapes the source content, generates a 100% original SEO-optimized blog post using Claude AI, creates a featured image…
Source: https://n8n.io/workflows/14576/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Most blogs publish words. This system publishes experiences.
Complete PostgreSQL-backed system: Keyword scoring → AI research → Multi-part content generation → fal.ai Nano Banana image generation → WordPress publishing
This n8n workflow turns a script and character/setting description from Google Sheets into a complete stitched UGC-style video ad, fully automated from intake to final delivery.
SEO Blog Article Generation Workflow. Uses outputParserStructured, httpRequest, agent, lmChatOpenAi. Scheduled trigger; 56 nodes.
🧠 Automate end-to-end SEO blog creation and WordPress publishing using a GPT-5 multi-agent workflow with real-time research, metadata generation, and optional featured images.