ChatGPTCreativeWritingAI score · PendingAI-assisted edit · no obvious prompt-injection riskn8n.io

Generate SEO blog posts from a keyword list and publish to Webflow

Input: Google Sheets keyword list → Process: n8n AI Agent generates content + featured image → Output: Webflow drafts + result tracking

Some experienceStepsWorkflowPromptTip
Who
Content marketers and SEO specialists who need bulk SEO-optimized articles for long-tail keyword variations
You get
Automatically turn keywords into 600+ word SEO articles with featured images, save as Webflow drafts, and log success/failure results
You need
n8n · google-sheets · google-drive · webflow

Constraints

Requires an n8n instance, OpenAI API key, OpenRouter API key (or equivalent Gemini access), Webflow OAuth2 app, and Google Sheets + Google Drive OAuth2 credentials. The main workflow depends on a separately imported 'AI image generation' sub-workflow used as an Agent tool. Default trigger is monthly; adjustable.

What they did

The author created an n8n template triggered by Schedule Trigger on a monthly interval. It reads keywords with status=pending from Google Sheets, loops over items, and sends each to an AI Agent using gpt-4.1-mini to generate a 600-800 word SEO article (title, meta description, structured body). The agent calls a separate image-generation sub-workflow via toolWorkflow, which uses Gemini 2.5 Flash through OpenRouter to create a featured image and upload it to Google Drive. The main workflow cleans and validates the agent's JSON output, checks word count, expands content via gpt-4o-mini if below 600 words, converts markdown to HTML, creates a Webflow draft via API, and logs success or failure to Google Sheets.

How it went

The template author reports the workflow can auto-generate 600+ word SEO articles and create Webflow drafts, supporting bulk processing of long-tail keyword variations (author report; unverified).

Worth knowing

1. The sub-workflow must be imported as an individual workflow and explicitly selected in the AI Agent Tool node; do not attempt to run it inside the same workflow (source Important note). 2. Image generation relies on OpenRouter's Gemini 2.5 Flash preview model; if the model or endpoint changes, manually update the HTTP Request node's URL and jsonBody. 3. The default Schedule Trigger runs monthly; always validate the full pipeline with a single keyword before bulk processing. 4. Webflow OAuth2 setup is involved: you must create an app in Webflow and grant CMS read-write permissions; siteId and collectionId are found in Webflow Designer or CMS settings. 5. This site has not tested the workflow; reproduction status is not_tested. Monitor OpenAI and OpenRouter API costs and rate limits in production use.

n8n workflow template

Structure checked · Not run-tested

Use “Import from File” in n8n, or copy the JSON and paste it into the editor. Connect your own accounts, then try test data. The template is inactive by default.

Setup and test checklist

Credentials to connect

  • OpenAI Chat Model node: connect OpenAI API credentials.
  • Load Pending Keywords node: connect Google Sheets OAuth2 credentials.
  • Expand Content node: connect OpenAI API credentials.
  • Create New Post node: connect webflowOAuth2Api credentials.
  • Mark as Complete node: connect Google Sheets OAuth2 credentials.
  • Save Success Results node: connect Google Sheets OAuth2 credentials.
  • Save Error node: connect Google Sheets OAuth2 credentials.
  • Upload to Google Drive node: connect Google Drive OAuth2 credentials.
  • Get Download Links node: connect Google Drive OAuth2 credentials.

Configuration to replace

  • Source template is n8n public workflow #9191 (~43 nodes). Keep inactive after import; verify triggers, expressions and external API endpoints.
  • Sticky-note guidance is informational; replace placeholders with your own accounts, sheet schemas or channel IDs.

Test input and expected output

  • Manually run the main path once in a test workspace and confirm credentialed nodes authenticate without errors.
  • Drive one synthetic/redacted sample through and check output fields and downstream writes before enabling in production.

Template changes

  • Author credential bindings, webhookId and execution data are removed; the workflow is inactive. Nodes, connections and original prompts are preserved. Not run-tested in n8n.
  • No business-logic edits; verify keys, quotas and privacy compliance before use.

Template retrieved: 2026-10-24

Steps

  1. Import the main workflow and the image sub-workflow

    Import both workflows into n8n: the main workflow 'Bulk SEO content generation and Webflow draft creation with AI images' and the sub-workflow 'AI image generation for automatic content creation'. The sub-workflow must exist as an individual workflow and be referenced later from the AI Agent Tool node.

    Execution prompt · Source text。Confirm the destination, input variables and output format before use.

    =Current date and time: {{$now}}
    
    TASK: Create high-quality SEO content and generate a relevant featured image for the keyword below.
    
    Keyword: {{ $json['main keyword'] }}
    
    Requirements:
    1. Write 600-800 words of engaging, professional but accessible content.
    2. Include the keyword naturally 2-3 times: once in the introduction, once in a subheading, and once in the conclusion.
    3. Create a compelling title (50-60 characters).
    4. Write a meta description (150-160 characters).
    5. Structure the article with clear sections:
       - Introduction
       - Key Benefits
       - How It Works / Practical Advice
       - Conclusion / Next Steps
    6. Target audience: general readers searching for this keyword (not academic or overly technical).
    7. Generate ONE relevant professional image. The image should:
       - Visually represent the keyword topic (not generic SEO/marketing visuals)
       - Use a clean, modern, professional style
       - Be suitable as a blog featured image
       - IMPORTANT: Generate only ONE image per article
    
    CRITICAL: Call the image generation tool exactly ONCE per article. Do not generate multiple images or variations.
    
    8. Provide descriptive **alt text** for the image, optimized for accessibility and SEO.
    
    Output Format:
    Return ONLY this valid JSON structure as raw JSON (no markdown code blocks, no json tags, no extra text, notes, or explanations):
    {
    "title": "SEO optimized title here",
    "slug": "{{ $('Load Pending Keywords').item.json.slug }}", 
    "metaDescription": "Compelling meta description here",
    "content": "Full article content here (600-800 words). CRITICAL FORMATTING REQUIREMENTS: Start with ### Introduction as the first heading. Use ### for ALL section headings (Key Benefits, How It Works / Practical Advice, Conclusion / Next Steps). Write complete paragraphs separated by blank lines. Never mix plain text with markdown formatting. Each section must have substantial content with specific examples and actionable advice. Include the target keyword naturally 2-3 times throughout the content. Ensure consistent markdown structure from start to finish.",
    "main keyword": "{{ $json['main keyword'] }}",
    "imageUrl": "URL from image generation tool", 
    "altText": "Descriptive and SEO-friendly alt text here"
    }
    
    FORMATTING VALIDATION: Before returning JSON, verify that:
    1. Content starts with ### Introduction 
    2. All headings use ### format consistently
    3. Each paragraph is properly separated with blank lines
    4. No mixing of plain text and markdown syntax
    5. Content flows logically between sections
    6. Target keyword appears naturally in introduction and conclusion
    
    CRITICAL: Your response must start with { and end with }. Do not wrap the JSON in markdown formatting or code blocks. Return the raw JSON object only.

    Execution prompt · Source text。Confirm the destination, input variables and output format before use.

    You are an expert SEO content writer and AI coordinator. Your responsibilities: Always follow the Agent Prompt exactly. Always generate both content and a relevant professional image. Always return valid JSON only, with no extra commentary or notes. Never skip image generation. Never output incomplete or invalid JSON. Ensure the content is engaging, structured, and optimized for readers searching for the keyword.
  2. Configure the Google Sheets structure

    Create or clone the Google Sheet with three tabs: - `keywords`: id, main keyword, head terms, modifiers, slug, status (use status=pending for rows to process) - `content_created`: id, slug, meta description, content, generatedAt, updated on - `webflow_error_logs`: keyword, error, timestamp, status Set the status column to 'pending' for keywords you want to process.

  3. Add API credentials

    Configure credentials in n8n: - OpenAI API (content generation) - OpenRouter API or equivalent Gemini access (image generation sub-workflow) - Webflow OAuth2 API (create app in Webflow first: copy Client ID/Secret and OAuth Redirect URL) - Google Sheets OAuth2 - Google Drive OAuth2 Webflow OAuth setup: in n8n, create Webflow OAuth2 API credential and copy the Redirect URL → in Webflow, go to Workspace Settings → Apps & Integrations → Develop → create app → enable Data Client REST API → paste Redirect URL → select CMS collections read-write permissions → paste Client ID/Secret back into n8n.

  4. Update workflow node configurations

    Replace placeholder values across nodes: - All Google Sheets nodes: update documentId and sheetName to your sheet - Webflow Create/Update Post nodes: enter your siteId and collectionId - Sub-workflow Google Drive node: set your folderId - AI Image Generation Tool node: verify workflowId points to your imported sub-workflow - Optional: adjust Loop Over Items batch size, Content Quality Check word threshold (default 600), and Schedule Trigger frequency (default monthly)

  5. Test with a single keyword

    Keep only one row with status=pending in the keywords sheet and run the workflow manually. Verify: - AI Agent produces valid JSON output with article data - Image sub-workflow returns a Google Drive image link - Content Quality Check passes (≥600 words) - Webflow draft is created successfully - Results are logged to content_created or webflow_error_logs If content is under 600 words, the Expand Content node will automatically call gpt-4o-mini to expand it.

  6. Enable scheduled production runs

    After successful testing, enable the Schedule Trigger (default: monthly). The workflow will automatically read all pending keywords, generate articles and images one by one, convert markdown to HTML, create Webflow drafts, update keyword status, and log outcomes. Monitor the webflow_error_logs tab early on.

Prompt you can copy

Setup guidance · Editorial suggestion。Hand to setup assistant; confirm inputs and permissions first

This block is the prompt. Ads are never placed here.

You are an n8n workflow setup assistant. The user wants to replicate the 'Generate SEO blog posts from a keyword list and publish to Webflow' template. Assist in this order:
1. Confirm the user has an n8n instance and all API credentials ready (OpenAI, OpenRouter/Gemini, Webflow OAuth2, Google Sheets, Google Drive).
2. Guide them to import both the main workflow and the image generation sub-workflow, emphasizing the sub-workflow must remain separate and be selected via the AI Agent Tool node.
3. Help configure the three-sheet Google Sheets structure and sample data.
4. Step through replacing critical parameters: documentId, siteId, collectionId, folderId, and sub-workflow workflowId.
5. Recommend testing with a single keyword first, observing the full chain: Process Agent Output → Content Quality Check → Expand Content (if needed) → Convert to HTML → Create New Post.
6. If JSON parse errors occur, verify the AI Agent output is not wrapped in markdown code blocks; the Process Agent Output node includes cleanup logic, but manual verification is useful.

Before building, ensure all OAuth apps are authorized and that your Webflow CMS collection fields (name, slug, page-content, metadescription, featured-image) match the template mappings.

Source

Generate SEO blog posts from a keyword list and publish to Webflow · mssporto · n8n.io · 2025-10-02

Comments & feedback

Tried this method? Share results, problems or improvements. Comments appear after moderation. Please avoid sensitive information.

Loading…

    Related