KI-gesteuerter SEO-Blog-Schreiber

Experte

Dies ist ein Content Creation, AI RAG-Bereich Automatisierungsworkflow mit 28 Nodes. Hauptsächlich werden Set, Code, Html, Markdown, SplitOut und andere Nodes verwendet. SEO-optimierte Blog-Inhalte mit Gemini, Scrapeless und Pinecone RAG generieren

Voraussetzungen
  • Google Gemini API Key
  • Pinecone API Key
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "MuPWDOe5EdbAR9LG",
  "meta": {
    "instanceId": "99993f65d1567f51fde05dcf63d8de046babd13286de5f022068086eb81fdb4c",
    "templateCredsSetupCompleted": true
  },
  "name": "AI Powered SEO Blog Writer",
  "tags": [],
  "nodes": [
    {
      "id": "652b062c-6398-4627-81fb-1bdc68a17b4c",
      "name": "Bei Klick auf 'Workflow ausführen'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1952,
        -576
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "3ba48a52-d664-4c9f-8f4c-05c942fd117f",
      "name": "Pinecone Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        208,
        -672
      ],
      "parameters": {
        "mode": "insert",
        "options": {
          "pineconeNamespace": "DataPlace"
        },
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "seo-writer",
          "cachedResultName": "seo-writer"
        }
      },
      "credentials": {
        "pineconeApi": {
          "id": "KFxRVOGBwN0Rzjfi",
          "name": "PineconeApi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "121a1c3a-a056-403c-ad76-28a974e60d68",
      "name": "Standard-Datenlader",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        416,
        -464
      ],
      "parameters": {
        "options": {},
        "dataType": "binary"
      },
      "typeVersion": 1
    },
    {
      "id": "6bd61074-309d-4675-afac-6d09c59fab80",
      "name": "Rekursiver Zeichen-Text-Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        304,
        -336
      ],
      "parameters": {
        "options": {},
        "chunkSize": 2000,
        "chunkOverlap": 200
      },
      "typeVersion": 1
    },
    {
      "id": "ca4c81af-45e5-4c37-bbdb-83cb0233f9e9",
      "name": "Bei Empfang einer Chat-Nachricht",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -160,
        16
      ],
      "webhookId": "e1468e34-9acc-472e-9bd4-8cee0c3d1e17",
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "7db55dbe-d04e-4515-aab7-9ad6ef8db8b5",
      "name": "Window Buffer Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        560,
        224
      ],
      "parameters": {
        "sessionKey": "={{ $('When chat message received').first().json.sessionId }}",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "b6d0989d-fd3b-40e5-bcda-2999ea5da413",
      "name": "KI-Agent1",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        448,
        16
      ],
      "parameters": {
        "text": "={{ $('When chat message received').first().json.chatInput }}",
        "options": {
          "systemMessage": "=Use the following context to answer the user's question.\n<context>\n{{\n$input.all()\n  .map(item => item.json.document.pageContent)\n  .join('\\n---\\n')\n}}\n</context>"
        },
        "promptType": "define"
      },
      "executeOnce": true,
      "typeVersion": 1.7,
      "alwaysOutputData": false
    },
    {
      "id": "2f7a11a0-5c54-4b0d-885a-8a63fd1b6b1e",
      "name": "Pinecone Vector Store3",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        64,
        16
      ],
      "parameters": {
        "mode": "load",
        "prompt": "={{ $json.chatInput }}",
        "options": {
          "pineconeNamespace": "DataPlace"
        },
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "seo-writer",
          "cachedResultName": "seo-writer"
        }
      },
      "credentials": {
        "pineconeApi": {
          "id": "KFxRVOGBwN0Rzjfi",
          "name": "PineconeApi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "e82c2c2a-bba2-48ae-a1f0-1b0dba7afe01",
      "name": "Embeddings Google Gemini3",
      "type": "@n8n/n8n-nodes-langchain.embeddingsGoogleGemini",
      "position": [
        160,
        224
      ],
      "parameters": {
        "modelName": "models/embedding-001"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "GrMMZFFcR5VAsHsI",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "759f3623-2ced-4741-b78d-69b3f7c02d89",
      "name": "Google Gemini Chat Model3",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        400,
        208
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-1.5-flash"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "GrMMZFFcR5VAsHsI",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8a361dda-4cd9-482d-a34a-32d8510f71f4",
      "name": "Aggregieren",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -288,
        -672
      ],
      "parameters": {
        "include": "specifiedFields",
        "options": {},
        "aggregate": "aggregateAllItemData",
        "fieldsToInclude": "markdown"
      },
      "typeVersion": 1
    },
    {
      "id": "01690ab5-5abe-4b8b-8570-00231d565ace",
      "name": "In Datei konvertieren",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        -48,
        -672
      ],
      "parameters": {
        "options": {},
        "operation": "toText",
        "sourceProperty": "data"
      },
      "typeVersion": 1.1
    },
    {
      "id": "526e7a83-ef44-4147-877f-ee6b52f7546c",
      "name": "Felder bearbeiten1",
      "type": "n8n-nodes-base.set",
      "position": [
        -1872,
        -32
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "0290299d-10a4-40c0-8d41-5d0563f6cd3a",
              "name": "Keywords",
              "type": "string",
              "value": "\"Scraping\", \"Google trends\""
            },
            {
              "id": "541029b9-1400-4a10-a9cd-9f472af59986",
              "name": "Search Intent",
              "type": "string",
              "value": "People searching to get tips on Scraping"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "ce2c1ddb-0dc3-48ef-9e7b-bf77b33837e4",
      "name": "Basic LLM Chain1",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        -1424,
        -32
      ],
      "parameters": {
        "text": "=I want to write a SEO optimized blog.\n\nKeywords I used: {{ $('Edit Fields1').item.json.Keywords }}\nSearch Intent: {{ $('Edit Fields1').item.json['Search Intent'] }}\nSerp data for the keywords:\n {{ JSON.stringify($json.organic_results) }}\n\nPlease suggest some more keywords that actually align with my search intent. Make use of serp tool for relevancy of keywords.",
        "batching": {},
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "12412d90-0f45-4054-b5c7-612b595478f2",
      "name": "Google Gemini Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -1344,
        192
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-1.5-flash"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "GrMMZFFcR5VAsHsI",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "089cdb6a-d1c0-41e2-a98d-78422d5fd7e8",
      "name": "Markdown",
      "type": "n8n-nodes-base.markdown",
      "position": [
        -1072,
        -32
      ],
      "parameters": {
        "mode": "markdownToHtml",
        "options": {},
        "markdown": "={{ $json.text }}"
      },
      "typeVersion": 1
    },
    {
      "id": "c2c4cba6-a9e2-4ff9-a183-3de51050c23d",
      "name": "HTML",
      "type": "n8n-nodes-base.html",
      "position": [
        -848,
        -32
      ],
      "parameters": {
        "html": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" />\n  <title>Report Summary</title>\n  <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\" rel=\"stylesheet\">\n  <style>\n    body {\n      margin: 0;\n      padding: 0;\n      font-family: 'Inter', sans-serif;\n      background: #f4f6f8;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      min-height: 100vh;\n    }\n\n    .container {\n      background-color: #ffffff;\n      max-width: 600px;\n      width: 90%;\n      padding: 32px;\n      border-radius: 16px;\n      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\n      text-align: center;\n    }\n\n    h1 {\n      color: #ff6d5a;\n      font-size: 28px;\n      font-weight: 700;\n      margin-bottom: 12px;\n    }\n\n    h2 {\n      color: #606770;\n      font-size: 20px;\n      font-weight: 600;\n      margin-bottom: 24px;\n    }\n\n    .content {\n      color: #333;\n      font-size: 16px;\n      line-height: 1.6;\n      white-space: pre-wrap;\n    }\n\n    @media (max-width: 480px) {\n      .container {\n        padding: 20px;\n      }\n\n      h1 {\n        font-size: 24px;\n      }\n\n      h2 {\n        font-size: 18px;\n      }\n    }\n  </style>\n</head>\n<body>\n  <div class=\"container\">\n    <h1>Data Report</h1>\n    <h2>Processed via Automation</h2>\n    <div class=\"content\">{{ $json.data }}</div>\n  </div>\n\n  <script>\n    console.log(\"Hello World!\");\n  </script>\n</body>\n</html>\n"
      },
      "typeVersion": 1.2
    },
    {
      "id": "b0f2fd25-9fbc-4872-9d70-2d3b0cbcd98e",
      "name": "Über Elemente iterieren",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -992,
        -560
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "4cb63818-ffbf-4ffb-9de5-e7fc545befb8",
      "name": "Notizzettel",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2000,
        -752
      ],
      "parameters": {
        "width": 1560,
        "height": 600,
        "content": "## Scrape and Crawl Website for Knowledge Base"
      },
      "typeVersion": 1
    },
    {
      "id": "c527d49a-5f98-4b7f-892f-f97cb34e6834",
      "name": "Notizzettel1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -432,
        -752
      ],
      "parameters": {
        "color": 4,
        "width": 1360,
        "height": 600,
        "content": "## Store data on Pinecone"
      },
      "typeVersion": 1
    },
    {
      "id": "973723ff-d2a4-48c3-8ad4-1cefbee3316a",
      "name": "Notizzettel2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2000,
        -144
      ],
      "parameters": {
        "color": 5,
        "width": 1560,
        "height": 580,
        "content": "## SERP Analysis using AI"
      },
      "typeVersion": 1
    },
    {
      "id": "501829c1-94f9-4c25-aa49-02f85f693ccf",
      "name": "Notizzettel3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -432,
        -144
      ],
      "parameters": {
        "color": 3,
        "width": 1360,
        "height": 580,
        "content": "## Use the Knowledge Base to Create Blogs"
      },
      "typeVersion": 1
    },
    {
      "id": "27e0ebab-f963-4dd4-ac09-776b899378a2",
      "name": "Embeddings Google Gemini",
      "type": "@n8n/n8n-nodes-langchain.embeddingsGoogleGemini",
      "position": [
        128,
        -480
      ],
      "parameters": {},
      "credentials": {
        "googlePalmApi": {
          "id": "GrMMZFFcR5VAsHsI",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "320558ff-ce36-4085-989d-acafa693aec5",
      "name": "Alle Blogs crawlen",
      "type": "n8n-nodes-scrapeless.scrapeless",
      "position": [
        -1712,
        -576
      ],
      "parameters": {
        "url": "https://www.scrapeless.com/en/blog",
        "resource": "crawler",
        "operation": "crawl",
        "limitCrawlPages": 20
      },
      "credentials": {
        "scrapelessApi": {
          "id": "TZksgBeYTz4bs3e5",
          "name": "Scrapeless account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c8e29523-8555-4a6e-89c3-f3335e319914",
      "name": "Inhalte parsen und Informationen extrahieren",
      "type": "n8n-nodes-base.code",
      "position": [
        -1488,
        -576
      ],
      "parameters": {
        "jsCode": "return items.map(item => {\n  const md = $input.first().json['0'].markdown; \n\n  if (typeof md !== 'string') {\n    console.warn('Markdown content is not a string:', md);\n    return {\n      json: {\n        title: '',\n        mainContent: '',\n        extractedLinks: [],\n        error: 'Markdown content is not a string'\n      }\n    };\n  }\n\n  const articleTitleMatch = md.match(/^#\\s*(.*)/m);\n  const title = articleTitleMatch ? articleTitleMatch[1].trim() : 'No Title Found';\n\n  let mainContent = md.replace(/^#\\s*.*(\\r?\\n)+/, '').trim();\n\n  const extractedLinks = [];\n  // The negative lookahead `(?!#)` ensures '#' is not matched after the base URL,\n  // or a more robust way is to specifically stop before the '#'\n  const linkRegex = /\\[([^\\]]+)\\]\\((https?:\\/\\/[^\\s#)]+)\\)/g; \n  let match;\n  while ((match = linkRegex.exec(mainContent))) {\n    extractedLinks.push({\n      text: match[1].trim(),\n      url: match[2].trim(),\n    });\n  }\n\n  return {\n    json: {\n      title,\n      mainContent,\n      extractedLinks,\n    },\n  };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "9b8e9ced-06e4-42e2-814c-43b8bc6a18d4",
      "name": "Detaillierte Inhalte scrapen",
      "type": "n8n-nodes-scrapeless.scrapeless",
      "position": [
        -704,
        -480
      ],
      "parameters": {
        "url": "={{ $json.url }}",
        "resource": "crawler"
      },
      "credentials": {
        "scrapelessApi": {
          "id": "TZksgBeYTz4bs3e5",
          "name": "Scrapeless account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8acec9c9-8844-4f97-a6dd-1cfaab35a16a",
      "name": "Ziel-Keywords auf Google SERP analysieren",
      "type": "n8n-nodes-scrapeless.scrapeless",
      "position": [
        -1648,
        -32
      ],
      "parameters": {
        "q": "={{ $json.Keywords }}"
      },
      "credentials": {
        "scrapelessApi": {
          "id": "TZksgBeYTz4bs3e5",
          "name": "Scrapeless account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "967a693a-ef41-4c52-a7ea-c11f0466b171",
      "name": "URL und Text trennen",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -1264,
        -576
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "extractedLinks"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "4c84fe22-5af1-4ca5-b07d-737dbb01c073",
  "connections": {
    "089cdb6a-d1c0-41e2-a98d-78422d5fd7e8": {
      "main": [
        [
          {
            "node": "c2c4cba6-a9e2-4ff9-a183-3de51050c23d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8a361dda-4cd9-482d-a34a-32d8510f71f4": {
      "main": [
        [
          {
            "node": "01690ab5-5abe-4b8b-8570-00231d565ace",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "526e7a83-ef44-4147-877f-ee6b52f7546c": {
      "main": [
        [
          {
            "node": "8acec9c9-8844-4f97-a6dd-1cfaab35a16a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "01690ab5-5abe-4b8b-8570-00231d565ace": {
      "main": [
        [
          {
            "node": "3ba48a52-d664-4c9f-8f4c-05c942fd117f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "320558ff-ce36-4085-989d-acafa693aec5": {
      "main": [
        [
          {
            "node": "c8e29523-8555-4a6e-89c3-f3335e319914",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b0f2fd25-9fbc-4872-9d70-2d3b0cbcd98e": {
      "main": [
        [
          {
            "node": "8a361dda-4cd9-482d-a34a-32d8510f71f4",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "9b8e9ced-06e4-42e2-814c-43b8bc6a18d4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ce2c1ddb-0dc3-48ef-9e7b-bf77b33837e4": {
      "main": [
        [
          {
            "node": "089cdb6a-d1c0-41e2-a98d-78422d5fd7e8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "121a1c3a-a056-403c-ad76-28a974e60d68": {
      "ai_document": [
        [
          {
            "node": "3ba48a52-d664-4c9f-8f4c-05c942fd117f",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "7db55dbe-d04e-4515-aab7-9ad6ef8db8b5": {
      "ai_memory": [
        [
          {
            "node": "b6d0989d-fd3b-40e5-bcda-2999ea5da413",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "2f7a11a0-5c54-4b0d-885a-8a63fd1b6b1e": {
      "main": [
        [
          {
            "node": "b6d0989d-fd3b-40e5-bcda-2999ea5da413",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "27e0ebab-f963-4dd4-ac09-776b899378a2": {
      "ai_embedding": [
        [
          {
            "node": "3ba48a52-d664-4c9f-8f4c-05c942fd117f",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "9b8e9ced-06e4-42e2-814c-43b8bc6a18d4": {
      "main": [
        [
          {
            "node": "b0f2fd25-9fbc-4872-9d70-2d3b0cbcd98e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e82c2c2a-bba2-48ae-a1f0-1b0dba7afe01": {
      "ai_embedding": [
        [
          {
            "node": "2f7a11a0-5c54-4b0d-885a-8a63fd1b6b1e",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "12412d90-0f45-4054-b5c7-612b595478f2": {
      "ai_languageModel": [
        [
          {
            "node": "ce2c1ddb-0dc3-48ef-9e7b-bf77b33837e4",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "759f3623-2ced-4741-b78d-69b3f7c02d89": {
      "ai_languageModel": [
        [
          {
            "node": "b6d0989d-fd3b-40e5-bcda-2999ea5da413",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "967a693a-ef41-4c52-a7ea-c11f0466b171": {
      "main": [
        [
          {
            "node": "b0f2fd25-9fbc-4872-9d70-2d3b0cbcd98e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ca4c81af-45e5-4c37-bbdb-83cb0233f9e9": {
      "main": [
        [
          {
            "node": "2f7a11a0-5c54-4b0d-885a-8a63fd1b6b1e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6bd61074-309d-4675-afac-6d09c59fab80": {
      "ai_textSplitter": [
        [
          {
            "node": "121a1c3a-a056-403c-ad76-28a974e60d68",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    },
    "652b062c-6398-4627-81fb-1bdc68a17b4c": {
      "main": [
        [
          {
            "node": "320558ff-ce36-4085-989d-acafa693aec5",
            "type": "main",
            "index": 0
          },
          {
            "node": "526e7a83-ef44-4147-877f-ee6b52f7546c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c8e29523-8555-4a6e-89c3-f3335e319914": {
      "main": [
        [
          {
            "node": "967a693a-ef41-4c52-a7ea-c11f0466b171",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8acec9c9-8844-4f97-a6dd-1cfaab35a16a": {
      "main": [
        [
          {
            "node": "ce2c1ddb-0dc3-48ef-9e7b-bf77b33837e4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Experte - Content-Erstellung, KI RAG

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes28
Kategorie2
Node-Typen20
Schwierigkeitsbeschreibung

Für fortgeschrittene Benutzer, komplexe Workflows mit 16+ Nodes

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34