Generador automático de resúmenes de reuniones, integrando Google Drive, OpenAI Whisper y GPT-4 en una hoja de cálculo

Intermedio

Este es unAI, IT Opsflujo de automatización del dominio deautomatización que contiene 12 nodos.Utiliza principalmente nodos como DateTime, GoogleDrive, GoogleSheets, OpenAi, GoogleDriveTrigger, combinando tecnología de inteligencia artificial para lograr automatización inteligente. Generador automático de resúmenes de reuniones, integrando Google Drive, OpenAI Whisper y GPT-4 a una hoja de cálculo

Requisitos previos
  • Credenciales de API de Google Drive
  • Credenciales de API de Google Sheets
  • Clave de API de OpenAI
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
{
  "meta": {
    "instanceId": "5aaf4236c70e34e423fbdb2c7b754d19253a933bb1476d548f75848a01e473cf"
  },
  "nodes": [
    {
      "id": "ab3309d9-cb3e-4b13-bb43-a214722c50b4",
      "name": "Buscando archivo para cargar",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        1620,
        120
      ],
      "parameters": {
        "event": "fileCreated",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerOn": "specificFolder",
        "folderToWatch": {
          "__rl": true,
          "mode": "list",
          "value": "1Wjd0_fptBBBtLZySHt0qYPpZA_dBjyYi",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1Wjd0_fptBBBtLZySHt0qYPpZA_dBjyYi",
          "cachedResultName": "meeting audio"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6c7bed41-fcb2-46de-b764-f0df6bf15d72",
      "name": "Descargar archivo",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1920,
        120
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "typeVersion": 3
    },
    {
      "id": "e44378ed-d689-4692-abe0-e9abc251dd40",
      "name": "Transcribir el archivo",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        2160,
        120
      ],
      "parameters": {
        "options": {},
        "resource": "audio",
        "operation": "transcribe"
      },
      "typeVersion": 1.8
    },
    {
      "id": "b5cfacc7-59c6-47ad-8d4b-ce56f6c8b339",
      "name": "Crear resumen",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        2380,
        120
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "GPT-4.1"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "🧠 System Prompt: Meeting Summarizer & Action Item Extractor\n\nYou are an intelligent meeting assistant. Your job is to carefully listen to or read through the meeting transcript and:\n\nSummarize Key Discussion Points – Highlight the main topics discussed, decisions made, issues raised, and relevant insights. Keep it concise and organized.\n\nExtract Action Items – Identify specific tasks or follow-ups. For each action item, include:\n\nTask Description\n\nAssigned Person (if mentioned)\n\nDeadline (if mentioned)\n\nPriority (if indicated or can be inferred)\n\nUse clear formatting, such as bullet points and headings, to make the output easy to scan.\n\nTone: Professional, clear, and neutral.\nAvoid: Irrelevant chatter, filler content, or personal commentary.\nFocus on: Clarity, accuracy, and actionable information."
            },
            {
              "content": "={{ $json.text }}"
            }
          ]
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "da7cec5f-301d-456b-8ca6-f6b676579e2d",
      "name": "Obtener fecha",
      "type": "n8n-nodes-base.dateTime",
      "position": [
        2760,
        120
      ],
      "parameters": {
        "options": {},
        "outputFieldName": "Date"
      },
      "typeVersion": 2
    },
    {
      "id": "b51f7dc9-2973-4f03-b160-90dc3ac0c0d2",
      "name": "Formatear fecha",
      "type": "n8n-nodes-base.dateTime",
      "position": [
        3060,
        120
      ],
      "parameters": {
        "date": "={{ $json.Date }}",
        "options": {},
        "operation": "formatDate"
      },
      "typeVersion": 2
    },
    {
      "id": "dc26f36b-7781-472f-86f4-6bd83270c95f",
      "name": "Guardar el resumen",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3320,
        120
      ],
      "parameters": {
        "columns": {
          "value": {
            "Date": "={{ $json.formattedDate }}",
            "Meeting Summary": "={{ $('Create summary').item.json.message.content }}"
          },
          "schema": [
            {
              "id": "Date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Meeting Summary",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Meeting Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Date"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JZnhAhr8x2UzzTQbT5l9PXguKkSM1NlznM8LX66-2Nc/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1JZnhAhr8x2UzzTQbT5l9PXguKkSM1NlznM8LX66-2Nc",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JZnhAhr8x2UzzTQbT5l9PXguKkSM1NlznM8LX66-2Nc/edit?usp=drivesdk",
          "cachedResultName": "meeting"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "cf384106-5413-4a92-9bdb-cce26b2452d4",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1560,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 500,
        "height": 300,
        "content": "## Download the file \nThese two nodes are responsible for looking and downloading the uploaded file"
      },
      "typeVersion": 1
    },
    {
      "id": "a060bdea-3526-41c7-b16e-7a98bb843c98",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2120,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 560,
        "height": 300,
        "content": "## Generate Summary \nThese two nodes are responsible for looking and downloading the uploaded file"
      },
      "typeVersion": 1
    },
    {
      "id": "f65f26e5-03f5-4c49-bb41-69c3dd4ac6a8",
      "name": "Nota adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2740,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 480,
        "height": 300,
        "content": "## Get date\nThese two nodes are responsible for getting and formatting date"
      },
      "typeVersion": 1
    },
    {
      "id": "71991313-d9c3-406f-a4d8-177a5d853dd8",
      "name": "Nota adhesiva9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "color": 4,
        "width": 1300,
        "height": 320,
        "content": "=======================================\n            WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n    Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n   - YouTube: https://www.youtube.com/@YaronBeen/videos\n   - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
      },
      "typeVersion": 1
    },
    {
      "id": "54716f9a-097b-4e6e-82a0-5fcf9ff8e27b",
      "name": "Nota adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        340
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 2098,
        "content": "### 🎤 Meeting Audio to Summary in Google Sheets\n\nAutomatically transcribe a meeting audio file, generate a concise summary using AI, and log it in Google Sheets. Perfect for:\n✅ Team syncs — stay aligned without rewatching recordings\n✅ Client calls — quick insight into discussions\n✅ Knowledge management — searchable summaries\n\n---\n\n### ⚙️ What's Used\n\n**n8n Nodes:**\nDrive Upload → Download File → Transcribe Recording → Create Summary → Get Date → Format Date → Append to Google Sheets\n\n**External Tools:**\n\n* **Google Drive** – Upload and host meeting recordings\n* **OpenAI / Whisper** – Audio transcription\n* **ChatGPT** – Summary generation\n* **Google Sheets** – Final summary storage\n\n---\n\n### 🔑 Setup – Credentials Needed\n\n* **Google Drive OAuth2** → To access and download files\n* **OpenAI API Key** → For transcription & summary\n* **Google Sheets OAuth2** → To append rows to the sheet\n\n---\n\n### 📝 Upload Flow\n\n**Trigger:** Upload audio file to a designated Google Drive folder\n\n**Input Format:**\n\n* **Audio Type:** MP3 / WAV / M4A\n* **File Size:** Recommended < 100MB\n* **Language:** English (default; can customize for others)\n\n---\n\n### 🚀 Workflow Steps\n\n1. **Detect File Upload:**\n   Monitor a specific Google Drive folder for new audio files\n2. **Download File:**\n   Fetch the uploaded audio file\n3. **Transcribe Audio:**\n   Use Whisper (OpenAI) to convert speech to text\n4. **Generate Summary:**\n   Pass transcript to GPT to summarize key points\n5. **Get & Format Date:**\n   Add timestamp to summary\n6. **Save Summary:**\n   Append date + summary into a Google Sheet\n\n**Sheet Example Columns:**\n`Date`, `Meeting Summary`\n\n---\n\n### 🧠 Use Cases\n\n* **Project Managers** → Share concise updates with stakeholders\n* **Sales Teams** → Summarize discovery or demo calls\n* **Consultants** → Keep track of discussions for reporting\n\n---\n\n### 💡 Pro Tips\n\n* Add speaker labels to transcript if using enhanced audio models\n* Customize the prompt to tailor summaries for specific departments (e.g., sales, product)\n* Schedule the workflow to run daily/weekly with new uploads\n\n---\n\n### 🛠️ Customize It\n\n* Use a form trigger if you want users to submit metadata with uploads\n* Add Slack integration to share summaries with the team\n* Store full transcripts alongside summaries for deeper context\n\n---\n\nThis setup gives your team an always-on assistant for meetings — listen once, never retype. Upload audio, get insight, move forward.\n"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "da7cec5f-301d-456b-8ca6-f6b676579e2d": {
      "main": [
        [
          {
            "node": "b51f7dc9-2973-4f03-b160-90dc3ac0c0d2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b51f7dc9-2973-4f03-b160-90dc3ac0c0d2": {
      "main": [
        [
          {
            "node": "dc26f36b-7781-472f-86f4-6bd83270c95f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6c7bed41-fcb2-46de-b764-f0df6bf15d72": {
      "main": [
        [
          {
            "node": "e44378ed-d689-4692-abe0-e9abc251dd40",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b5cfacc7-59c6-47ad-8d4b-ce56f6c8b339": {
      "main": [
        [
          {
            "node": "da7cec5f-301d-456b-8ca6-f6b676579e2d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e44378ed-d689-4692-abe0-e9abc251dd40": {
      "main": [
        [
          {
            "node": "b5cfacc7-59c6-47ad-8d4b-ce56f6c8b339",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ab3309d9-cb3e-4b13-bb43-a214722c50b4": {
      "main": [
        [
          {
            "node": "6c7bed41-fcb2-46de-b764-f0df6bf15d72",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
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 - Inteligencia Artificial, Operaciones de TI

¿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 nodos12
Categoría2
Tipos de nodos6
Descripción de la dificultad

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

Autor
Yaron Been

Yaron Been

@yaron-nofluff

Building AI Agents and Automations | Growth Marketer | Entrepreneur | Book Author & Podcast Host

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34