주간 회고
중급
이것은AI Summarization, Multimodal AI분야의자동화 워크플로우로, 10개의 노드를 포함합니다.주로 Gmail, Function, Telegram, GoogleDocs, ErrorTrigger 등의 노드를 사용하며. GPT-4를 사용하여 주간 노트 분석 및 실행 가능한 작업과 요약 생성
사전 요구사항
- •Google 계정 및 Gmail API 인증 정보
- •Telegram Bot Token
- •OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "xExUyHjRkpcuKuOY",
"meta": {
"instanceId": "cb56cb3bab7bf366e48fdb39bc0ee15c984e2e754ddee75e0cfbe82dc0be35ed",
"templateCredsSetupCompleted": true
},
"name": "Weekly review",
"tags": [],
"nodes": [
{
"id": "9a585642-aab8-4da7-bdce-60af6ce468cb",
"name": "Schedule 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": "문서 가져오기",
"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": "주간 필터",
"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": "AI 작업 추출기",
"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": "AI 이메일 요약",
"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": "Tasks 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 알림",
"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": "메시지 보내기",
"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": "오류 트리거",
"type": "n8n-nodes-base.errorTrigger",
"position": [
656,
64
],
"parameters": {},
"typeVersion": 1
},
{
"id": "b6f758b2-7efa-4561-97cf-68ca08f98a0a",
"name": "문자 메시지 보내기",
"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
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - AI 요약, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
오디오 메모를 Google 문서로 변환합니다.
Whisper와 GPT-4o 태그를 사용하여 Telegram 음성 메시지를 Google 문서로 변환합니다.
If
Set
Function
+
If
Set
Function
9 노드Julian Reich
AI 요약
Gmail, GPT 및 스프레드시트를 사용한 자동화된 이메일 분류 및 응답 시스템
Gmail, GPT 및 Sheets를 사용한 자동화된 이메일 분류 및 응답 시스템
Set
Gmail
Error Trigger
+
Set
Gmail
Error Trigger
35 노드Sergio Afonso
AI 요약
Telegram에서 자동으로 회의록을 Airtable, Slack, Gmail로 전송
GPT-4.1을 통해 Telegram 메시지에서 회의록 생성 및 Airtable, Slack, Gmail로 전송
If
Code
Wait
+
If
Code
Wait
29 노드Baptiste Fort
AI 요약
매일 비즈니스 뉴스
OpenAI와 Gmail을 사용하여 여러 RSS 소스에서 일일 비즈니스 뉴스 요약 생성
If
Code
Gmail
+
If
Code
Gmail
15 노드Calistus Christian
시장 조사
뉴스 요약
OpenAI와 Perplexity AI를 사용하여 매일 뉴스 요약, Zalo와 Telegram으로 전송
Zalo User
N8n Trigger
Set
+
Zalo User
N8n Trigger
Set
21 노드DuyTran
AI 요약
📈 매일 Nifty 밴드 트레이딩 신호 로봇
GPT-4, Yahoo Finance, Google Sheets, Telegram을 사용하여 매일 밴드 트레이딩 조언 생성
Code
Telegram
Http Request
+
Code
Telegram
Http Request
11 노드Nishant
AI 요약