Envío automatizado de resumen de correos electrónicos diarios con Gmail y GPT

Intermedio

Este es unPersonal Productivity, AI Summarizationflujo de automatización del dominio deautomatización que contiene 6 nodos.Utiliza principalmente nodos como Cron, Gmail, OpenAi, Function. Envío automático de resumen diario de correos por la tarde con Gmail y GPT

Requisitos previos
  • Cuenta de Google y credenciales de API de Gmail
  • Clave de API de OpenAI

Nodos utilizados (6)

Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "nodes": [
    {
      "name": "Activador de la Tarde (4 PM)",
      "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": "Activador-de-la-Tarde-4-PM--0"
    },
    {
      "name": "Calcular Fechas de Hoy",
      "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": "Calcular-Fechas-de-Hoy-1"
    },
    {
      "name": "Obtener Correos de Hoy (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": "Obtener-Correos-de-Hoy-Gmail--2"
    },
    {
      "name": "Combinar Contenido de Correos",
      "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": "Combinar-Contenido-de-Correos-3"
    },
    {
      "name": "IA: Resumir Correos",
      "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": "IA-Resumir-Correos-4"
    },
    {
      "name": "Enviar Correo de Resumen",
      "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": "Enviar-Correo-de-Resumen-5"
    }
  ],
  "pinData": {},
  "version": 1,
  "connections": {
    "IA-Resumir-Correos-4": {
      "main": [
        [
          {
            "node": "Enviar-Correo-de-Resumen-5",
            "type": "main"
          }
        ]
      ]
    },
    "Combinar-Contenido-de-Correos-3": {
      "main": [
        [
          {
            "node": "IA-Resumir-Correos-4",
            "type": "main"
          }
        ]
      ]
    },
    "Calcular-Fechas-de-Hoy-1": {
      "main": [
        [
          {
            "node": "Obtener-Correos-de-Hoy-Gmail--2",
            "type": "main"
          }
        ]
      ]
    },
    "Activador-de-la-Tarde-4-PM--0": {
      "main": [
        [
          {
            "node": "Calcular-Fechas-de-Hoy-1",
            "type": "main"
          }
        ]
      ]
    },
    "Obtener-Correos-de-Hoy-Gmail--2": {
      "main": [
        [
          {
            "node": "Combinar-Contenido-de-Correos-3",
            "type": "main"
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Intermedio - Productividad personal, Resumen de IA

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos6
Categoría2
Tipos de nodos4
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

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.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34