AutomationFlowsAI & RAG › AI-Powered Gmail Reply Automation

AI-Powered Gmail Reply Automation

Original n8n title: Examplegeneratorv2

ExampleGeneratorV2. Uses gmailTrigger, agent, gmail, memoryPostgresChat. Event-driven trigger; 26 nodes.

Event trigger★★★★☆ complexityAI-powered26 nodesGmail TriggerAgentGmailMemory Postgres ChatOpenAI Chat
AI & RAG Trigger: Event Nodes: 26 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Agent → Gmail 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
{
  "name": "ExampleGeneratorV2",
  "nodes": [
    {
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "filters": {
          "readStatus": "unread"
        }
      },
      "type": "n8n-nodes-base.gmailTrigger",
      "typeVersion": 1.2,
      "position": [
        16272,
        288
      ],
      "id": "ac424dc1-50fc-4fe1-be22-76919f44a5a2",
      "name": "GmailTrigger",
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $input.first().json.content }}",
        "options": {
          "systemMessage": "Du bist ein erfahrener Lehrer und erstellst Aufgaben f\u00fcr Sch\u00fcler und Studenten in verschiedenen Fachbereichen.\n\n**EINGABEPARAMETER:**\n- Fachbereich: Informatik | Mathematik | Naturwissenschaften | Geisteswissenschaften | Wirtschaftswissenschaften | Sonstiges (Standard: Informatik)\n- Thema: z.B. Programmieren POSE C#\n- Kapitel: z.B. Stringbearbeitung, Arrays, Schleifen\n- Level: einfach | mittel | schwer (Standard: mittel)\n- Ausgabesprache: englisch | deutsch (Standard: deutsch)\n- Ausgabeformat: markdown | html (Standard: markdown)\n- Sonstiges: z.B. keine Erkl\u00e4rungen, nur Codebeispiele | mit Erkl\u00e4rungen | nur \u00dcbungsaufgaben (Standard: mit Erkl\u00e4rungen)\n\n**REGEL 1 - FACHBEREICH:**\nPasse die Aufgabenstruktur dem Fachbereich an:\n- Informatik: Codebeispiele, Algorithmen, Testvorgaben\n- Mathematik: Formeln, Beweise, Rechenbeispiele\n- Naturwissenschaften: Experimente, Beobachtungen, Hypothesen\n- Geisteswissenschaften: Textanalyse, Argumentation, Quellen\n- Wirtschaftswissenschaften: Fallstudien, Berechnungen, Analysen\n\n**REGEL 2 - SPRACHE (STRIKT BEFOLGEN!):**\nSuche nach \"Ausgabesprache\" oder \"Language\".\n- Falls \"englisch\", \"english\" oder \"en\": Schreibe ALLES auf ENGLISCH\n- Sonst: Schreibe auf DEUTSCH\n\n**REGEL 3 - FORMAT (STRIKT BEFOLGEN!):**\nSuche nach \"Ausgabeformat\" oder \"Format\".\n- Falls \"html\": Nutze HTML-Tags (<h1>, <h2>, <ul>, <li>, <pre><code>, <table>)\n- Sonst: Nutze Markdown (#, ##, -, ```, |)\n\n**REGEL 4 - SONSTIGES:**\nSuche nach \"Sonstiges\".\n- \"keine Erkl\u00e4rungen\" oder \"nur Code\": Nur Aufgabe und L\u00f6sung/Code, keine ausf\u00fchrlichen Erkl\u00e4rungen\n- \"nur \u00dcbungsaufgaben\": Keine L\u00f6sungen, nur Aufgabenstellungen\n- Sonst: Vollst\u00e4ndige Aufgabe mit Erkl\u00e4rungen\n\n**STRUKTUR DER AUFGABE:**\n1. Titel mit Aufgabenname und Zielgruppe\n2. Lehrziele (3-5 Punkte)\n3. Aufgabenstellung (detailliert)\n4. Beurteilungskriterien (mit Prozentangaben)\n5. Beispiel (Codeausgabe, Rechenweg, etc.)\n6. Fehlerbehandlung/H\u00e4ufige Fehler\n7. Hinweise zur L\u00f6sung\n8. Testvorgaben/\u00dcbungsbeispiele (mind. 4)\n9. Erweiterungsoption\n\n**REGEL 5 - BEURTEILUNGSKRITERIEN (AUTOMATISCH ERSTELLEN!):**\nErstelle automatisch passende Beurteilungskriterien basierend auf der Aufgabenstellung und dem Fachbereich:\n\n**Informatik/Programmierung:**\n- Funktionalit\u00e4t & Korrektheit (40-50%): Erf\u00fcllung aller Anforderungen, korrekte Ausgaben\n- Codequalit\u00e4t & Stil (20-25%): Lesbarkeit, Kommentare, Namenskonventionen\n- Algorithmen & Effizienz (15-20%): Optimale L\u00f6sung, Zeitkomplexit\u00e4t\n- Fehlerbehandlung (10-15%): Robustheit, Exception Handling\n- Erweiterungen/Bonus (optional 0-10%): Zusatzfunktionen\n\n**Mathematik:**\n- Korrektheit der L\u00f6sung (50-60%): Richtige Ergebnisse\n- Rechenweg & Beweisf\u00fchrung (25-30%): Nachvollziehbare Schritte\n- Mathematische Notation (10-15%): Saubere Darstellung\n- Interpretation/Erkl\u00e4rung (10-15%): Verst\u00e4ndnis zeigen\n\n**Naturwissenschaften:**\n- Experimentdurchf\u00fchrung (30-35%): Methodik, Protokoll\n- Beobachtung & Daten (25-30%): Vollst\u00e4ndigkeit, Genauigkeit\n- Analyse & Interpretation (25-30%): Schlussfolgerungen\n- Darstellung & Dokumentation (10-15%): \u00dcbersichtlichkeit\n\n**Geisteswissenschaften:**\n- Inhaltliche Qualit\u00e4t (40-45%): Argumentation, Tiefe\n- Quellenarbeit (20-25%): Recherche, Zitation\n- Struktur & Aufbau (15-20%): Gliederung, roter Faden\n- Sprache & Stil (15-20%): Ausdruck, Rechtschreibung\n\n**Wirtschaftswissenschaften:**\n- Fachliche Korrektheit (35-40%): Berechnungen, Konzepte\n- Analyse & Bewertung (30-35%): Kritisches Denken\n- Praxisbezug (15-20%): Realit\u00e4tsn\u00e4he\n- Darstellung (15-20%): \u00dcbersichtlichkeit, Visualisierung\n\nPasse die Prozentverteilung dem Level an:\n- Einfach: Fokus auf Korrektheit (h\u00f6here %)\n- Mittel: Ausgewogen zwischen Korrektheit und Qualit\u00e4t\n- Schwer: St\u00e4rkere Gewichtung auf Qualit\u00e4t, Effizienz, Tiefe\n\n**QUALIT\u00c4TSREGELN:**\n1. Komplexit\u00e4t dem Level anpassen\n2. Praxisnahe, motivierende Aufgabenstellung\n3. Mind. 4 Testf\u00e4lle/Beispiele\n4. Didaktisch wertvolle Hinweise\n5. Bei Level mittel/schwer: Strukturierung betonen\n6. Beurteilungskriterien m\u00fcssen auf Aufgabe zugeschnitten sein"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3.1,
      "position": [
        17472,
        256
      ],
      "id": "1c61fea6-2883-4c9f-b213-e0e9d850d5a2",
      "name": "AI Agent"
    },
    {
      "parameters": {
        "operation": "markAsRead",
        "messageId": "={{ $('GmailTrigger').item.json.id }}"
      },
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.1,
      "position": [
        16672,
        272
      ],
      "id": "ee06e1a7-1a9c-4694-9c4f-fe2bfc742e24",
      "name": "MarkAsRead",
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "sendTo": "={{ $('GmailTrigger').item.json.From }}",
        "subject": "=Re: {{ $('GmailTrigger').item.json.Subject }}",
        "emailType": "text",
        "message": "={{ $json.emailBody }}",
        "options": {
          "attachmentsUi": {
            "attachmentsBinary": [
              {}
            ]
          }
        }
      },
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.1,
      "position": [
        18176,
        240
      ],
      "id": "48e6b5ac-c212-48e8-9fd4-052cd5dd013a",
      "name": "GmailReply",
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 3
          },
          "conditions": [
            {
              "id": "a2f0eb6f-9653-4ed5-8a38-d6f9577e86df",
              "leftValue": "={{ $json.Subject?.toString().trim().toLowerCase() || '' }}",
              "rightValue": "aufgabe",
              "operator": {
                "type": "string",
                "operation": "startsWith"
              }
            },
            {
              "id": "bd8cabc9-8abc-4727-8be1-bfb1955e2bb0",
              "leftValue": "={{ $json.Subject?.toString().trim().toLowerCase() || '' }}",
              "rightValue": "example",
              "operator": {
                "type": "string",
                "operation": "startsWith"
              }
            }
          ],
          "combinator": "or"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.3,
      "position": [
        16448,
        288
      ],
      "id": "198af351-aa42-4da7-a5a7-05e000d25714",
      "name": "If"
    },
    {
      "parameters": {
        "content": "Email senden an gehrergerhard@gmail.com\n\n**Betreff:** Example\n**Inhalt:**\n**Fachbereich:** Informatik | Mathematik | Naturwissenschaften | Geisteswissenschaften | Wirtschaftswissenschaften | Sonstiges (Standard: Informatik)\nThema: z.B. Programmieren POSE C#\n**Kapitel:** z.B. Stringbearbeitung, Arrays, Schleifen\n**Level:** einfach | mittel | schwer (Standard: mittel)\n**Ausgabesprache:** englisch | deutsch (Standard: deutsch)\n**Ausgabeformat:** markdown | html (Standard: markdown)\n**Sonstiges:** z.B. keine Erkl\u00e4rungen, nur Codebeispiele | mit Erkl\u00e4rungen | nur \u00dcbungsaufgaben (Standard: mit Erkl\u00e4rungen)\n\n**Zum Beispiel:**\n\nBetreff: Example \nInhalt:\nFachbereich: Mathematik \nThema: Analysis\nKapitel: Ableitungsregeln\nLevel: mittel\nAusgabesprache: englisch\nAusgabeformat: markdown\nSonstiges: mit Erkl\u00e4rungen\n",
        "height": 672,
        "width": 496,
        "color": 5
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        15904,
        0
      ],
      "id": "2b31a7ce-9c46-40ac-82d6-511223847fc1",
      "name": "Sticky Note"
    },
    {
      "parameters": {
        "content": "Filter: Verwende alle Emails die im Betreff Example oder Aufgabe beinhalten\n\nZ.B.: Aufgabe: Ableitung",
        "height": 672,
        "width": 192,
        "color": 4
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        16416,
        0
      ],
      "id": "87e0573c-3e32-4ace-9d5a-b5a9cc86293d",
      "name": "Sticky Note1"
    },
    {
      "parameters": {
        "content": "Markiert die Email als gelesen",
        "height": 240,
        "width": 192,
        "color": 3
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        16624,
        208
      ],
      "id": "2e30c989-07de-4c92-b21d-89a2a98a67d4",
      "name": "Sticky Note2"
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        16480,
        528
      ],
      "id": "54b74a59-e65c-4f35-af47-56769aece420",
      "name": "NoOperation"
    },
    {
      "parameters": {
        "content": "Analysiert die Email und generiert die Aufgabe nach der definierten Vorlage",
        "height": 528,
        "width": 352,
        "color": 6
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        17392,
        192
      ],
      "id": "6b7d3a9f-9a39-4b87-82e6-b014bc177e26",
      "name": "Sticky Note3"
    },
    {
      "parameters": {
        "content": "Sendet die Aufgabe an den Sender zur\u00fcck.",
        "height": 240,
        "width": 192,
        "color": 3
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        18144,
        176
      ],
      "id": "19cf0309-0462-4df1-898c-61f903fee9db",
      "name": "Sticky Note4"
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3.2,
      "position": [
        17056,
        256
      ],
      "id": "37085fd2-2299-41fa-b009-d70d4e06981e",
      "name": "Input"
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "createExample",
        "responseMode": "responseNode",
        "options": {}
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2.1,
      "position": [
        16256,
        -208
      ],
      "id": "ab01f464-a8f4-47d7-b973-92ca53ff207c",
      "name": "Webhook"
    },
    {
      "parameters": {
        "jsCode": "return {\n  \"from\": $('GmailTrigger').first().json.From,\n  \"subject\": $('GmailTrigger').first().json.Subject,\n  \"content\": $('GmailTrigger').first().json.text || $('GmailTrigger').first().json.snippet || '',\n}"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        16864,
        272
      ],
      "id": "972ee25c-454e-495f-b506-afd4789d3944",
      "name": "PrepareEmailData"
    },
    {
      "parameters": {
        "jsCode": "return {\n  \"sessionId\": $input.first().json.body.sessionId || '',\n  \"from\": '',\n  \"subject\": '',\n  \"content\": $input.first().json.body.content || '',\n}"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        16864,
        -208
      ],
      "id": "a36b0d79-21d0-49e4-b000-d92bcb4cb311",
      "name": "PrepareHookData"
    },
    {
      "parameters": {
        "jsCode": "function generateGuid() {\n  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n    const r = Math.random() * 16 | 0;\n    const v = c === 'x' ? r : (r & 0x3 | 0x8);\n    return v.toString(16);\n  });\n}\n\nreturn {\n  \"sessionId\": $input.first().json.sessionId || generateGuid(),\n  \"from\": $input.first().json.from,\n  \"subject\": $input.first().json.subject,\n  \"content\": $input.first().json.content\n}"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        17232,
        256
      ],
      "id": "a3cc22a5-84e5-4f5d-85cd-8ec01b7faa21",
      "name": "PrepareData"
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "={{ $('PrepareData').item.json.sessionId }}",
        "contextWindowLength": 10
      },
      "type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
      "typeVersion": 1.3,
      "position": [
        17568,
        592
      ],
      "id": "eff408ef-d835-4a2a-ba48-a9a6a31beeca",
      "name": "ChatMemory",
      "credentials": {
        "postgres": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "content": "Aufbereitung der Verarbeitungsdaten\n\n\n",
        "height": 704,
        "width": 544
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        16832,
        -256
      ],
      "id": "4feb76d8-4dd9-4a5b-8a0b-82ed2d02d04d",
      "name": "Sticky Note6"
    },
    {
      "parameters": {
        "content": "Schnittstelle zu externen Apps\n\nMethod: POST\nURL: http://localhost:5678/webhook/createExample\nBody:\n{\n  \"sessionId\": \"XXXYYYZZZ\",\n  \"content\": \"Fachbereich: Mathematik\n                      Thema: Winkelfunktionen\n                      ...\"\n}\n",
        "height": 240,
        "width": 496
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        15904,
        -256
      ],
      "id": "4a4dff80-84d7-45e6-958c-849e81f583b5",
      "name": "Sticky Note5"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.5,
      "position": [
        18192,
        560
      ],
      "id": "15fc1377-b5d9-47d1-8b43-77c80969a4bc",
      "name": "RespondToWebhook"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 3
          },
          "conditions": [
            {
              "id": "eb414f0f-f415-4de0-88a0-8254ade96f8d",
              "leftValue": "={{ $('Input').item.json.from ?? '' }}",
              "rightValue": "",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.3,
      "position": [
        17792,
        256
      ],
      "id": "eab12ebf-1c8a-467d-8464-6d02f898e9ce",
      "name": "IfEmailRequest"
    },
    {
      "parameters": {
        "content": "Sendet die Aufgabe an den Sender zur\u00fcck.",
        "height": 224,
        "width": 192
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        18144,
        496
      ],
      "id": "f96b2310-71a2-4432-80af-774376c0fc0f",
      "name": "Sticky Note7"
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        18400,
        560
      ],
      "id": "f8dc3f92-f022-4338-88dd-dae7f6b3df38",
      "name": "ExitWebhook"
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        18400,
        240
      ],
      "id": "420b7604-f19e-4cb1-987b-1c580fbc38b4",
      "name": "ExitEmail"
    },
    {
      "parameters": {
        "jsCode": "// Extrahiere Format aus dem Input\nconst content = $input.first().json.content || '';\nconst output = $input.first().json.output || '';\n\n// Erkenne Format aus dem Content oder nutze Default\nlet format = 'markdown';\nlet fileExtension = 'md';\nlet mimeType = 'text/markdown';\n\nif (content.toLowerCase().includes('ausgabeformat: html') || content.toLowerCase().includes('format: html')) {\n  format = 'html';\n  fileExtension = 'html';\n  mimeType = 'text/html';\n}\n\n// Erstelle Dateinamen mit Zeitstempel\nconst timestamp = new Date().toISOString().split('T')[0];\nconst filename = `task_${timestamp}.${fileExtension}`;\n\n// Email Body Text\nconst emailBody = `Ihre Aufgabe wurde erfolgreich erstellt.\\n\\nDie vollst\u00e4ndige Aufgabe finden Sie im Anhang: ${filename}\\n\\nViel Erfolg!`;\n\n// Erstelle Binary-Daten mit prepareBinaryData\nconst fileBuffer = Buffer.from(output, 'utf-8');\nconst binaryData = await this.helpers.prepareBinaryData(fileBuffer, filename, mimeType);\n\nreturn [{\n  json: {\n    output: output,\n    emailBody: emailBody,\n    filename: filename,\n    format: format\n  },\n  binary: {\n    data: binaryData\n  }\n}];"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        17984,
        240
      ],
      "id": "8bd88ace-63fb-4635-9dee-f6db4d33a8e2",
      "name": "CreateAttachment"
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "gpt-4.1-mini",
          "mode": "list",
          "cachedResultName": "gpt-4.1-mini"
        },
        "builtInTools": {},
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.3,
      "position": [
        17472,
        448
      ],
      "id": "4b2f8d0b-44c8-48fd-aaba-4c16127871bf",
      "name": "OpenAIChatModel",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "AI Agent": {
      "main": [
        [
          {
            "node": "IfEmailRequest",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GmailTrigger": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "MarkAsRead": {
      "main": [
        [
          {
            "node": "PrepareEmailData",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [
          {
            "node": "MarkAsRead",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "NoOperation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Input": {
      "main": [
        [
          {
            "node": "PrepareData",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "PrepareEmailData": {
      "main": [
        [
          {
            "node": "Input",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "PrepareHookData",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "PrepareHookData": {
      "main": [
        [
          {
            "node": "Input",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GmailReply": {
      "main": [
        [
          {
            "node": "ExitEmail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "PrepareData": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ChatMemory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "IfEmailRequest": {
      "main": [
        [
          {
            "node": "CreateAttachment",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "RespondToWebhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "CreateAttachment": {
      "main": [
        [
          {
            "node": "GmailReply",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RespondToWebhook": {
      "main": [
        [
          {
            "node": "ExitWebhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAIChatModel": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1",
    "availableInMCP": false
  },
  "versionId": "3da27b80-3a40-47e1-a738-50c948256d76",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "zXfJB6BtCPtOgjZU",
  "tags": []
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

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

About this workflow

ExampleGeneratorV2. Uses gmailTrigger, agent, gmail, memoryPostgresChat. Event-driven trigger; 26 nodes.

Source: https://github.com/leoggehrer/DSAI-Seminar_2026/blob/1ea74d12f15e8ea15d7c20f7fc1e4fef9a9f791a/workflows/exampleManager/ExampleGeneratorV2.json — 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

This template and YouTube video goes over 5 different implementations of evaluations within n8n. Categorization Correctness Tools used String similarity Helpfulness

Evaluation, Evaluation Trigger, Google Gemini Chat +8
AI & RAG

Automate your personal productivity with this intelligent n8n workflow that integrates Telegram, Google Sheets, and OpenAI (GPT-4o). This system uses multiple AI agents to manage work hours, tasks, fi

Agent, OpenAI Chat, Telegram +9
AI & RAG

This n8n workflow automates sales processes using AI agents integrated with Airtable as a CRM and Gmail for email handling. It consists of two main workflows: one for handling Airtable status changes

Airtable Trigger, Agent, OpenAI Chat +9
AI & RAG

mails2notion V2. Uses lmChatOpenAi, toolCalculator, outputParserStructured, gmail. Event-driven trigger; 38 nodes.

OpenAI Chat, Tool Calculator, Output Parser Structured +5
AI & RAG

This workflow automatically creates Tasks from forwarded Emails, similar to Asana, but better. Emails are processed by AI and converted to rather actionable task.

OpenAI Chat, Tool Calculator, Output Parser Structured +5