Opening Problem Statement
Meet Elena, a busy blog manager for a tech startup running a WordPress site. Every week, she spends countless hours brainstorming article ideas, writing drafts, designing cover images, and finally publishing posts. Errors creep in during manual tasks like copying content, uploading images, and updating editorial spreadsheets. The time lost adds up to over 10 hours weekly, delaying content schedules and frustrating the marketing team.
This workflow solves exactly Elena’s pain by automating the entire SEO content generation process, from idea collection in Google Sheets to publishing draft posts with featured images on WordPress. It eliminates tedious manual work and accelerates the editorial pipeline.
What This Automation Does
When you run this workflow, here’s what happens step-by-step:
- Pulls fresh article ideas/prompts from a Google Sheets spreadsheet where you maintain simple content thoughts.
- Feeds each prompt to DeepSeek (a specialized OpenAI model) to generate a fully formatted, SEO-rich HTML article.
- Generates a catchy blog post title from the article content using DeepSeek’s SEO copywriter model.
- Creates a new draft WordPress post with the generated title and article content.
- Uses OpenAI’s DALL·E 3 model to create a realistic photographic cover image for the post based on the title.
- Uploads the image to WordPress via its REST API, then sets it as the featured image for the post.
- Updates the original Google Sheets row to record the post ID, publish date, and generated title, keeping editorial tracking seamless.
This workflow saves Elena about 8-10 hours a week and reduces human errors typically seen in content publication.
Prerequisites ⚙️
- n8n account (self-hosted or cloud) for automation orchestration.
- Google Sheets account with a prepared sheet containing columns: Date, Prompt, Title, and Post ID filled only in Prompt initially.
- WordPress site with API access enabled and credentials for n8n integration.
- OpenAI account with API access to DeepSeek models and DALL·E 3 for text and image generation.
Step-by-Step Guide
Step 1: Create the Google Sheets Content Ideas Document
Log in to Google Sheets and create a new spreadsheet named “Plan Blog” or similar. Add these columns in the first sheet: Date, Prompt, Title, Post ID.
Fill some rows with creative article prompt ideas in the Prompt column only. Leave Title and Post ID blank, they will be auto-filled.
Make sure your Google Sheets API credentials are ready in n8n.
Step 2: Set Up the Manual Trigger Node
In n8n, add the Manual Trigger node named “When clicking ‘Test workflow’”. This node starts the workflow on click for testing or manual runs.
Underneath this, add the Google Sheets node named “Get Ideas”. Connect the trigger node’s output to this node.
In “Get Ideas”, configure your Sheet ID and specify the sheet name as Sheet1 or your actual sheet.
Step 3: Filter and Prepare Prompts for Processing
Add a Set node named “Set your prompt” to map the prompt from Google Sheets data into the workflow as variable prompt.
This ensures DeepSeek has the exact text to generate content from.
Step 4: Generate SEO Article Content with DeepSeek
Attach an OpenAI (DeepSeek) LangChain node named “Generate article with DeepSeek”.
In this node, set the model to your DeepSeek reasoner model ID and add the prompt input to instruct DeepSeek to write a structured SEO article in HTML format.
The prompt requests an introduction (~120 words), 4-5 logically connected chapters, and a conclusion (~120 words), using HTML tags for formatting.
Step 5: Generate a Catchy Title from the Article
Next, connect another OpenAI LangChain node named “Generate title with DeepSeek” tasked with creating an SEO-friendly article title of up to 60 characters.
Feed it the generated article text for keyword extraction and title crafting.
This is crucial for SEO success and user engagement.
Step 6: Create a Draft Post in WordPress
Now add the WordPress node “Create post on WordPress” to send the generated title and article content as a new draft post.
Use credentials from your WordPress API setup.
Ensure the status field is set to “draft” to allow review before publishing.
Step 7: Generate a Cover Image with OpenAI DALL·E 3
Add the OpenAI LangChain node “Generate Image with DALL-E” configured to create a realistic photographic image.
Use the generated title as the image prompt with photography style instructions.
This image will become the blog post’s featured image.
Step 8: Upload the Generated Image to WordPress
Attach an HTTP Request node named “Upload image” to upload the binary image data to the WordPress media endpoint via REST API.
Set headers including the content disposition to name the file with the post ID.
Authenticate with WordPress API credentials.
Step 9: Set the Featured Image for the Post in WordPress
Next, add another HTTP Request node “Set Image” to update the post metadata assigning the uploaded image as the featured media.
This enhances visual appeal and SEO.
Step 10: Update Google Sheets with Post Details
Finally, add a Google Sheets node “Update Sheet” to record the published post ID, generated title, and current date back into the relevant row.
This completes the editorial loop, providing full tracking and transparency.
Customizations ✏️
- Change Content Model: In “Generate article with DeepSeek”, switch the
modelIdto “deepseek-chat” for a more conversational tone. - Schedule Automation: Replace the Manual Trigger with an “On a schedule” trigger to run this flow automatically daily or weekly.
- Modify Image Style: Adjust the DALL·E node’s
styleparameter to “artistic” or “illustrative” for different cover image aesthetics. - Post Status: Change status in “Create post on WordPress” node from “draft” to “publish” for auto-publishing.
- Extend SEO Metadata: Add meta description and tags in the WordPress node additional fields for enhanced SEO.
Troubleshooting 🔧
Problem: “Authentication failed” on Google Sheets or WordPress nodes
Cause: Incorrect or expired API credentials.
Solution: Go to n8n credentials manager, re-authenticate your Google Sheets or WordPress account, and update the node credentials.
Problem: “Empty content generated” from DeepSeek nodes
Cause: Prompt format issues or API model limits exceeded.
Solution: Double-check the prompt syntax in the “Set your prompt” node; ensure your OpenAI plan permits the model usage and token limit.
Problem: “Image upload failed” in HTTP Request node
Cause: Missing or incorrect authorization headers for WordPress media endpoint.
Solution: Verify the WordPress API credentials in n8n and ensure the HTTP Request node headers are correctly set for authorization.
Pre-Production Checklist ✅
- Verify Google Sheets contains prompt entries without post IDs or titles filled.
- Check all API credentials are active and permissions are granted.
- Test manual trigger and review output at each stage (article, title, image upload).
- Backup your Google Sheets data before running automated updates.
- Confirm WordPress site API endpoints work externally with your credentials.
Deployment Guide
To deploy this workflow, first ensure all credentials are configured and tested with manual runs. Switch the trigger node from Manual Trigger to a scheduled trigger for automated runs.
Activate the workflow in n8n and monitor the execution logs for errors or warnings.
Logs will help track any failed nodes or issues during publishing.
FAQs
Q: Can I use another AI model instead of DeepSeek?
A: Yes, if the model supports SEO content generation and HTML output, you can replace the model ID in the OpenAI nodes.
Q: Does this workflow consume many API credits?
A: Yes, generating long articles and images via OpenAI will use your API quota. Monitor usage accordingly.
Q: Is my content and data safe?
A: Your data is sent only to authenticated APIs with your credentials and stored within your Google Sheets and WordPress environments, not publicly accessible.
Conclusion
By following this detailed tutorial, you automated the process of transforming simple article prompts stored in Google Sheets into fully formed WordPress draft posts complete with SEO-optimized content, catchy titles, and eye-catching cover images—all powered by DeepSeek and OpenAI’s DALL·E 3.
This saves you around 10 hours weekly and minimizes errors compared to manual content publishing.
Next, consider automating social sharing of new posts or adding automated SEO meta descriptions to further boost your blog’s performance.
Happy automating!