Automate Content Generator for WordPress with DeepSeek R1
Workflow JSON
{"id": "p5bfwpcRy6LK33Io", "meta": {"instanceId": "a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462", "templateCredsSetupCompleted": true}, "name": "Automate Content Generator for WordPress with DeepSeek R1", "tags": [], "nodes": [{"id": "c4a6995f-7769-4b77-80ca-1e6bccef77c1", "name": "When clicking \u2018Test workflow\u2019", "type": "n8n-nodes-base.manualTrigger", "position": [-20, 200], "parameters": {}, "typeVersion": 1}, {"id": "c76b1458-5130-41e7-b2f2-1cfe22eab536", "name": "Get Ideas", "type": "n8n-nodes-base.googleSheets", "position": [200, 200], "parameters": {"options": {}, "sheetName": {"__rl": true, "mode": "id", "value": "=Sheet1"}, "documentId": {"__rl": true, "mode": "id", "value": "YOURDOCUMENT"}}, "credentials": {"googleSheetsOAuth2Api": {"id": "", "name": "[Your googleSheetsOAuth2Api]"}}, "typeVersion": 4.5}, {"id": "8d17a640-3e15-42e9-9481-e3291d395ccd", "name": "Set your prompt", "type": "n8n-nodes-base.set", "position": [420, 200], "parameters": {"options": {}, "assignments": {"assignments": [{"id": "3e8d2523-66aa-46fe-adcc-39dc78b9161e", "name": "prompt", "type": "string", "value": "={{ $json.PROMPT }}"}]}}, "typeVersion": 3.4}, {"id": "4f0e9065-b331-49ed-acd9-77c7c43e89a5", "name": "Create post on Wordpress", "type": "n8n-nodes-base.wordpress", "position": [0, 500], "parameters": {"title": "={{ $json.message.content }}", "additionalFields": {"status": "draft", "content": "={{ $('Generate article with DeepSeek').item.json.message.content }}"}}, "credentials": {"wordpressApi": {"id": "", "name": "[Your wordpressApi]"}}, "typeVersion": 1}, {"id": "cb85d980-9d60-4c85-8574-b46e4cc14341", "name": "Upload image", "type": "n8n-nodes-base.httpRequest", "position": [420, 500], "parameters": {"url": "https://YOURSITE.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=\"copertina-{{ $('Create post on Wordpress').item.json.id }}.jpg\""}]}, "inputDataFieldName": "data", "nodeCredentialType": "wordpressApi"}, "credentials": {"wordpressApi": {"id": "", "name": "[Your wordpressApi]"}, "wooCommerceApi": {"id": "", "name": "[Your wooCommerceApi]"}}, "typeVersion": 4.2}, {"id": "bc71ed8a-fe35-487a-b4cd-6b8c1b256763", "name": "Set Image", "type": "n8n-nodes-base.httpRequest", "position": [640, 500], "parameters": {"url": "=https://wp.test.7hype.com/wp-json/wp/v2/posts/{{ $('Create post on Wordpress').item.json.id }}", "method": "POST", "options": {}, "sendQuery": true, "authentication": "predefinedCredentialType", "queryParameters": {"parameters": [{"name": "featured_media", "value": "={{ $json.id }}"}]}, "nodeCredentialType": "wordpressApi"}, "credentials": {"wordpressApi": {"id": "", "name": "[Your wordpressApi]"}}, "typeVersion": 4.2}, {"id": "fbed2813-cc64-42a2-994f-3696e9d8d8fe", "name": "Update Sheet", "type": "n8n-nodes-base.googleSheets", "position": [880, 500], "parameters": {"columns": {"value": {"DATA": "={{ $now.format('dd/LL/yyyy') }}", "TITOLO": "={{ $('Generate title with DeepSeek').item.json.message.content }}", "ID POST": "={{ $('Create post on Wordpress').item.json.id }}", "row_number": "={{ $('Get Ideas').item.json.row_number }}"}, "schema": [{"id": "DATA", "type": "string", "display": true, "required": false, "displayName": "DATA", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "PROMPT", "type": "string", "display": true, "required": false, "displayName": "PROMPT", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "TITOLO", "type": "string", "display": true, "required": false, "displayName": "TITOLO", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "ID POST", "type": "string", "display": true, "required": false, "displayName": "ID POST", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "row_number", "type": "string", "display": true, "removed": false, "readOnly": true, "required": false, "displayName": "row_number", "defaultMatch": false, "canBeUsedToMatch": true}], "mappingMode": "defineBelow", "matchingColumns": ["row_number"], "attemptToConvertTypes": false, "convertFieldsToString": false}, "options": {}, "operation": "update", "sheetName": {"__rl": true, "mode": "list", "value": "gid=0", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/16VFeCrE5BkMBoA_S5HD-9v7C0sxcXAUiDbq5JvkDqnI/edit#gid=0", "cachedResultName": "Foglio1"}, "documentId": {"__rl": true, "mode": "list", "value": "16VFeCrE5BkMBoA_S5HD-9v7C0sxcXAUiDbq5JvkDqnI", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/16VFeCrE5BkMBoA_S5HD-9v7C0sxcXAUiDbq5JvkDqnI/edit?usp=drivesdk", "cachedResultName": "Plan Blog wp.test.7hype.com"}}, "credentials": {"googleSheetsOAuth2Api": {"id": "", "name": "[Your googleSheetsOAuth2Api]"}}, "typeVersion": 4.5}, {"id": "8db2b0cb-6d61-4e2d-bfac-e25a0385296d", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [-60, -360], "parameters": {"color": 3, "width": 800, "height": 380, "content": "## Target\nThis workflow is designed to automatically generate seo-friendly content for wordpress through DeepSeek R1 by giving input ideas on how to structure the article. A cover image is also generated and uploaded with OpenAI DALL-E 3. This flow is designed to be executed automatically (ad \"On a schedule\" node) and thus have a complete editorial plan.\n\nThis process is useful for blog managers who want to automate content creation and publishing.\n\n## Preliminary step\nCreate a google sheet with the following columns:\n- Date\n- Prompt\n- Title\n- Post ID\n\nFill in only the \"Prompt\" column with basic ideas that DeepSeek will work on to generate the content."}, "typeVersion": 1}, {"id": "ab620659-558d-46f0-ab85-e061af99b743", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [140, 100], "parameters": {"height": 260, "content": "Connect with your Google Sheet. This node select only rows for which no content has been generated yet in WordPress"}, "typeVersion": 1}, {"id": "73b0e640-8ccf-4e29-a0cd-6340db907bbd", "name": "Generate article with DeepSeek", "type": "@n8n/n8n-nodes-langchain.openAi", "position": [640, 200], "parameters": {"modelId": {"__rl": true, "mode": "id", "value": "=deepseek-reasoner"}, "options": {"maxTokens": 2048}, "messages": {"values": [{"content": "=You are an SEO expert, write an article based on this topic:\n{{ $json.prompt }}\n\nInstructions:\n- In the introduction, introduce the topic that will be explored in the rest of the text\n- The introduction should be about 120 words\n- The conclusions should be about 120 words\n- Use the conclusions to summarize everything said in the article and offer a conclusion to the reader\n- Write a maximum of 4-5 chapters and argue them.\n- The chapters should follow a logical flow and not repeat the same concepts.\n- The chapters should be related to each other and not isolated blocks of text. The text should flow and follow a linear logic.\n- Do not start chapters with \"Chapter 1\", \"Chapter 2\", \"Chapter 3\" ... write only the chapter title\n- For the text, use HTML for formatting, but limit yourself to bold, italics, paragraphs and lists.\n- Don't put the output in ```html but only text\n- Don't use markdown for formatting.\n- Go deeper into the topic you're talking about, don't just throw superficial information there\n- In output I want only the HTML format"}]}}, "credentials": {"openAiApi": {"id": "", "name": "[Your openAiApi]"}}, "typeVersion": 1.8}, {"id": "6ef4e0d1-6123-4f47-94fb-c06c785ddd92", "name": "Generate title with DeepSeek", "type": "@n8n/n8n-nodes-langchain.openAi", "position": [880, 200], "parameters": {"modelId": {"__rl": true, "mode": "id", "value": "=deepseek-reasoner"}, "options": {"maxTokens": 2048}, "messages": {"values": [{"content": "=You are an SEO Copywriter and you need to think of a title of maximum 60 characters for the following article:\n{{ $json.message.content }}\n\nInstructions:\n- Use keywords contained in the article\n- Do not use any HTML characters\n- Output only the string containing the title.\n- Do not use quotation marks. The only special characters allowed are \":\" and \",\""}]}}, "credentials": {"openAiApi": {"id": "", "name": "[Your openAiApi]"}}, "typeVersion": 1.8}, {"id": "2ecc8514-c04e-4f8b-9ab3-560f2cf910b0", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [580, 100], "parameters": {"width": 420, "height": 260, "content": "Add your DeepSeek API credential. If you want you can change the model with \"deepseek-chat\""}, "typeVersion": 1}, {"id": "196f7799-a6ab-429b-afd3-bcbcbd65da3b", "name": "Sticky Note3", "type": "n8n-nodes-base.stickyNote", "position": [-20, 420], "parameters": {"width": 160, "height": 260, "content": "Add your WordPress API credential\n"}, "typeVersion": 1}, {"id": "93c2d359-531a-4cc9-8a18-870c2d6ec62c", "name": "Generate Image with DALL-E", "type": "@n8n/n8n-nodes-langchain.openAi", "position": [200, 500], "parameters": {"prompt": "=Generate a real photographic image used as a cover for a blog post:\n\nImage prompt:\n{{ $('Generate title with DeepSeek').item.json.message.content }}, photography, realistic, sigma 85mm f/1.4", "options": {"size": "1792x1024", "style": "natural", "quality": "hd"}, "resource": "image"}, "credentials": {"openAiApi": {"id": "", "name": "[Your openAiApi]"}}, "typeVersion": 1.8}, {"id": "eec14cd7-fb2b-4f7d-ad94-bcffc1249353", "name": "Sticky Note4", "type": "n8n-nodes-base.stickyNote", "position": [180, 420], "parameters": {"width": 160, "height": 260, "content": "Add your OpenAI API credential\n"}, "typeVersion": 1}, {"id": "4f15679b-bc8f-45b8-b3c4-8b43d7f9bb6f", "name": "Sticky Note5", "type": "n8n-nodes-base.stickyNote", "position": [380, 420], "parameters": {"width": 180, "height": 260, "content": "Upload the image on your WordPress via APIs\n"}, "typeVersion": 1}, {"id": "abe32434-671a-4ac3-a788-fcf5fd0e9435", "name": "Sticky Note6", "type": "n8n-nodes-base.stickyNote", "position": [600, 420], "parameters": {"width": 180, "height": 260, "content": "Set the uploaded image with the newly created article\n"}, "typeVersion": 1}], "active": false, "pinData": {}, "settings": {"executionOrder": "v1"}, "versionId": "315cc8df-bca2-4180-806e-a01407dccc79", "connections": {"Get Ideas": {"main": [[{"node": "Set your prompt", "type": "main", "index": 0}]]}, "Set Image": {"main": [[{"node": "Update Sheet", "type": "main", "index": 0}]]}, "Upload image": {"main": [[{"node": "Set Image", "type": "main", "index": 0}]]}, "Set your prompt": {"main": [[{"node": "Generate article with DeepSeek", "type": "main", "index": 0}]]}, "Create post on Wordpress": {"main": [[{"node": "Generate Image with DALL-E", "type": "main", "index": 0}]]}, "Generate Image with DALL-E": {"main": [[{"node": "Upload image", "type": "main", "index": 0}]]}, "Generate title with DeepSeek": {"main": [[{"node": "Create post on Wordpress", "type": "main", "index": 0}]]}, "Generate article with DeepSeek": {"main": [[{"node": "Generate title with DeepSeek", "type": "main", "index": 0}]]}, "When clicking \u2018Test workflow\u2019": {"main": [[{"node": "Get Ideas", "type": "main", "index": 0}]]}}}How to Import This Workflow
- 1Copy the workflow JSON above using the Copy Workflow JSON button.
- 2Open your n8n instance and go to Workflows.
- 3Click Import from JSON and paste the copied workflow.
Don't have an n8n instance? Start your free trial at n8nautomation.cloud
Related Templates
Automate Blog Creation in Brand Voice with AI
Generate blog posts in your brand's unique voice and style directly within WordPress using this powerful AI-driven workflow. It begins by fetching existing articles from your blog via an HTTP request, then intelligently extracts their content and structure using an HTML node and an AI chain LLM to understand your established writing patterns. Concurrently, an AI information extractor analyzes these articles to pinpoint and define your brand's distinct voice characteristics. This extracted style and voice, along with the structural insights, are then fed into an AI content generation agent which crafts new blog post drafts. Finally, these AI-generated articles are automatically saved as drafts in your WordPress instance, ready for review and publication. This workflow is ideal for marketing teams, content creators, and agencies looking to scale their content production while maintaining consistent brand messaging and reducing the manual effort involved in drafting new posts, ultimately saving significant time and resources.
Auto-Tag Blog Posts in WordPress with AI
Automatically tag your WordPress blog posts with relevant keywords using the power of AI. This n8n workflow connects your WordPress site with OpenAI's advanced language models to intelligently analyze new or existing articles and assign appropriate tags, streamlining your content management process. It starts by either triggering manually or by an RSS Feed Trigger monitoring your blog for new content, then sends the article text to an OpenAI Chat Model for tag generation. The workflow then checks your existing WordPress tags via an HTTP Request to avoid duplicates, creates any new tags needed with another HTTP Request, and finally updates the WordPress post with the newly generated and existing tags. This automation is perfect for content managers, marketing teams, and bloggers who want to improve SEO, enhance content discoverability, and reduce the manual effort of categorizing a large volume of articles, ultimately saving significant time and ensuring consistent tagging across your entire blog.
Extract spend details (template)
Automate the extraction and tracking of spend details directly from your email inbox into Google Sheets. This workflow connects Gmail to automatically retrieve invoice and payment emails, then uses AI models like Google Gemini Chat Model and Groq Chat Model to intelligently parse and extract key financial data. The extracted information, including vendor, amount, date, and itemized details, is then seamlessly organized and sent to Google Sheets for centralized record-keeping. This powerful automation is ideal for marketing teams, small businesses, and freelancers who need to efficiently monitor expenses, reconcile accounts, and gain better financial visibility without manual data entry, saving significant time and reducing errors in financial tracking.