Revue hebdomadaire
Ceci est unAI Summarization, Multimodal AIworkflow d'automatisation du domainecontenant 10 nœuds.Utilise principalement des nœuds comme Gmail, Function, Telegram, GoogleDocs, ErrorTrigger. Utiliser GPT-4 pour analyser les notes hebdomadaires et générer des tâches et un résumé actionnable
- •Compte Google et informations d'identification Gmail API
- •Token Bot Telegram
- •Clé API OpenAI
Nœuds utilisés (10)
Catégorie
{
"id": "xExUyHjRkpcuKuOY",
"meta": {
"instanceId": "cb56cb3bab7bf366e48fdb39bc0ee15c984e2e754ddee75e0cfbe82dc0be35ed",
"templateCredsSetupCompleted": true
},
"name": "Weekly review",
"tags": [],
"nodes": [
{
"id": "9a585642-aab8-4da7-bdce-60af6ce468cb",
"name": "Déclencheur Planifié",
"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": "Obtenir un document",
"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": "Filtre Hebdomadaire",
"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": "Extracteur de Tâches IA",
"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": "Résumé E-Mail IA",
"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": "Enregistrer les Tâches dans le Doc",
"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 Notification",
"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": "Envoyer un message",
"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": "Déclencheur d'Erreur",
"type": "n8n-nodes-base.errorTrigger",
"position": [
656,
64
],
"parameters": {},
"typeVersion": 1
},
{
"id": "b6f758b2-7efa-4561-97cf-68ca08f98a0a",
"name": "Envoyer un SMS",
"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
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Intermédiaire - Résumé IA, IA Multimodale
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Julian Reich
@julianreichPartager ce workflow