This workflow corresponds to n8n.io template #13383 — we link there as the canonical source.
This workflow follows the Agent → OpenRouter Chat 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 →
{
"id": "sortaw477IBQep0N",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Generate SEO articles from search queries to WordPress with BrowserAct",
"tags": [],
"nodes": [
{
"id": "9d3cc0f6-046e-445b-905e-aca156196b4e",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
-80,
16
],
"parameters": {
"options": {},
"fieldToSplitOut": "Queries"
},
"typeVersion": 1
},
{
"id": "56870f3e-9765-4dce-8b08-9e6f3d397635",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
144,
16
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "0b58dfb6-6e75-4618-81ac-733b67432646",
"name": "OpenRouter Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
544,
240
],
"parameters": {
"model": "openai/gpt-5",
"options": {}
},
"credentials": {
"openRouterApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "3b418ce1-0893-4d00-8df7-1f38832087ae",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
672,
240
],
"parameters": {
"autoFix": true,
"jsonSchemaExample": "{\n \"title\": \"Stop Overpaying for Automation: Why Reddit Experts Are ditching Zapier for n8n\",\n \"article\": \"................\"\n}"
},
"typeVersion": 1.3
},
{
"id": "f5466230-462d-46f4-bcd0-3b6404d9340b",
"name": "Create a post",
"type": "n8n-nodes-base.wordpress",
"position": [
1040,
192
],
"parameters": {
"title": "={{ $json.output.title }}",
"additionalFields": {
"content": "={{ $json.output.article }}"
}
},
"credentials": {
"wordpressApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "1069c849-14df-4ef7-8241-9cd716f85700",
"name": "Execute manually",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-528,
16
],
"parameters": {},
"typeVersion": 1
},
{
"id": "853f9109-4342-4a55-81e0-379b61a0bf43",
"name": "Send completion notification",
"type": "n8n-nodes-base.slack",
"disabled": true,
"position": [
368,
-176
],
"parameters": {
"text": "The Programmatic SEO Data Pipeline job has completed.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C09KLV9DJSX",
"cachedResultName": "all-browseract-workflow-test"
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.4
},
{
"id": "889791a7-0d6e-4713-8873-82989035bef5",
"name": "Extract search engine result",
"type": "n8n-nodes-browseract.browserAct",
"position": [
368,
16
],
"parameters": {
"type": "WORKFLOW",
"workflowId": "76966914945590330",
"workflowConfig": {
"value": {
"input-Querry": "={{ $json.Queries }}"
},
"schema": [
{
"id": "input-Reddit_Answer",
"type": "string",
"display": true,
"removed": true,
"required": false,
"description": "If left blank, the default value defined in BrowserAct will be used.",
"displayName": "Reddit_Answer",
"defaultMatch": true
},
{
"id": "input-Reddit_Search",
"type": "string",
"display": true,
"removed": true,
"required": false,
"description": "If left blank, the default value defined in BrowserAct will be used.",
"displayName": "Reddit_Search",
"defaultMatch": true
},
{
"id": "input-Querry",
"type": "string",
"display": true,
"removed": false,
"required": false,
"description": "If left blank, the default value defined in BrowserAct will be used.",
"displayName": "Querry",
"defaultMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"input-Querry"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"credentials": {
"browserActApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "89c30be8-43e9-48f6-b996-c60e237c0c3b",
"name": "Analyze the results and generate a post",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
592,
16
],
"parameters": {
"text": "=Scrapped Data : {{ $json.output.string }}",
"options": {
"systemMessage": "### ROLE\nYou are a Senior Technical Editor for a leading automation and SaaS publication (like TechCrunch or Zapier's blog). Your goal is to write a comprehensive, authoritative guide based on the provided raw research data.\n\n### DATA INSTRUCTION (CRITICAL)\n- **Source Material:** You will receive a dataset of discussions from automation experts.\n- **Sanitization Rule:** **NEVER** use words like \"Reddit,\" \"Redditor,\" \"thread,\" \"upvotes,\" \"comment section,\" or \"community.\"\n- **Framing:** Treat the input data as \"market research\" or \"industry consensus.\" Instead of \"One user said,\" write \"Experts suggest...\" or \"Real-world testing reveals...\"\n\n### OUTPUT FORMAT\nReturn a **single valid JSON object** with exactly two keys. Do not include markdown formatting (like ```json) around the output.\n\n{\n \"title\": \"A compelling, SEO-optimized Headline (String)\",\n \"article\": \"The full HTML content of the post (String)\"\n}\n\n### ARTICLE STRUCTURE & CONTENT REQUIREMENTS\nThe `article` value must use semantic HTML tags (`<h2>`, `<h3>`, `<p>`, `<ul>`, `<li>`, `<table>`, `<thead>`, `<tbody>`, `<tr>`, `<td>`, `<blockquote>`).\n\n**1. The \"Hook\" (Introduction)**\n - Start with the core problem identified in the data: \"Subscription Creep\" and \"Analysis Paralysis.\"\n - Acknowledge the pain of spending $400/mo on tools before landing a client.\n - State the article's purpose: To define the ultimate, cost-effective automation stack.\n\n**2. Deep-Dive Comparison (The Table)**\n - Create a detailed HTML `<table>` comparing **Zapier**, **Make**, and **n8n**.\n - Columns must include: **Tool Name**, **Cost Efficiency**, **Learning Curve**, **Best Use Case**.\n - Fill the table rows based strictly on the pros/cons found in the data (e.g., Zapier = expensive but easy; n8n = free/cheap but technical).\n\n**3. Section: \"The Integration vs. Innovation Paradox\"**\n - Use `<h2>` for the header.\n - Analyze the \"15k Lesson\" found in the data (the story about the HVAC/Plumbing automation).\n - **Key Takeaway:** Explain why building simple SMS automations often beats complex dashboards.\n - Use a `<blockquote>` for the principle: \"Integration beats innovation every single time.\"\n\n**4. Section: \"The 'No-Subscription' Stack for Agencies\"**\n - detailed breakdown of how to build a stack that doesn't bleed money.\n - Mention the specific tools cited for low-cost setups (e.g., Self-hosted n8n, Claude for coding, Vellum for agents).\n\n**5. Section: \"When to Switch\" (Decision Matrix)**\n - Use `<h3>` headers.\n - Explain exactly when a business should move from Zapier to Make, or Make to n8n, based on the volume of tasks mentioned in the data.\n\n**6. Conclusion**\n - A final, authoritative verdict.\n - Call to Action: Encourage the reader to audit their current subscriptions today.\n\n### TONE GUIDELINES\n- **Professional & Direct:** No fluff. No \"In this digital age.\" Start sentences with strong verbs.\n- **Analytical:** Focus on ROI (Return on Investment), efficiency, and technical reliability.\n- **Visuals:** Use bolding (`<strong>`) for key concepts and tools to make the text skimmable."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3
},
{
"id": "273f7979-3688-466f-beaf-9b0a38cbd9cb",
"name": "Documentation",
"type": "n8n-nodes-base.stickyNote",
"position": [
-944,
-512
],
"parameters": {
"width": 380,
"height": 520,
"content": "## \u26a1 Workflow Overview & Setup\n\n**Summary:** This automation runs a programmatic SEO pipeline by scraping search insights (e.g., Reddit discussions) for specific queries, using AI to write authoritative technical guides, and publishing them directly to WordPress.\n\n### Requirements\n* **Credentials:** BrowserAct, OpenRouter (GPT-5), WordPress, Slack.\n* **Mandatory:** BrowserAct API (Template: **Programmatic SEO Data Pipeline**)\n\n### How to Use\n1. **Credentials:** Set up your BrowserAct, OpenRouter, WordPress, and Slack credentials in n8n.\n2. **BrowserAct Template:** Ensure you have the **Programmatic SEO Data Pipeline** template saved in your BrowserAct account.\n3. **Configuration:** Update the **Set queries** node with your list of target keywords or questions.\n\n### Need Help?\n[How to Find Your BrowserAct API Key & Workflow ID](https://docs.browseract.com)\n[How to Connect n8n to BrowserAct](https://docs.browseract.com)\n[How to Use & Customize BrowserAct Templates](https://docs.browseract.com)"
},
"typeVersion": 1
},
{
"id": "2abe7774-f730-41a8-869d-b9cb2dac34b6",
"name": "Step 1 Explanation",
"type": "n8n-nodes-base.stickyNote",
"position": [
96,
400
],
"parameters": {
"color": 7,
"width": 1084,
"height": 124,
"content": "### \ud83d\udd0d Step 1: Batch Research, AI Editorial & Publishing\n\nThe workflow iterates through a predefined list of high-intent search queries. BrowserAct scrapes search results (focusing on community discussions) to gather raw user insights and real-world feedback for each topic.AI analyzes the raw data to draft a comprehensive guide.The formatted article is automatically published to WordPress as a new post. "
},
"typeVersion": 1
},
{
"id": "78baacea-6784-47d3-beab-fa1493e89742",
"name": "Set queries (Search Input)",
"type": "n8n-nodes-base.set",
"position": [
-304,
16
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "4143b40c-56ef-4f84-8330-d2c172daf734",
"name": "Queries",
"type": "array",
"value": "[\"What are the best tools for automation\" , \"Looking for a cheaper alternative to Zapier\"]"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ce09bd75-a178-4c0f-9d4d-a77d4293ad56",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-544,
-512
],
"parameters": {
"color": 6,
"width": 752,
"height": 432,
"content": "@[youtube](5_bUlnRBre0)"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "b0af0bfe-98ca-4b81-a32d-b91bc1ea9f72",
"connections": {
"Split Out": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Create a post": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[
{
"node": "Send completion notification",
"type": "main",
"index": 0
}
],
[
{
"node": "Extract search engine result",
"type": "main",
"index": 0
}
]
]
},
"Execute manually": {
"main": [
[
{
"node": "Set queries (Search Input)",
"type": "main",
"index": 0
}
]
]
},
"OpenRouter Chat Model": {
"ai_languageModel": [
[
{
"node": "Analyze the results and generate a post",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Structured Output Parser",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Analyze the results and generate a post",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Set queries (Search Input)": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Extract search engine result": {
"main": [
[
{
"node": "Analyze the results and generate a post",
"type": "main",
"index": 0
}
]
]
},
"Analyze the results and generate a post": {
"main": [
[
{
"node": "Create a post",
"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.
browserActApiopenRouterApislackApiwordpressApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automates a programmatic SEO pipeline by turning a list of search queries into fully researched, authoritative blog posts. It scrapes search results (focusing on community insights like Reddit) for real-world data, uses AI to draft comprehensive guides, and…
Source: https://n8n.io/workflows/13383/ — 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.
Exams create significant stress for students. This workflow automates syllabus analysis and predicts exam trends using AI, helping educators and students better prepare for GCE 'O' Level Mathematics i
100% autonomous workflow that transforms YouTube videos into unique, high-quality, SEO-optimized blog articles and automatically publishes them to WordPress. No human intervention required: it uses Yo
The best content automation in the market! This advanced workflow not only creates and publishes SEO-optimized blog posts to your WordPress website but also backs up all content and images to a design
✍️🌄 Your First Wordpress Content Creator - Quick Start. Uses manualTrigger, lmChatOpenAi, outputParserStructured, agent. Event-driven trigger; 39 nodes.
🔍🛠️Generate SEO-Optimized WordPress Content with Perplexity Research. Uses stickyNote, wordpress, lmChatOpenAi, outputParserStructured. Event-driven trigger; 25 nodes.