WordPress blog automation with Airtable interface, human review & AI research v2
WordPress Blog Automation with human-in-the-loop and deeper research in Airtable v2
Take full control of your AI-powered content creation with this advanced human-in-the-loop workflow. Designed for power users who demand both automation and editorial oversight, this template transforms Airtable into a command center for producing deeply researched, long-form articles and publishing them directly to WordPress.
This system elevates content creation by introducing a hierarchical structure of chapters and subchapters, allowing you to build comprehensive articles, guides, or even e-books with unparalleled detail. From initial research to final publication, you guide the AI at every critical step - from content structure to the final visuals - ensuring the final output is high-quality, brand-aligned, and perfectly structured.
This version v2 is a major upgrade from the HUMAN-IN-THE-LOOP Content Automation Pro with Deep Research & Airtable for Power Users - Collaborative AI for WordPress Blog Automation.
For more powerful n8n templates, visit our website at aiautomationpro.org.
What's New in V2: Deeper Research & More Control
This version introduces significant upgrades for creating more authoritative and well-structured content:
- Conditional Deeper Research: The workflow now generates both chapters and subchapters, allowing you to create more detailed, long-form articles with a clear, logical flow.
- Granular Research and Writing: The AI performs research and writes content at the subchapter level, resulting in more in-depth and comprehensive articles before automatically compiling them into full chapters.
- Manual Image Override: Gain full control over your article's visuals. You can now manually upload your own images for both the featured image and individual chapters, overriding the AI-generated suggestions.
- Multi-Language Support: You can now define a target language in the Airtable settings, enabling the AI to generate content for different global audiences.
- Dynamic WordPress Categorization & Tagging: The AI intelligently assigns your post to the most relevant existing WordPress categories and generates a list of relevant tags, improving on-site organization and SEO.
- Simplified Architecture with Native Perplexity Node: Thanks to updates in n8n's Perplexity node, the separate "Research Tool" sub-workflow has been eliminated. All research calls are now made directly within the Main Flow. This simplifies the template's structure from three workflows down to two, making it easier to set up, manage, and debug.
What it does
Fully automated content generation tools often lack the nuance, accuracy, and strategic control necessary for truly impactful content. This workflow solves that critical gap by integrating powerful AI capabilities into a structured, human-supervised content creation process. It automates the most repetitive tasks - like research gathering and chapter ideation - while embedding essential human review points at critical junctures.
Instead of simply providing a topic and receiving a finished article of uncertain quality, you actively guide the process step-by-step. This approach makes it perfect for creating high-quality, deeply researched, and brand-aligned blog posts for WordPress more efficiently, without ever sacrificing editorial control.
Who is this for?
This workflow template is meticulously designed for individuals and teams who seek a powerful blend of AI-driven efficiency and human-controlled quality assurance:
- Content Creators & Bloggers: Who want to leverage AI for drafting and research but maintain full editorial control.
- Marketing Teams: Looking to scale content production while ensuring brand voice and quality consistency.
- SEO Specialists: Needing to produce well-researched, structured, and SEO-optimized content regularly.
- Agencies: Managing content creation for multiple clients with a structured, repeatable process.
- Anyone who prefers a "human-in-the-loop" approach over fully automated "black box" content generators.
How it works
This template automates the WordPress content creation process using Airtable as the central hub and leveraging AI for research and copywriting. The system is composed of four interconnected processes within a single workflow, each triggered by specific changes in Airtable.
Content Creation Process in Airtable
The entire journey from idea to published post is managed within your Airtable base.
- Configure Settings: Define global parameters (website details, target audience, writing style, language, max word count, numbers of chapters and subchapters, etc.) in the “Settings” table.
- Create Topics: Add a new blog post idea and trigger the first process.
- Generate Chapters: The workflow performs online research and generates potential chapters and subchapters based on your topic.
- Select Chapters to Write: Review the suggested chapters and trigger the content generation phase.
- Generate Content: The second process researches each subchapter and generates draft content for your review and modification.
- Select Chapter Content: Approve the content for each chapter.
- Select Chapter Images: After content is approved, the workflow generates AI images for each chapter. In Airtable, you can review these images and choose to either keep them or manually upload your own for each chapter before triggering the final assembly.
- Finalize Post: The next process aggregates the content and images, generates the featured image (which you can also manually override in this step), creates the title and SEO metadata, and places the compiled information in the “Finalize Post” table.
- Publish & Backup Post: The final process publishes the post to your website and creates a backup record with the live URL.
n8n Workflow Functions
The automation is handled by four separate triggers within the main workflow:
- Flow 1 (Topic Initiation & Chapter/Subchapter Generation): Fetches settings, performs initial research, and uses AI to generate chapter and subchapter outlines.
- Flow 2 (Content Generation & Internal Linking): Gathers internal links, performs deep research per subchapter, and uses AI to write draft content.
- Flow 3 (Post Assembly & Image Generation): Aggregates text, uses AI for metadata and image prompts, generates chapter images (with manual override), converts content to HTML, and saves the compiled post to Airtable.
- Flow 4 (WordPress Publishing & Backup): Fetches finalized data, uploads the selected images, creates the WordPress post with dynamically assigned categories, and creates a backup record.
Unique Features
- Human-in-the-Loop Design: Guarantees quality through mandatory user review and approval stages within Airtable.
- Airtable as Control Center: Utilizes Airtable as an intuitive interface to manage the entire content lifecycle.
- Manual Image Override: Maintain complete visual control by manually uploading your own featured and chapter images, overriding the AI-generated options at any stage.
- Conditional Deeper Research: Choose on a per-topic basis whether to generate simple chapters or a more detailed structure with chapters and subchapters for maximum depth.
- Multi-Language Content Generation: Define your desired output language in the Airtable settings to create content for different global audiences.
- Multiple-Image Generation: Generates and adds unique AI images for each chapter, as well as a featured image for the article.
- Automatic Categorization: The AI intelligently assigns your post to the most relevant existing categories on your WordPress site.
- AI-Powered Tag Generation: The workflow automatically generates a list of relevant SEO tags for your article to improve discoverability.
- Advanced Internal & External Linking: Automatically inserts relevant internal links by analyzing your sitemap and includes external source links from its research.
- Direct WordPress Integration: Streamlines publication by automatically sending finalized content, metadata, tags, images, and categories to your WordPress site.
- Rate-Limit Aware: Includes configurable Wait nodes to prevent API errors during intensive processing.
- Native Perplexity Integration: Simplifies online research with n8n's built-in Perplexity node.
Requirements
- Airtable Account: A free Airtable account is sufficient to start.
- WordPress Website: Requires an Application Password with permissions to create posts and upload media. Must have the REST API enabled.
- OpenAI API Key: For text and image generation.
- Perplexity API Key: Or an API key for your chosen online research tool.
- Google Drive: for the backup feature.
Setup Step-by-Step
- Import n8n Workflow: Import the workflow JSON file into your n8n instance.
- Get Airtable Base: Duplicate the companion Airtable Base template. Find the link to the Airtable Base template in the automated email you received after order confirmation. Do not request access to the Airtable base linked in the n8n template itself, as this is a live production base.
- Configure Credentials: Add credentials in n8n for Airtable, WordPress, OpenAI, Perplexity, and Google Drive.
- Connect Workflow Nodes: Assign the correct credentials to every relevant node in the workflow.
- Configure Airtable Nodes: This step is critical. Warning: When you connect your own Airtable base to a node, n8n will automatically erase all pre-configured field mappings. To prevent losing these settings, you must copy them before connecting your base. Here are two recommended methods. Method 1 - Side-by-Side Comparison: Import the template twice into n8n. Keep one workflow open as a reference, and customize the other. This allows you to easily copy and paste the field mappings from the original to your version after connecting your base. Method 2 - Text Editor Method: Before connecting your base, open each Airtable node individually, copy its field settings into a text editor for safekeeping, connect your base, and then paste the settings back into the correct fields.
- Populate Airtable Settings: Fill in your details in the "Settings" table of your Airtable base.
- Activate Workflow: Toggle the "Active" switch ON for the workflow in n8n.
- Start Creating: Go to the "Create Topics" table in Airtable to begin. Go through all the tables in Airtable from left to right to complete all the steps of the content creation process and get the final blog post at the end.
- Finalize SEO in WordPress: The workflow saves the generated SEO meta title and meta description to the Backup Post table in your Google Sheet. After the post is created in WordPress (as a draft), you must manually copy these values from the table and paste them into your SEO plugin's fields (e.g., Yoast, Rank Math) on the WordPress post editor.
Tips for Pros
- AI Models: The workflow is optimized for OpenAI's GPT-4o. You can swap in alternatives, but performance may vary. Perplexity's "sonar" model is used for research due to its speed and cost-effectiveness.
- AI Prompts: Modify prompts in the AI nodes to refine tone, style, or formatting.
- Integrations: Replace research tools, image generators, or modify the final step to publish to a different CMS.
- Error Handling: For production reliability, connect an "Error Handling" workflow in n8n to catch failures and send notifications.
Important Considerations
- API Rate Limits: The included Wait nodes help mitigate API rate limits, but may need adjustment based on your usage and API plans.
- Testing Costs: API calls to AI models are not free. Monitor your usage and costs on your provider's billing dashboard.
- Sequential Processing: The workflow processes one topic at a time to ensure stability.
WordPress Blog Automation with Airtable Interface, Human Review, and AI Research
This n8n workflow automates the process of generating, reviewing, and publishing blog posts to WordPress, leveraging Airtable for content management and human review, and AI for content generation and image creation. It streamlines the content pipeline, from initial idea to final publication, with built-in checks and balances.
What it does
This workflow orchestrates the following steps:
- Triggers on Airtable Record Creation: It listens for new records in a specified Airtable base and table, specifically when a new blog post idea is added.
- Filters for "Ready for AI" Status: It checks if the new Airtable record has a "Status" field set to "Ready for AI". If not, the workflow stops for that item.
- Generates Blog Post Content with AI:
- An AI Agent (likely powered by LangChain and OpenAI Chat Model) is used to generate the blog post content based on the input from Airtable.
- A Structured Output Parser ensures the AI output adheres to a predefined format (e.g., title, content, keywords).
- Creates an AI-Generated Image:
- It uses an HTTP Request to interact with an image generation API (e.g., DALL-E, Stable Diffusion) to create a featured image for the blog post based on the AI-generated content or a prompt.
- The generated image is then converted to a file and uploaded to Google Drive for storage.
- Updates Airtable with AI Content and Image:
- The workflow updates the original Airtable record with the AI-generated blog post content, keywords, and the URL of the newly created image in Google Drive.
- It changes the "Status" field in Airtable to "Ready for Review" to signal that human review is needed.
- Waits for Human Review: The workflow pauses, waiting for the "Status" field in Airtable to be manually changed to "Approved for Publishing".
- Publishes to WordPress:
- Once approved, the workflow proceeds to publish the blog post to WordPress, including the title, content, and the featured image from Google Drive.
- It updates the Airtable record one last time, changing the "Status" to "Published" and adding the WordPress post URL.
Prerequisites/Requirements
To use this workflow, you will need accounts and API keys for the following services:
- n8n: Your n8n instance (self-hosted or cloud).
- Airtable: A base and table set up to manage your blog post ideas and content, with fields for "Status", "Title", "Content", "Keywords", "Image URL", and "WordPress URL".
- OpenAI API Key: For the AI Agent and Chat Model (LangChain nodes).
- Image Generation API: An API endpoint for generating images (e.g., DALL-E, Stable Diffusion, or similar service accessible via HTTP Request).
- Google Drive: A Google Drive account for storing generated images.
- WordPress: A WordPress site with API access enabled.
Setup/Usage
- Import the Workflow: Download the JSON provided and import it into your n8n instance.
- Configure Credentials:
- Set up Airtable credentials for both the trigger and the Airtable node.
- Configure OpenAI credentials for the
OpenAI Chat Modelnode. - Set up Google Drive credentials for the
Google Drivenode. - Configure WordPress credentials for the
Wordpressnode.
- Airtable Base/Table Setup:
- Ensure your Airtable base and table are correctly configured with the necessary fields (e.g.,
Status,Title,Content,Keywords,Image URL,WordPress URL). - The "Status" field should be a Single Select field with options like "Ready for AI", "Ready for Review", "Approved for Publishing", "Published".
- Ensure your Airtable base and table are correctly configured with the necessary fields (e.g.,
- Customize AI Prompts: Adjust the prompts within the
AI AgentandBasic LLM Chainnodes to tailor the content generation to your specific blog style and requirements. - Image API Configuration: Update the
HTTP Requestnode to point to your chosen image generation API and configure the request body and headers as needed. - Activate the Workflow: Once all credentials and configurations are set, activate the workflow.
The workflow will now automatically process new blog post ideas entered into your Airtable base, generate content and images, await your review, and publish to WordPress.
Related Templates
Track competitor SEO keywords with Decodo + GPT-4.1-mini + Google Sheets
This workflow automates competitor keyword research using OpenAI LLM and Decodo for intelligent web scraping. Who this is for SEO specialists, content strategists, and growth marketers who want to automate keyword research and competitive intelligence. Marketing analysts managing multiple clients or websites who need consistent SEO tracking without manual data pulls. Agencies or automation engineers using Google Sheets as an SEO data dashboard for keyword monitoring and reporting. What problem this workflow solves Tracking competitor keywords manually is slow and inconsistent. Most SEO tools provide limited API access or lack contextual keyword analysis. This workflow solves that by: Automatically scraping any competitor’s webpage with Decodo. Using OpenAI GPT-4.1-mini to interpret keyword intent, density, and semantic focus. Storing structured keyword insights directly in Google Sheets for ongoing tracking and trend analysis. What this workflow does Trigger — Manually start the workflow or schedule it to run periodically. Input Setup — Define the website URL and target country (e.g., https://dev.to, france). Data Scraping (Decodo) — Fetch competitor web content and metadata. Keyword Analysis (OpenAI GPT-4.1-mini) Extract primary and secondary keywords. Identify focus topics and semantic entities. Generate a keyword density summary and SEO strength score. Recommend optimization and internal linking opportunities. Data Structuring — Clean and convert GPT output into JSON format. Data Storage (Google Sheets) — Append structured keyword data to a Google Sheet for long-term tracking. Setup Prerequisites If you are new to Decode, please signup on this link visit.decodo.com n8n account with workflow editor access Decodo API credentials OpenAI API key Google Sheets account connected via OAuth2 Make sure to install the Decodo Community node. Create a Google Sheet Add columns for: primarykeywords, seostrengthscore, keyworddensity_summary, etc. Share with your n8n Google account. Connect Credentials Add credentials for: Decodo API credentials - You need to register, login and obtain the Basic Authentication Token via Decodo Dashboard OpenAI API (for GPT-4o-mini) Google Sheets OAuth2 Configure Input Fields Edit the “Set Input Fields” node to set your target site and region. Run the Workflow Click Execute Workflow in n8n. View structured results in your connected Google Sheet. How to customize this workflow Track Multiple Competitors → Use a Google Sheet or CSV list of URLs; loop through them using the Split In Batches node. Add Language Detection → Add a Gemini or GPT node before keyword analysis to detect content language and adjust prompts. Enhance the SEO Report → Expand the GPT prompt to include backlink insights, metadata optimization, or readability checks. Integrate Visualization → Connect your Google Sheet to Looker Studio for SEO performance dashboards. Schedule Auto-Runs → Use the Cron Node to run weekly or monthly for competitor keyword refreshes. Summary This workflow automates competitor keyword research using: Decodo for intelligent web scraping OpenAI GPT-4.1-mini for keyword and SEO analysis Google Sheets for live tracking and reporting It’s a complete AI-powered SEO intelligence pipeline ideal for teams that want actionable insights on keyword gaps, optimization opportunities, and content focus trends, without relying on expensive SEO SaaS tools.
Generate song lyrics and music from text prompts using OpenAI and Fal.ai Minimax
Spark your creativity instantly in any chat—turn a simple prompt like "heartbreak ballad" into original, full-length lyrics and a professional AI-generated music track, all without leaving your conversation. 📋 What This Template Does This chat-triggered workflow harnesses AI to generate detailed, genre-matched song lyrics (at least 600 characters) from user messages, then queues them for music synthesis via Fal.ai's minimax-music model. It polls asynchronously until the track is ready, delivering lyrics and audio URL back in chat. Crafts original, structured lyrics with verses, choruses, and bridges using OpenAI Submits to Fal.ai for melody, instrumentation, and vocals aligned to the style Handles long-running generations with smart looping and status checks Returns complete song package (lyrics + audio link) for seamless sharing 🔧 Prerequisites n8n account (self-hosted or cloud with chat integration enabled) OpenAI account with API access for GPT models Fal.ai account for AI music generation 🔑 Required Credentials OpenAI API Setup Go to platform.openai.com → API keys (sidebar) Click "Create new secret key" → Name it (e.g., "n8n Songwriter") Copy the key and add to n8n as "OpenAI API" credential type Test by sending a simple chat completion request Fal.ai HTTP Header Auth Setup Sign up at fal.ai → Dashboard → API Keys Generate a new API key → Copy it In n8n, create "HTTP Header Auth" credential: Name="Fal.ai", Header Name="Authorization", Header Value="Key [Your API Key]" Test with a simple GET to their queue endpoint (e.g., /status) ⚙️ Configuration Steps Import the workflow JSON into your n8n instance Assign OpenAI API credentials to the "OpenAI Chat Model" node Assign Fal.ai HTTP Header Auth to the "Generate Music Track", "Check Generation Status", and "Fetch Final Result" nodes Activate the workflow—chat trigger will appear in your n8n chat interface Test by messaging: "Create an upbeat pop song about road trips" 🎯 Use Cases Content Creators: YouTubers generating custom jingles for videos on the fly, streamlining production from idea to audio export Educators: Music teachers using chat prompts to create era-specific folk tunes for classroom discussions, fostering interactive learning Gift Personalization: Friends crafting anniversary R&B tracks from shared memories via quick chats, delivering emotional audio surprises Artist Brainstorming: Songwriters prototyping hip-hop beats in real-time during sessions, accelerating collaboration and iteration ⚠️ Troubleshooting Invalid JSON from AI Agent: Ensure the system prompt stresses valid JSON; test the agent standalone with a sample query Music Generation Fails (401/403): Verify Fal.ai API key has minimax-music access; check usage quotas in dashboard Status Polling Loops Indefinitely: Bump wait time to 45-60s for complex tracks; inspect fal.ai queue logs for bottlenecks Lyrics Under 600 Characters: Tweak agent prompt to enforce fuller structures like [V1][C][V2][B][C]; verify output length in executions
Automate invoice processing with OCR, GPT-4 & Salesforce opportunity creation
PDF Invoice Extractor (AI) End-to-end pipeline: Watch Drive ➜ Download PDF ➜ OCR text ➜ AI normalize to JSON ➜ Upsert Buyer (Account) ➜ Create Opportunity ➜ Map Products ➜ Create OLI via Composite API ➜ Archive to OneDrive. --- Node by node (what it does & key setup) 1) Google Drive Trigger Purpose: Fire when a new file appears in a specific Google Drive folder. Key settings: Event: fileCreated Folder ID: google drive folder id Polling: everyMinute Creds: googleDriveOAuth2Api Output: Metadata { id, name, ... } for the new file. --- 2) Download File From Google Purpose: Get the file binary for processing and archiving. Key settings: Operation: download File ID: ={{ $json.id }} Creds: googleDriveOAuth2Api Output: Binary (default key: data) and original metadata. --- 3) Extract from File Purpose: Extract text from PDF (OCR as needed) for AI parsing. Key settings: Operation: pdf OCR: enable for scanned PDFs (in options) Output: JSON with OCR text at {{ $json.text }}. --- 4) Message a model (AI JSON Extractor) Purpose: Convert OCR text into strict normalized JSON array (invoice schema). Key settings: Node: @n8n/n8n-nodes-langchain.openAi Model: gpt-4.1 (or gpt-4.1-mini) Message role: system (the strict prompt; references {{ $json.text }}) jsonOutput: true Creds: openAiApi Output (per item): $.message.content → the parsed JSON (ensure it’s an array). --- 5) Create or update an account (Salesforce) Purpose: Upsert Buyer as Account using an external ID. Key settings: Resource: account Operation: upsert External Id Field: taxid_c External Id Value: ={{ $json.message.content.buyer.tax_id }} Name: ={{ $json.message.content.buyer.name }} Creds: salesforceOAuth2Api Output: Account record (captures Id) for downstream Opportunity. --- 6) Create an opportunity (Salesforce) Purpose: Create Opportunity linked to the Buyer (Account). Key settings: Resource: opportunity Name: ={{ $('Message a model').item.json.message.content.invoice.code }} Close Date: ={{ $('Message a model').item.json.message.content.invoice.issue_date }} Stage: Closed Won Amount: ={{ $('Message a model').item.json.message.content.summary.grand_total }} AccountId: ={{ $json.id }} (from Upsert Account output) Creds: salesforceOAuth2Api Output: Opportunity Id for OLI creation. --- 7) Build SOQL (Code / JS) Purpose: Collect unique product codes from AI JSON and build a SOQL query for PricebookEntry by Pricebook2Id. Key settings: pricebook2Id (hardcoded in script): e.g., 01sxxxxxxxxxxxxxxx Source lines: $('Message a model').first().json.message.content.products Output: { soql, codes } --- 8) Query PricebookEntries (Salesforce) Purpose: Fetch PricebookEntry.Id for each Product2.ProductCode. Key settings: Resource: search Query: ={{ $json.soql }} Creds: salesforceOAuth2Api Output: Items with Id, Product2.ProductCode (used for mapping). --- 9) Code in JavaScript (Build OLI payloads) Purpose: Join lines with PBE results and Opportunity Id ➜ build OpportunityLineItem payloads. Inputs: OpportunityId: ={{ $('Create an opportunity').first().json.id }} Lines: ={{ $('Message a model').first().json.message.content.products }} PBE rows: from previous node items Output: { body: { allOrNone:false, records:[{ OpportunityLineItem... }] } } Notes: Converts discount_total ➜ per-unit if needed (currently commented for standard pricing). Throws on missing PBE mapping or empty lines. --- 10) Create Opportunity Line Items (HTTP Request) Purpose: Bulk create OLIs via Salesforce Composite API. Key settings: Method: POST URL: https://<your-instance>.my.salesforce.com/services/data/v65.0/composite/sobjects Auth: salesforceOAuth2Api (predefined credential) Body (JSON): ={{ $json.body }} Output: Composite API results (per-record statuses). --- 11) Update File to One Drive Purpose: Archive the original PDF in OneDrive. Key settings: Operation: upload File Name: ={{ $json.name }} Parent Folder ID: onedrive folder id Binary Data: true (from the Download node) Creds: microsoftOneDriveOAuth2Api Output: Uploaded file metadata. --- Data flow (wiring) Google Drive Trigger → Download File From Google Download File From Google → Extract from File → Update File to One Drive Extract from File → Message a model Message a model → Create or update an account Create or update an account → Create an opportunity Create an opportunity → Build SOQL Build SOQL → Query PricebookEntries Query PricebookEntries → Code in JavaScript Code in JavaScript → Create Opportunity Line Items --- Quick setup checklist 🔐 Credentials: Connect Google Drive, OneDrive, Salesforce, OpenAI. 📂 IDs: Drive Folder ID (watch) OneDrive Parent Folder ID (archive) Salesforce Pricebook2Id (in the JS SOQL builder) 🧠 AI Prompt: Use the strict system prompt; jsonOutput = true. 🧾 Field mappings: Buyer tax id/name → Account upsert fields Invoice code/date/amount → Opportunity fields Product name must equal your Product2.ProductCode in SF. ✅ Test: Drop a sample PDF → verify: AI returns array JSON only Account/Opportunity created OLI records created PDF archived to OneDrive --- Notes & best practices If PDFs are scans, enable OCR in Extract from File. If AI returns non-JSON, keep “Return only a JSON array” as the last line of the prompt and keep jsonOutput enabled. Consider adding validation on parsing.warnings to gate Salesforce writes. For discounts/taxes in OLI: Standard OLI fields don’t support per-line discount amounts directly; model them in UnitPrice or custom fields. Replace the Composite API URL with your org’s domain or use the Salesforce node’s Bulk Upsert for simplicity.