AutomationFlowsAI & RAG › End-to-end AI Blog Research and Writer with Gemini Ai, Supabase and Nano-banana

End-to-end AI Blog Research and Writer with Gemini Ai, Supabase and Nano-banana

ByMuhammad Asadullah @asadtech on n8n.io

Fully automated blog creation system using n8n + AI Agents + Image Generation

Cron / scheduled trigger★★★★★ complexityAI-powered51 nodesAgentOutput Parser StructuredGroq ChatGoogle Gemini ChatRss Feed Read ToolSupabaseInformation ExtractorGoogle Gemini
AI & RAG Trigger: Cron / scheduled Nodes: 51 Complexity: ★★★★★ AI nodes: yes Added:

This workflow corresponds to n8n.io template #9079 — we link there as the canonical source.

This workflow follows the Agent → Googlegemini recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "nodes": [
    {
      "id": "5fd2f145-ebbf-41cb-b9a0-b18c2b4f52d3",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -3632,
        128
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "bf5d3d2c-5ca8-43a2-a511-551838664ad7",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "maxTries": 2,
      "position": [
        -1728,
        144
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 2.2,
      "alwaysOutputData": true,
      "waitBetweenTries": 5000
    },
    {
      "id": "4dc7ae88-0acf-4196-92be-f550ac1bdca2",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -1440,
        384
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "3d654105-be79-4358-bf60-c14e816ce733",
      "name": "Groq Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGroq",
      "position": [
        -1680,
        544
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "7483a0a5-451f-4246-b04d-f466c79e5ebf",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -1808,
        560
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "d1bc72c3-2f07-416c-a111-a70352e6853c",
      "name": "RSS Read",
      "type": "n8n-nodes-base.rssFeedReadTool",
      "position": [
        -1472,
        608
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "c028f0b6-0481-4780-9846-406a4e61ec9f",
      "name": "Create a row",
      "type": "n8n-nodes-base.supabase",
      "position": [
        960,
        48
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "242ec5e8-8b9e-410c-878f-51d9a1f96e9b",
      "name": "AI Agent1",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "maxTries": 2,
      "position": [
        -2480,
        128
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 2.2,
      "alwaysOutputData": true,
      "waitBetweenTries": 5000
    },
    {
      "id": "553cf89c-d9ff-47f1-bda1-e1741ede320b",
      "name": "Groq Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatGroq",
      "position": [
        -2768,
        544
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "7553f0f0-c6dc-4655-9247-0bb4688d79c7",
      "name": "RSS Read1",
      "type": "n8n-nodes-base.rssFeedReadTool",
      "position": [
        -2160,
        480
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "e0859e59-0eb5-43c3-822d-c3e38f0b67df",
      "name": "Google Gemini Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -2512,
        464
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "8742f8a0-6509-47ef-88e5-efaa7918050b",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        -2208,
        128
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "8ad60b61-2c5a-40e9-bec1-5277ba2ddb3e",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        -2112,
        -96
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "b5ad482e-779e-4cf5-8e44-7828a0ad8701",
      "name": "Google Gemini Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -1296,
        656
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "988a02a2-a245-41a1-a7ba-dcb26ab92d31",
      "name": "Information Extractor",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        -1040,
        160
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "23180200-7219-45ba-bceb-7200fa8417b9",
      "name": "Google Gemini Chat Model4",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -1024,
        336
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "aa7b53e8-147b-4c66-8319-7e14f0340346",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -352,
        160
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "3e34181e-92a7-495d-8488-bf23d57c4a75",
      "name": "Wait1",
      "type": "n8n-nodes-base.wait",
      "position": [
        1744,
        560
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "dc9d2978-0169-49ae-81db-c9d17c24a85c",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        -736,
        160
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "b8f3f1be-2158-4d1e-920e-bec06bfb80e3",
      "name": "Generate an image",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        704,
        -464
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "da2085f7-fc32-4aa2-80b1-386f0499186c",
      "name": "Upload object",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        976,
        464
      ],
      "parameters": {},
      "typeVersion": 4.1
    },
    {
      "id": "36ff690e-0333-4bdb-926a-0518a7d1f913",
      "name": "Generate presigned URL",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1200,
        464
      ],
      "parameters": {},
      "typeVersion": 4.1
    },
    {
      "id": "2a1dab10-7b73-46ce-b9b2-bed435bcb5e8",
      "name": "all_images",
      "type": "n8n-nodes-base.code",
      "position": [
        64,
        48
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "74085f1e-ceff-4817-ab3e-2e4098eed7d9",
      "name": "html_content",
      "type": "n8n-nodes-base.set",
      "position": [
        368,
        48
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "d77a832d-b19b-4012-a230-9bde2559b3a4",
      "name": "If1",
      "type": "n8n-nodes-base.if",
      "position": [
        -1328,
        144
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "463c42eb-15b7-4696-aae1-e9605328dd83",
      "name": "Wait2",
      "type": "n8n-nodes-base.wait",
      "position": [
        -1216,
        -96
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "3cf81151-c51b-4f89-b02e-157180109ee6",
      "name": "RSS Read2",
      "type": "n8n-nodes-base.rssFeedReadTool",
      "position": [
        -2352,
        624
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "b4e75dfd-ed9c-4c8a-9aec-8c8d26a0aa51",
      "name": "Get many rows",
      "type": "n8n-nodes-base.supabase",
      "position": [
        -2992,
        128
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "fecf73e1-8314-42e9-b721-e3c95fcc4d7d",
      "name": "Code2",
      "type": "n8n-nodes-base.code",
      "position": [
        -2848,
        128
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "d049be27-d21e-44d4-860f-db01e273d02d",
      "name": "imagen4",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        960,
        -464
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "40a66714-4cc0-4396-a0fe-271e5d9baf3e",
      "name": "gemini2.5flash",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        464,
        -448
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "889382e2-16a4-45c3-adc0-996fc8a0f03c",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3040,
        48
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "183888e0-82bb-4249-845d-44a95f1ce347",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3888,
        48
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "d234c989-ede8-442e-b29a-ef78ed902792",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2576,
        -192
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "852adc40-31ef-4930-a967-3dfd2d638277",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1840,
        -192
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "74aca049-e4d7-426f-a2c1-4a285a22a68c",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1088,
        -192
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "e8f01eca-09a9-48d5-8d45-fa6658310a34",
      "name": "Google search",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -1584,
        1392
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "548ed4e1-2aaf-4f8b-88c2-71f6a963fe87",
      "name": "URL Scraper",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -1360,
        1392
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "969f4f07-9da6-4929-bab4-bd722f5cdaca",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1776,
        1168
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "73bbf094-0001-43d7-942b-3a65e2bd97f2",
      "name": "Message a model in Perplexity",
      "type": "n8n-nodes-base.perplexityTool",
      "position": [
        -1600,
        1632
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "033a4999-740a-4a14-923f-d80bb784cbbe",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -528,
        32
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "0db639b1-d9fe-4bcf-9973-757a9e5255d6",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        224
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "0980dacd-0597-4a07-af6e-ddf9dcb59818",
      "name": "download image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        528,
        464
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "be09de5d-350b-4f7f-a052-f0f313058484",
      "name": "Edit Image (only for changing to png)",
      "type": "n8n-nodes-base.editImage",
      "position": [
        736,
        464
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "1392acd6-911c-459a-8a62-dc2c9a0e0e11",
      "name": "Message a model (image name writer)",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        -144,
        464
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "0d3641e4-ba3f-46eb-bccc-d81dc81ca82c",
      "name": "nano banana",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        336,
        464
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "43c5e7f2-daf5-4bdf-b1f9-7482f543b53a",
      "name": "Edit Fields (set image prompt and name)",
      "type": "n8n-nodes-base.set",
      "position": [
        128,
        464
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "5c0b8657-d31b-4650-bf21-cd6b91a8729a",
      "name": "final image url",
      "type": "n8n-nodes-base.set",
      "position": [
        1520,
        464
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "5be8c1f6-93f9-4f54-9816-93ae0bb46c56",
      "name": "imbed images in html",
      "type": "n8n-nodes-base.code",
      "position": [
        688,
        48
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "f2da0db4-a78b-4e03-a6f7-1ca23fd9ec3c",
      "name": "API Keys",
      "type": "n8n-nodes-base.set",
      "position": [
        -3376,
        128
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "fddee7bc-ffe5-439b-b4f3-91456666180f",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3472,
        48
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If1": {
      "main": [
        [
          {
            "node": "Wait2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Information Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "AI Agent1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code2": {
      "main": [
        [
          {
            "node": "AI Agent1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait1": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait2": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "If1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "API Keys": {
      "main": [
        [
          {
            "node": "Get many rows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Read": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent1": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Read1": {
      "ai_tool": [
        [
          {
            "node": "AI Agent1",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "RSS Read2": {
      "ai_tool": [
        [
          {
            "node": "AI Agent1",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "all_images": {
      "main": [
        [
          {
            "node": "html_content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "URL Scraper": {
      "ai_tool": [
        [
          {
            "node": "AI Agent1",
            "type": "ai_tool",
            "index": 0
          },
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "nano banana": {
      "main": [
        [
          {
            "node": "download image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "html_content": {
      "main": [
        [
          {
            "node": "imbed images in html",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get many rows": {
      "main": [
        [
          {
            "node": "Code2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google search": {
      "ai_tool": [
        [
          {
            "node": "AI Agent1",
            "type": "ai_tool",
            "index": 0
          },
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Upload object": {
      "main": [
        [
          {
            "node": "Generate presigned URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "download image": {
      "main": [
        [
          {
            "node": "Edit Image (only for changing to png)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Groq Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 1
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "all_images",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Message a model (image name writer)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "final image url": {
      "main": [
        [
          {
            "node": "Wait1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "API Keys",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "imbed images in html": {
      "main": [
        [
          {
            "node": "Create a row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Information Extractor": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate presigned URL": {
      "main": [
        [
          {
            "node": "final image url",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Structured Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model4": {
      "ai_languageModel": [
        [
          {
            "node": "Information Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Message a model (image name writer)": {
      "main": [
        [
          {
            "node": "Edit Fields (set image prompt and name)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Image (only for changing to png)": {
      "main": [
        [
          {
            "node": "Upload object",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields (set image prompt and name)": {
      "main": [
        [
          {
            "node": "nano banana",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Fully automated blog creation system using n8n + AI Agents + Image Generation

Source: https://n8n.io/workflows/9079/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

kisisel asistan. Uses toolWorkflow, toolHttpRequest, toolCalculator, toolThink. Scheduled trigger; 43 nodes.

Tool Workflow, Tool Http Request, Tool Calculator +15
AI & RAG

LinkedIn_Job_Hunt_and_Cover_Letter. Uses outputParserStructured, outputParserAutofixing, googleDrive, agent. Scheduled trigger; 85 nodes.

Output Parser Structured, Output Parser Autofixing, Google Drive +6
AI & RAG

Author: Nguyen Thieu Toan Category: Community & Knowledge Automation Tags: Telegram, Reddit, n8n Forum, AI Summarization, Gemini, Groq

Groq Chat, Output Parser Structured, Memory Mongo Db Chat +5
AI & RAG

This is an automated blog post generation system that: Researches topics using AI agents and web search tools Writes complete blog posts with proper SEO structure Generates custom images for each post

Output Parser Structured, Google Gemini Chat, HTTP Request Tool +11
AI & RAG

Most blogs publish words. This system publishes experiences.

OpenAI Chat, HTTP Request, Output Parser Structured +7