AutomationFlowsAI & RAG › Auto Meeting Summarizer with Google Drive, Openai Whisper & Gpt-4 to Sheets

Auto Meeting Summarizer with Google Drive, Openai Whisper & Gpt-4 to Sheets

ByYaron Been @yaron-nofluff on n8n.io

Transform your meeting recordings into actionable insights automatically. This powerful n8n workflow monitors your Google Drive for new audio files, transcribes them using OpenAI's Whisper, generates intelligent summaries with ChatGPT, and logs everything in Google Sheets - all…

Event trigger★★★★☆ complexityAI-powered12 nodesGoogle Drive TriggerGoogle DriveOpenAIGoogle Sheets
AI & RAG Trigger: Event Nodes: 12 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #4370 — we link there as the canonical source.

This workflow follows the Google Drive → Google Drive Trigger recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "nodes": [
    {
      "id": "ab3309d9-cb3e-4b13-bb43-a214722c50b4",
      "name": "Looking for uploading file",
      "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": "Download file",
      "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": "Transcribe the file",
      "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": "Create summary",
      "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": "\ud83e\udde0 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 \u2013 Highlight the main topics discussed, decisions made, issues raised, and relevant insights. Keep it concise and organized.\n\nExtract Action Items \u2013 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": "Get date",
      "type": "n8n-nodes-base.dateTime",
      "position": [
        2760,
        120
      ],
      "parameters": {
        "options": {},
        "outputFieldName": "Date"
      },
      "typeVersion": 2
    },
    {
      "id": "b51f7dc9-2973-4f03-b160-90dc3ac0c0d2",
      "name": "Format date",
      "type": "n8n-nodes-base.dateTime",
      "position": [
        3060,
        120
      ],
      "parameters": {
        "date": "={{ $json.Date }}",
        "options": {},
        "operation": "formatDate"
      },
      "typeVersion": 2
    },
    {
      "id": "dc26f36b-7781-472f-86f4-6bd83270c95f",
      "name": "Save the summary",
      "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/YOUR_AWS_SECRET_KEY_HERE-2Nc/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_AWS_SECRET_KEY_HERE-2Nc",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_AWS_SECRET_KEY_HERE-2Nc/edit?usp=drivesdk",
          "cachedResultName": "meeting"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "cf384106-5413-4a92-9bdb-cce26b2452d4",
      "name": "Sticky Note",
      "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": "Sticky Note1",
      "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": "Sticky Note2",
      "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": "Sticky Note9",
      "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": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        340
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 2098,
        "content": "### \ud83c\udfa4 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\u2705 Team syncs \u2014 stay aligned without rewatching recordings\n\u2705 Client calls \u2014 quick insight into discussions\n\u2705 Knowledge management \u2014 searchable summaries\n\n---\n\n### \u2699\ufe0f What's Used\n\n**n8n Nodes:**\nDrive Upload \u2192 Download File \u2192 Transcribe Recording \u2192 Create Summary \u2192 Get Date \u2192 Format Date \u2192 Append to Google Sheets\n\n**External Tools:**\n\n* **Google Drive** \u2013 Upload and host meeting recordings\n* **OpenAI / Whisper** \u2013 Audio transcription\n* **ChatGPT** \u2013 Summary generation\n* **Google Sheets** \u2013 Final summary storage\n\n---\n\n### \ud83d\udd11 Setup \u2013 Credentials Needed\n\n* **Google Drive OAuth2** \u2192 To access and download files\n* **OpenAI API Key** \u2192 For transcription & summary\n* **Google Sheets OAuth2** \u2192 To append rows to the sheet\n\n---\n\n### \ud83d\udcdd 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### \ud83d\ude80 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### \ud83e\udde0 Use Cases\n\n* **Project Managers** \u2192 Share concise updates with stakeholders\n* **Sales Teams** \u2192 Summarize discovery or demo calls\n* **Consultants** \u2192 Keep track of discussions for reporting\n\n---\n\n### \ud83d\udca1 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### \ud83d\udee0\ufe0f 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 \u2014 listen once, never retype. Upload audio, get insight, move forward.\n"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Get date": {
      "main": [
        [
          {
            "node": "Format date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format date": {
      "main": [
        [
          {
            "node": "Save the summary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download file": {
      "main": [
        [
          {
            "node": "Transcribe the file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create summary": {
      "main": [
        [
          {
            "node": "Get date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transcribe the file": {
      "main": [
        [
          {
            "node": "Create summary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Looking for uploading file": {
      "main": [
        [
          {
            "node": "Download file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Transform your meeting recordings into actionable insights automatically. This powerful n8n workflow monitors your Google Drive for new audio files, transcribes them using OpenAI's Whisper, generates intelligent summaries with ChatGPT, and logs everything in Google Sheets - all…

Source: https://n8n.io/workflows/4370/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This workflow automatically turns any uploaded video into structured blog research using AI tools. It transcribes the video, extracts keywords, runs research based on those keywords, and saves the fin

Google Drive Trigger, Google Drive, HTTP Request +2
AI & RAG

Content Teams, Researchers, and Administrators who need to automatically process voice memos, meeting recordings, or interview audio into structured, searchable documents.

Gmail, OpenAI, Google Drive +2
AI & RAG

This workflow template is perfect for content creators, researchers, students, or anyone who regularly works with audio files and needs to transcribe and summarize them for easy reference and organiza

Google Drive Trigger, Google Drive, Notion +1
AI & RAG

Research Grant Tracker. Uses googleDriveTrigger, googleDrive, n8n-nodes-pdfvector, googleSheets. Event-driven trigger; 10 nodes.

Google Drive Trigger, Google Drive, N8N Nodes Pdfvector +2
AI & RAG

E-book & Book Chapter Summarizer. Uses googleDriveTrigger, googleDrive, n8n-nodes-pdfvector, googleSheets. Event-driven trigger; 10 nodes.

Google Drive Trigger, Google Drive, N8N Nodes Pdfvector +2