DeepCoderCreativeWritingAI score · 74/100AI-assisted edit · no obvious prompt-injection riskn8n.io

n8n Multi-Agent SEO Blog & Newsletter Generator

Form input topic → four-agent pipeline (Research→Outline→Write→Edit) → route by content type → save to Airtable or Google Sheets

ExperiencedStepsWorkflowPromptTip
Who
Content creators, digital marketers, bloggers, and small teams with n8n experience who need to scale SEO-optimized blog posts or newsletters
You get
Submit a form to automatically run research, outlining, writing, and editing, producing either a blog (with DALL-E featured image) or a newsletter saved to Airtable or Google Sheets
You need
n8n · Google Gemini · Google Sheets · Airtable

Constraints

Requires an accessible n8n instance and pre-configured credentials: OpenRouter API (for Research/Outline/Writer/Editor Agents), Google Gemini API (for Blog/Newsletter Publisher Agents), OpenAI API (for DALL-E image generation), Airtable Token (for blog storage), Google Sheets OAuth2 (for newsletter storage). The Switch node's Content Type routing rule is empty after import and must be configured manually. Template created 2025-10-29; not tested by this site.

What they did

Author hemantharety published a multi-agent workflow template in the n8n template library. The template triggers via form submission, sequentially processes content through Research, Outline, Writer, and Editor & SEO AI Agent nodes, then routes via a Switch node to either Blog (with DALL-E featured image saved to Airtable) or Newsletter (saved to Google Sheets). The OpenRouter node in the template is actually configured with model agentica-org/deepcoder-14b-preview:free, not Grok as mentioned in the description.

How it went

No measured runtime results or success rates are provided by the source. The template shows as published on n8n.io with 2,708 views (as of fetch date). The author claims it automatically generates research-backed content and routes to different output formats.

Worth knowing

1. Model mismatch: The description and sticky notes repeatedly mention a "Grok AI model," but workflow.json shows the OpenRouter node is configured with agentica-org/deepcoder-14b-preview:free; users must decide whether to switch to Grok or another model. 2. Switch node empty on import: The Content Type routing conditions are empty strings in the source JSON and must be manually configured for Blog/Newsletter branching to work. 3. Telegram notification is listed as optional in description and sticky-notes, but no Telegram node exists in workflow.json; add manually if needed. 4. Credential types required: openRouterApi, googlePalmApi, openAiApi, airtableTokenApi, googleSheetsOAuth2Api must be created in n8n's credentials manager. 5. DALL-E image generation uses an HTTP Request node calling the OpenAI API directly (not a dedicated DALL-E node), returning b64_json converted to PNG by the Convert to File node. 6. Template created 2025-10-29; this site has not imported or run it; actual output quality and API costs are unverified.

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

  • OpenRouter Chat Model (Grok) node: connect openRouterApi credentials.
  • Google Gemini Chat Model node: connect Google Gemini/PaLM API credentials.
  • Generate Featured Image (DALL-E) node: connect OpenAI API credentials.
  • Save Blog to Airtable node: connect Airtable credentials.
  • Save Newsletter to Google Sheets node: connect Google Sheets OAuth2 credentials.

Configuration to replace

  • Source template is n8n public workflow #10293 (~19 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. Trigger: Form Submission

    After importing the workflow into n8n, the default trigger is the "On Form Submission" node. Fill in the form fields: select Content Type as Blog or Newsletter, and enter a Topic. Submission automatically starts the multi-agent pipeline. The trigger can also be replaced with Schedule, Webhook, Slack, or others. [First-test safety] Before the first test, disconnect Save Blog to Airtable and Save Newsletter to Google Sheets, or use a test Airtable base / test Google Sheet; reconnect production only after outputs look correct. Also temporarily disconnect the Generate Featured Image (DALL-E) node or skip the Blog image-generation branch so the first test does not incur OpenAI image fees; reconnect only after copy and writes look correct.

  2. Configure AI Models and Run Agent Pipeline

    1) In the OpenRouter Chat Model node, set credential openRouterApi, model to agentica-org/deepcoder-14b-preview:free, with parameters maxTokens=4000 and temperature=0.7. This model powers four sequential Agents (Research → Outline → Writer → Editor & SEO). 2) In the Google Gemini Chat Model node, set credential googlePalmApi for the Blog Publisher Agent and Newsletter Publisher Agent. 3) The four Agents execute in sequence: Research Agent collects facts and titles; Outline Agent generates a JSON outline with word counts; Writer Agent expands into a Medium-style draft; Editor & SEO Agent polishes and optimizes for SEO. Each Agent's prompt is embedded in its node; see copyable prompts below.

    Execution prompt · Source text。Research Agent node text field (promptType=define)

    =Content Type: {{ $json['Content Type'] }}
    Topic: {{ $json.Topic }}
    
    You are the Research Agent, an expert in collecting and summarizing accurate, reliable, and up-to-date information for blog and newsletter writing.
    
    Your tasks:
    1. Take the topic from the user input
    2. Search for the most relevant articles, studies, and competitor content
    3. Extract key facts, statistics, definitions, and perspectives
    4. Identify 5–10 useful subtopics or angles worth covering
    5. Provide 3–5 strong title ideas and keyword phrases (natural, not stuffed)
    6. Cite sources with URLs and rate their reliability from 0–1.0
    
    Output format (JSON):
    {
      "title_ideas": ["Title 1", "Title 2", "Title 3"],
      "keywords": ["keyword1", "keyword2", "keyword3"],
      "facts": [
        {"fact": "Specific fact with numbers", "source": "https://source.com", "reliability": 0.9},
        {"fact": "Another fact", "source": "https://source2.com", "reliability": 0.85}
      ],
      "subtopics": ["Subtopic 1", "Subtopic 2", "Subtopic 3"]
    }

    Execution prompt · Source text。Outline Agent node text field (promptType=define)

    ={{ $json.output }}
    
    You are the Outline Agent, responsible for designing a clear and engaging structure for a blog article or newsletter.
    
    Your tasks:
    1. Read the Research Agent's output (facts, subtopics, title ideas)
    2. Create a content outline with H1 (title), H2/H3 headings, and bullet points
    3. Allocate approximate word counts per section (aim for 1500-2500 words total)
    4. Suggest where visuals, stories, or examples should be added
    5. Ensure logical flow: hook → context → main points → conclusion → call-to-action
    
    Output format (JSON):
    {
      "chosen_title": "The best title from research",
      "outline": [
        {"heading": "Introduction", "level": "H2", "word_count": 200, "notes": "Include hook + brief context"},
        {"heading": "Main Section 1", "level": "H2", "word_count": 400, "notes": "Cover subtopic 1"},
        {"heading": "Subsection 1.1", "level": "H3", "word_count": 200, "notes": "Details"},
        {"heading": "Conclusion", "level": "H2", "word_count": 150, "notes": "Summarize + CTA"}
      ],
      "total_word_count": 1800
    }

    Execution prompt · Source text。Writer Agent node text field (promptType=define)

    ={{ $json.output }}
    
    You are the Writer Agent, a professional Medium-style blog writer and newsletter creator.
    
    Your tasks:
    1. Expand the Outline Agent's structure into a full draft
    2. Use facts and sources from the Research Agent. Insert [citation] markers where needed
    3. Write in a natural, engaging style suitable for Medium:
       - Use short paragraphs (2–4 sentences)
       - Include examples, analogies, or short stories
       - Maintain clarity and flow
       - Avoid jargon unless explained
       - Use active voice
    4. Add a TL;DR at the top (2–3 sentences)
    5. End with a clear conclusion and call-to-action
    6. Target reading level: Grade 8–10
    
    Output: Complete markdown-formatted draft, ready for publication.

    Execution prompt · Source text。Editor & SEO Agent node text field (promptType=define)

    ={{ $json.output }}
    
    You are the Editor & SEO Agent, responsible for polishing and optimizing the Writer Agent's draft.
    
    Your tasks:
    1. Improve grammar, clarity, and readability (target Grade 8–10 reading level)
    2. Adjust tone to match the target audience (casual, professional, or inspirational)
    3. Ensure smooth flow between sections, fix awkward sentences
    4. Optimize for discoverability on Medium and search engines:
       - Natural keyword integration (no stuffing)
       - Compelling meta description (<160 characters)
       - Suggest 5–7 relevant tags for Medium
       - Optimize headings for featured snippets
    5. Verify all citations are present and properly formatted
    6. Check for plagiarism risk and flag any concerns
    7. Ensure the draft follows Medium's formatting best practices:
       - H2/H3 headings
       - Bullet points and numbered lists
       - Bold/italic for emphasis
       - Code blocks if needed
    
    Output: Final polished markdown content + metadata (meta description, tags).
  3. Configure Content Routing Rule (Switch Node)

    After importing the template, the "Route by Content Type" Switch node has empty leftValue and rightValue strings in its JSON. You must manually configure routing rules: add a rule for Content Type equals Blog to route to the Blog Publisher Agent branch, and Content Type equals Newsletter to route to the Newsletter Publisher Agent branch. Without this configuration, the workflow cannot correctly split the flow.

  4. Blog Branch: Generate Featured Image and Save to Airtable

    Blog branch flow: 1) Blog Publisher Agent receives Editor output, extracts title, body, keywords, meta description, and generates a DALL-E image prompt (JSON output). 2) The "Generate Featured Image (DALL-E)" node calls OpenAI images/generations via HTTP Request, model dall-e-3, size 1792x1024, quality standard, returning b64_json. 3) The "Convert Image to File" node converts b64_json to PNG with filename pattern blog-featured-{yyyy-MM-dd-HHmmss}.png. 4) The "Save Blog to Airtable" node creates a record with column mapping: Title ← title_column from Blog Publisher Agent; Status = Draft; Content ← blog_column; Keywords ← keywords; Created Date ← $now.toISO(); Meta Description ← meta_description. Replace placeholder YOUR_AIRTABLE_BASE_ID and YOUR_AIRTABLE_TABLE_ID with actual IDs before running.

    Execution prompt · Source text。Blog Publisher Agent node text field (promptType=define)

    ={{ $json.output }}
    
    You are the Blog Publisher Agent. Format the edited content for Airtable storage.
    
    Your tasks:
    1. Extract the final blog title (without markdown formatting)
    2. Extract the full blog content in clean markdown format
    3. Extract keywords and meta description
    4. Generate a concise image prompt for DALL-E (describe the visual that would best represent this blog)
    
    Output format (JSON):
    {
      "title_column": "Blog Title Here",
      "blog_column": "Full markdown content here...",
      "keywords": "keyword1, keyword2, keyword3",
      "meta_description": "Short description under 160 chars",
      "image_prompt": "A professional, high-quality image showing [describe scene]"
    }
  5. Newsletter Branch: Format and Save to Google Sheets

    Newsletter branch flow: Newsletter Publisher Agent receives Editor output, extracts title, formats content into HTML and plain text versions, and generates preview text (JSON output). Then the "Save Newsletter to Google Sheets" node appends to the specified sheet with column mapping: Title ← title_column; Status = Ready to Send; Content HTML ← content_html; Created Date ← $now.toFormat('yyyy-MM-dd HH:mm:ss'); Preview Text ← preview_text; Content Plain ← content_plain. Replace placeholder YOUR_GOOGLE_SHEET_ID with the actual document ID and confirm sheetName before running.

    Execution prompt · Source text。Newsletter Publisher Agent node text field (promptType=define)

    ={{ $json.output }}
    
    You are the Newsletter Publisher Agent. Format the edited content for email newsletter distribution.
    
    Your tasks:
    1. Extract the newsletter title
    2. Format content sections for email (simpler formatting than web)
    3. Add email-friendly formatting:
       - Clear section breaks
       - Shorter paragraphs
       - Prominent CTAs
    4. Create plain text version
    
    Output format (JSON):
    {
      "title_column": "Newsletter Title",
      "content_html": "HTML formatted content",
      "content_plain": "Plain text version",
      "preview_text": "Email preview text (50 chars)"
    }

Prompt you can copy

Setup guidance · Editorial suggestion。Give to setup assistant; confirm inputs and permissions first, then guide import and configuration in order

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

You are an n8n workflow setup assistant. The user wants to replicate the "Multi-Agent SEO Blog & Newsletter Generator" template. First confirm they have: an accessible n8n instance, OpenRouter API key, Google Gemini API key, OpenAI API key, Airtable account, and Google Sheets access. Then guide them in this order: 1) Import workflow ID 10293 from the n8n template library or upload workflow.json; 2) In the OpenRouter Chat Model node, confirm model is agentica-org/deepcoder-14b-preview:free (or replace with preferred model) and set maxTokens/temperature; 3) Configure credentials in the Google Gemini Chat Model node; 4) Verify each of the four Agent nodes is connected to the correct language model; 5) Configure the Switch node's Content Type routing rules; 6) Replace placeholder IDs for Airtable and Google Sheets; 7) Test with a form submission. If the user wants to swap models (e.g., to Claude or GPT-4), advise replacing language model nodes individually and adjusting style instructions in prompts.

Paste this prompt into your AI assistant to start setup; have API keys and account permissions ready beforehand

Source

Multi-agent AI content creator for SEO blogs & newsletters with OpenRouter, DALL-E, Gemini · hemantharety · n8n.io · 2025-10-29

Comments & feedback

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

Loading…

    Related