Wöchentliche Rückschau
Dies ist ein AI Summarization, Multimodal AI-Bereich Automatisierungsworkflow mit 10 Nodes. Hauptsächlich werden Gmail, Function, Telegram, GoogleDocs, ErrorTrigger und andere Nodes verwendet. GPT-4 zur Analyse wöchentlicher Notizen zur Generierung von Aufgaben und Zusammenfassungen verwenden
- •Google-Konto + Gmail API-Anmeldedaten
- •Telegram Bot Token
- •OpenAI API Key
Verwendete Nodes (10)
Kategorie
{
"id": "xExUyHjRkpcuKuOY",
"meta": {
"instanceId": "cb56cb3bab7bf366e48fdb39bc0ee15c984e2e754ddee75e0cfbe82dc0be35ed",
"templateCredsSetupCompleted": true
},
"name": "Weekly review",
"tags": [],
"nodes": [
{
"id": "9a585642-aab8-4da7-bdce-60af6ce468cb",
"name": "Zeitplan-Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-64,
-144
],
"parameters": {
"rule": {
"interval": [
{
"field": "weeks",
"triggerAtHour": 23
}
]
}
},
"typeVersion": 1.2
},
{
"id": "ad5e95ce-64d0-405d-bfff-fa17cc61ca7c",
"name": "Dokument abrufen",
"type": "n8n-nodes-base.googleDocs",
"position": [
160,
-144
],
"parameters": {
"operation": "get",
"documentURL": "https://docs.google.com/document/d/1XYhGMHOPCMdZJgOyhIa77_LpUmVceyp-HjpyEj6fv48/edit?tab=t.0"
},
"credentials": {
"googleDocsOAuth2Api": {
"id": "uXZO5vC2yqTXbjnQ",
"name": "Google Docs account"
}
},
"typeVersion": 2
},
{
"id": "weekly-filter-node",
"name": "Wöchentlicher Filter",
"type": "n8n-nodes-base.function",
"position": [
384,
-144
],
"parameters": {
"functionCode": "const documentText = $input.first().json.content;\nconst now = new Date();\nconst oneWeekAgo = new Date();\noneWeekAgo.setDate(oneWeekAgo.getDate() - 7);\n\n// Finde alle Einträge mit Datum-Stamps (📅 DD.MM.YYYY, HH:MM)\nconst entryPattern = /📅\\s(\\d{2}\\.\\d{2}\\.\\d{4}),?\\s(\\d{2}:\\d{2})[\\s\\S]*?(?=📅|$)/g;\nconst weeklyEntries = [];\nlet match;\n\nwhile ((match = entryPattern.exec(documentText)) !== null) {\n const dateStr = match[1]; // DD.MM.YYYY\n const timeStr = match[2]; // HH:MM\n \n // Parse deutsches Datum\n const [day, month, year] = dateStr.split('.');\n const [hour, minute] = timeStr.split(':');\n const entryDate = new Date(year, month - 1, day, hour, minute);\n \n // Nur wenn innerhalb der letzten 7 Tage\n if (entryDate >= oneWeekAgo && entryDate <= now) {\n const entryText = match[0].trim();\n \n weeklyEntries.push({\n date: entryDate,\n dateStr: `${dateStr}, ${timeStr}`,\n content: entryText\n });\n }\n}\n\n// Sortiere chronologisch\nweeklyEntries.sort((a, b) => a.date - b.date);\n\n// Kombiniere für AI-Analyse\nconst weeklyText = weeklyEntries.map(entry => entry.content).join('\\n\\n---\\n\\n');\n\n// Kalendarwoche berechnen\nconst getWeekNumber = (date) => {\n const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));\n const dayNum = d.getUTCDay() || 7;\n d.setUTCDate(d.getUTCDate() + 4 - dayNum);\n const yearStart = new Date(Date.UTC(d.getUTCFullYear(),0,1));\n return Math.ceil((((d - yearStart) / 86400000) + 1)/7);\n};\n\nconst currentWeek = getWeekNumber(now);\n\nreturn [{\n json: {\n weeklyText: weeklyText,\n entryCount: weeklyEntries.length,\n weekNumber: currentWeek,\n dateRange: {\n from: oneWeekAgo.toLocaleDateString('de-CH'),\n to: now.toLocaleDateString('de-CH')\n },\n entries: weeklyEntries\n }\n}];"
},
"typeVersion": 1
},
{
"id": "ai-task-extractor-node",
"name": "KI-Aufgaben-Extraktor",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
608,
-144
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "CHATGPT-4O-LATEST"
},
"options": {},
"messages": {
"values": [
{
"content": "=Du analysierst die Audio- und Text-Notizen von Julian Reich aus der letzten Woche ({{ $json.entryCount }} Einträge vom {{ $json.dateRange.from }} bis {{ $json.dateRange.to }}).\n\nExtrahiere strukturiert:\n\n## AUSGABE-FORMAT (exakt einhalten):\n\n**🎯 TASKS FÜR NÄCHSTE WOCHE:**\n- [ ] Task 1\n- [ ] Task 2\n- [ ] Task 3\n- [ ] Task 4\n- [ ] Task 5\n- etc.\n\n**⏰ DEADLINES & TERMINE:**\n- Datum: Aufgabe\n- Datum: Termin\n\n**💡 WICHTIGE ERKENNTNISSE:**\n- Erkenntnis 1\n- Erkenntnis 2\n- Erkenntnis 3\n\n**🔥 TOP 3 PRIORITÄTEN:**\n1. Priorität 1\n2. Priorität 2\n3. Priorität 3\n\n**📊 KATEGORIEN-VERTEILUNG:**\n- Arbeit: X Einträge\n- Privat: Y Einträge\n- [weitere Kategorien]\n\n---\n\n## ZU ANALYSIERENDE EINTRÄGE:\n{{ $json.weeklyText }}"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "m7EOz07pBI5LxjWf",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "ai-email-summary-node",
"name": "KI-E-Mail-Zusammenfassung",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
960,
-144
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "CHATGPT-4O-LATEST"
},
"options": {},
"messages": {
"values": [
{
"content": "=Erstelle eine professionelle, aber persönliche E-Mail Zusammenfassung für Julian Reich basierend auf seinen Notizen der letzten Woche. Formatiere in HTML. Gib nur die E-Mail aus, ohne Kommentar wie \"Naturülich, hier die E-Mail in HTML\"\n\n## E-MAIL STRUKTUR:\n\n**Betreff:** 📊 Wöchentliche Zusammenfassung KW {{ $('Weekly Filter').first().json.weekNumber }}\n\n**Body:**\nLieber Julian,\n\nhier ist deine automatische Wochenzusammenfassung vom {{ new Date().toLocaleDateString('de-CH') }}:\n\n**📈 WOCHE IM ÜBERBLICK**\n[2-3 Sätze Zusammenfassung der Hauptthemen]\n\n**✅ POSITIVE ENTWICKLUNGEN**\n- Was gut gelaufen ist\n- Erfolge und Fortschritte\n\n**🎯 ACTIONABLES FÜR NÄCHSTE WOCHE**\n[Konkrete nächste Schritte basierend auf den extrahierten Tasks]\n\n**📊 WOCHENSTATISTIK**\n- {{ $('Weekly Filter').first().json.entryCount }} Notizen aufgezeichnet\n- Zeitraum: {{ $('Weekly Filter').first().json.dateRange.from }} - {{ $('Weekly Filter').first().json.dateRange.to }}\n- Hauptkategorien: [aus der Analyse]\n\n**💡 ERKENNTNISSE & MUSTER**\n[Wiederkehrende Themen, Verhaltensmuster, Empfehlungen]\n\n**🔗 ANHANG**\nDetaillierte Task-Liste wurde in dein Google Doc eingefügt.\n\nViele Grüsse,\nDein persönlicher AI Review Agent 🤖\n\n---\n\n## BASIS FÜR DIE E-MAIL:\n\n**EXTRAHIERTE TASKS & INSIGHTS:**\n{{ $('AI Task Extractor').first().json.message.content }}\n\n**WOCHENDATEN:**\n- {{ $('Weekly Filter').first().json.entryCount }} Einträge\n- KW {{ $('Weekly Filter').first().json.weekNumber }}\n- {{ $('Weekly Filter').first().json.dateRange.from }} bis {{ $('Weekly Filter').first().json.dateRange.to }} {{ $json.message.content }}"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "m7EOz07pBI5LxjWf",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "save-tasks-doc-node",
"name": "Aufgaben ins Doc speichern",
"type": "n8n-nodes-base.googleDocs",
"position": [
1312,
-144
],
"parameters": {
"actionsUi": {
"actionFields": [
{
"text": "={{ '\\n\\n' + '='.repeat(50) + '\\n📊 WÖCHENTLICHE ZUSAMMENFASSUNG - KW ' + $('Weekly Filter').first().json.weekNumber + ' (' + new Date().toLocaleDateString('de-CH') + ')\\n' + '='.repeat(50) + '\\n\\n' + $('AI Task Extractor').first().json.message.content }}",
"action": "insert"
}
]
},
"operation": "update",
"documentURL": "https://docs.google.com/document/d/1XYhGMHOPCMdZJgOyhIa77_LpUmVceyp-HjpyEj6fv48/edit?tab=t.0"
},
"credentials": {
"googleDocsOAuth2Api": {
"id": "uXZO5vC2yqTXbjnQ",
"name": "Google Docs account"
}
},
"typeVersion": 2
},
{
"id": "telegram-notification-node",
"name": "Telegram Benachrichtigung",
"type": "n8n-nodes-base.telegram",
"position": [
1536,
-144
],
"webhookId": "664a5459-6ab0-4776-a498-6b6479e6b983",
"parameters": {
"text": "=🤖 **Weekly Review abgeschlossen!**\\n\\n📊 KW {{ $('Weekly Filter').first().json.weekNumber }}: **{{ $('Weekly Filter').first().json.entryCount }} Einträge** analysiert\\n\\n🎯 **\\n✅ Siehe E-Mail für Details\\n\\n📧 **Detaillierte E-Mail** ist unterwegs!",
"chatId": "8265657125",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "WYfCmRaDNXKfdL0W",
"name": "Telegram account"
}
},
"typeVersion": 1.2
},
{
"id": "802a1f2f-2d90-4836-beff-50b4ae729be7",
"name": "Nachricht senden",
"type": "n8n-nodes-base.gmail",
"position": [
1760,
-144
],
"webhookId": "e7208c52-7bb3-4049-8fef-1a1bf5b6de2a",
"parameters": {
"sendTo": "julian.reich@somedia.ch",
"message": "={{ $('AI E-Mail Summary').item.json.message.content }}",
"options": {},
"subject": "=Weekly review KW {{ $('Weekly Filter').item.json.weekNumber }}"
},
"credentials": {
"gmailOAuth2": {
"id": "ap74IGvt7xofQoDx",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "414a9ba8-e97c-4f3d-8ec9-04de39886d95",
"name": "Fehler-Trigger",
"type": "n8n-nodes-base.errorTrigger",
"position": [
656,
64
],
"parameters": {},
"typeVersion": 1
},
{
"id": "b6f758b2-7efa-4561-97cf-68ca08f98a0a",
"name": "Textnachricht senden",
"type": "n8n-nodes-base.telegram",
"position": [
864,
64
],
"webhookId": "d4d1f6f0-df9e-4694-84b7-5b35b68728cd",
"parameters": {
"text": "Weekly review hat nicht funktioniert",
"chatId": "8265657125",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "WYfCmRaDNXKfdL0W",
"name": "Telegram account"
}
},
"typeVersion": 1.2
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "f4fba99e-4cea-448d-a6ea-493fd8962eda",
"connections": {
"414a9ba8-e97c-4f3d-8ec9-04de39886d95": {
"main": [
[
{
"node": "b6f758b2-7efa-4561-97cf-68ca08f98a0a",
"type": "main",
"index": 0
}
]
]
},
"weekly-filter-node": {
"main": [
[
{
"node": "ai-task-extractor-node",
"type": "main",
"index": 0
}
]
]
},
"ad5e95ce-64d0-405d-bfff-fa17cc61ca7c": {
"main": [
[
{
"node": "weekly-filter-node",
"type": "main",
"index": 0
}
]
]
},
"9a585642-aab8-4da7-bdce-60af6ce468cb": {
"main": [
[
{
"node": "ad5e95ce-64d0-405d-bfff-fa17cc61ca7c",
"type": "main",
"index": 0
}
]
]
},
"ai-email-summary-node": {
"main": [
[
{
"node": "save-tasks-doc-node",
"type": "main",
"index": 0
}
]
]
},
"ai-task-extractor-node": {
"main": [
[
{
"node": "ai-email-summary-node",
"type": "main",
"index": 0
}
]
]
},
"telegram-notification-node": {
"main": [
[
{
"node": "802a1f2f-2d90-4836-beff-50b4ae729be7",
"type": "main",
"index": 0
}
]
]
},
"save-tasks-doc-node": {
"main": [
[
{
"node": "telegram-notification-node",
"type": "main",
"index": 0
}
]
]
}
}
}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?
Fortgeschritten - KI-Zusammenfassung, Multimodales KI
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.
Verwandte Workflows
Julian Reich
@julianreichDiesen Workflow teilen