Automatisches Senden von täglichen E-Mail-Zusammenfassungen mit Gmail und GPT-Zusammenfassung

Fortgeschritten

Dies ist ein Personal Productivity, AI Summarization-Bereich Automatisierungsworkflow mit 6 Nodes. Hauptsächlich werden Cron, Gmail, OpenAi, Function und andere Nodes verwendet. Automatisiertes Versenden von täglichen E-Mail-Zusammenfassungen mit Gmail und GPT-Zusammenfassung, täglich nachmittags

Voraussetzungen
  • Google-Konto + Gmail API-Anmeldedaten
  • OpenAI API Key

Verwendete Nodes (6)

Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "nodes": [
    {
      "name": "Nachmittags-Auslöser (16 Uhr)",
      "type": "n8n-nodes-base.cron",
      "notes": {
        "text": "### 1. Trigger in the Afternoon\n\nThis `Cron` node is configured to run automatically every **day at 4:00 PM (16:00)** based on your n8n server's local time zone.\n\n**To change the schedule:** Adjust the 'Hour' and 'Minute' fields to your preferred time.",
        "position": "right"
      },
      "position": [
        240,
        300
      ],
      "parameters": {
        "mode": "everyDay",
        "value": {
          "hour": [
            16
          ],
          "minute": [
            0
          ]
        },
        "options": {}
      },
      "typeVersion": 1,
      "id": "Nachmittags-Ausl-ser-16-Uhr--0"
    },
    {
      "name": "Heutige Daten berechnen",
      "type": "n8n-nodes-base.function",
      "notes": {
        "text": "### 2. Calculate Today's Dates\n\nThis `Function` node calculates the start of the current day (midnight) and the current time, which will be used to fetch emails received *today* up to the moment the workflow runs.\n\n**Output:** It generates two fields:\n* `minDate`: The ISO string for today's midnight (00:00:00).\n* `nowDate`: The ISO string for the current time (when the workflow runs).\n\n**No configuration needed here**; it automatically determines the dates.",
        "position": "right"
      },
      "position": [
        480,
        300
      ],
      "parameters": {
        "options": {},
        "function": "const DateTime = this.getNodeParameter('DateTime');\n\nconst now = DateTime.now();\n\n// Calculate the start of the current day (e.g., today at 00:00:00)\nconst startOfDay = now.startOf('day');\n\nreturn [{ json: { \n  minDate: startOfDay.toISO(),\n  nowDate: now.toISO()\n} }];"
      },
      "typeVersion": 1,
      "id": "Heutige-Daten-berechnen-1"
    },
    {
      "name": "Heutige E-Mails abrufen (Gmail)",
      "type": "n8n-nodes-base.gmail",
      "notes": {
        "text": "### 3. Get Today's Emails\n\nThis `Gmail` node fetches emails received in your inbox since the beginning of the current day until the workflow is triggered.\n\n**Setup:**\n1.  **Gmail Credential:** Click on 'Credentials' and select 'New Credential'. Choose 'Gmail API'. Follow the n8n instructions to connect your Gmail account.\n2.  **Query:** The 'Query' field uses Gmail's search operators (`after:` and `before:`) combined with the dates calculated in the previous node to ensure it only fetches today's emails.\n3.  **Max Results:** Adjust `Max Results` if you typically receive many more than 20 emails in a day that you'd want summarized. (Be mindful of AI token limits for very large inputs).\n\n**Important:** Ensure your Gmail API has the necessary read scope (`https://www.googleapis.com/auth/gmail.readonly` or full access).",
        "position": "right"
      },
      "position": [
        720,
        300
      ],
      "parameters": {
        "query": "after:{{ $json.minDate }} before:{{ $json.nowDate }}",
        "options": {
          "maxResults": 20
        },
        "emailType": "inbox",
        "operation": "getAll"
      },
      "credentials": {
        "gmailApi": {
          "id": "YOUR_GMAIL_CREDENTIAL_ID",
          "resolve": false
        }
      },
      "typeVersion": 2,
      "id": "Heutige-E-Mails-abrufen-Gmail--2"
    },
    {
      "name": "E-Mail-Inhalte kombinieren",
      "type": "n8n-nodes-base.function",
      "notes": {
        "text": "### 4. Combine Email Content\n\nThis `Function` node takes all the fetched emails and combines their sender, subject, and snippet (a short preview) into a single text string.\n\n**Purpose:** This consolidated text string will then be fed into the AI summarization node.\n\n**No configuration needed here**; it's pre-programmed to format your email data.",
        "position": "right"
      },
      "position": [
        960,
        300
      ],
      "parameters": {
        "options": {},
        "function": "let emailContent = \"\";\n\nif (items.length === 0) {\n  emailContent = \"No new emails received today.\";\n} else {\n  emailContent = \"Today's Emails Summary:\\n\\n\";\n  for (const item of items) {\n    const email = item.json;\n    const sender = email.payload.headers.find(h => h.name === 'From').value || 'Unknown Sender';\n    const subject = email.payload.headers.find(h => h.name === 'Subject').value || 'No Subject';\n    const snippet = email.snippet || 'No snippet available.';\n\n    emailContent += `From: ${sender}\\nSubject: ${subject}\\nSnippet: ${snippet}\\n---\\n`;\n  }\n}\n\nreturn [{ json: { combinedEmails: emailContent } }];"
      },
      "typeVersion": 1,
      "id": "E-Mail-Inhalte-kombinieren-3"
    },
    {
      "name": "KI: E-Mails zusammenfassen",
      "type": "n8n-nodes-base.openAi",
      "notes": {
        "text": "### 5. AI: Summarize Emails\n\nThis `OpenAI` node takes the combined email content and generates a high-level summary using artificial intelligence.\n\n**Setup:**\n1.  **OpenAI Credential:** Select your existing OpenAI API Key credential.\n2.  **Model:** You can choose `gpt-3.5-turbo` for cost-effectiveness or `gpt-4o` for potentially better and more nuanced summaries.\n3.  **Prompt:** The system prompt instructs the AI on how to summarize the emails, focusing on key topics and action items.\n\n**Output:** The AI-generated summary will be in `{{ $node[\"AI: Summarize Emails\"].json.choices[0].message.content }}`.",
        "position": "right"
      },
      "position": [
        1200,
        300
      ],
      "parameters": {
        "model": "gpt-3.5-turbo",
        "options": {},
        "messages": [
          {
            "role": "system",
            "content": "You are an AI assistant specialized in summarizing daily email communications. Your task is to read the provided email subjects and snippets, identify the most important topics and action items, and create a concise, readable summary. Group related emails if possible. If there are no emails, state that clearly."
          },
          {
            "role": "user",
            "content": "Summarize the following daily email content:\n\n{{ $json.combinedEmails }}"
          }
        ]
      },
      "credentials": {
        "openAiApi": {
          "id": "YOUR_OPENAI_CREDENTIAL_ID",
          "resolve": false
        }
      },
      "typeVersion": 1,
      "id": "KI-E-Mails-zusammenfassen-4"
    },
    {
      "name": "Zusammenfassungs-E-Mail senden",
      "type": "n8n-nodes-base.gmail",
      "notes": {
        "text": "### 6. Send Summary Email\n\nThis `Gmail` node sends the final AI-generated summary to your specified email address.\n\n**Setup:**\n1.  **Gmail Credential:** Select your existing Gmail API credential.\n2.  **From Email:** Enter your Gmail address (this must be the same account you authenticated).\n3.  **To Email:** **IMPORTANT: Change `YOUR_RECIPIENT_EMAIL@example.com` to your actual email address!**\n4.  **Subject:** Includes the current date for easy reference.\n5.  **Text:** The email body contains the summary generated by the AI.\n\nAfter setting up, you can test by clicking 'Execute Workflow' (from the 'Afternoon Trigger' node) to receive an immediate summary of today's emails.",
        "position": "right"
      },
      "position": [
        1440,
        300
      ],
      "parameters": {
        "text": "Hello!\n\nHere's your daily email summary from n8n for today:\n\n{{ $node[\"AI: Summarize Emails\"].json.choices[0].message.content }}\n\n---\n\n*This is an automated summary generated by n8n. Please log into your inbox for full details.*",
        "options": {},
        "subject": "Daily Email Summary: {{ DateTime.now().toFormat('cccc, LLLL dd, yyyy') }}",
        "toEmail": "YOUR_RECIPIENT_EMAIL@example.com",
        "fromEmail": "YOUR_GMAIL_EMAIL@gmail.com"
      },
      "credentials": {
        "gmailApi": {
          "id": "YOUR_GMAIL_CREDENTIAL_ID",
          "resolve": false
        }
      },
      "typeVersion": 2,
      "id": "Zusammenfassungs-E-Mail-senden-5"
    }
  ],
  "pinData": {},
  "version": 1,
  "connections": {
    "KI-E-Mails-zusammenfassen-4": {
      "main": [
        [
          {
            "node": "Zusammenfassungs-E-Mail-senden-5",
            "type": "main"
          }
        ]
      ]
    },
    "E-Mail-Inhalte-kombinieren-3": {
      "main": [
        [
          {
            "node": "KI-E-Mails-zusammenfassen-4",
            "type": "main"
          }
        ]
      ]
    },
    "Heutige-Daten-berechnen-1": {
      "main": [
        [
          {
            "node": "Heutige-E-Mails-abrufen-Gmail--2",
            "type": "main"
          }
        ]
      ]
    },
    "Nachmittags-Ausl-ser-16-Uhr--0": {
      "main": [
        [
          {
            "node": "Heutige-Daten-berechnen-1",
            "type": "main"
          }
        ]
      ]
    },
    "Heutige-E-Mails-abrufen-Gmail--2": {
      "main": [
        [
          {
            "node": "E-Mail-Inhalte-kombinieren-3",
            "type": "main"
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

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 - Persönliche Produktivität, KI-Zusammenfassung

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.

Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes6
Kategorie2
Node-Typen4
Schwierigkeitsbeschreibung

Für erfahrene Benutzer, mittelkomplexe Workflows mit 6-15 Nodes

Autor
Piotr Sobolewski

Piotr Sobolewski

@piotrsobolewski

AI PhD with 7 years experience as a game dev CEO, currently teaching, helping others and building something new.

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34