8
n8n 한국어amn8n.com

주간 회고

중급

이것은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)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
중급
노드 수10
카테고리2
노드 유형7
난이도 설명

일정 경험을 가진 사용자를 위한 6-15개 노드의 중간 복잡도 워크플로우

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34