Générateur automatique de résumés de réunions, intégrant Google Drive, OpenAI Whisper et GPT-4 pour le tableau

Intermédiaire

Ceci est unAI, IT Opsworkflow d'automatisation du domainecontenant 12 nœuds.Utilise principalement des nœuds comme DateTime, GoogleDrive, GoogleSheets, OpenAi, GoogleDriveTrigger, combinant la technologie d'intelligence artificielle pour une automatisation intelligente. Générateur automatique de résumés de réunions, intégrant Google Drive, OpenAI Whisper et GPT-4 vers Google Sheets

Prérequis
  • Informations d'identification Google Drive API
  • Informations d'identification Google Sheets API
  • Clé API OpenAI
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "meta": {
    "instanceId": "5aaf4236c70e34e423fbdb2c7b754d19253a933bb1476d548f75848a01e473cf"
  },
  "nodes": [
    {
      "id": "ab3309d9-cb3e-4b13-bb43-a214722c50b4",
      "name": "Recherche de fichier à téléverser",
      "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": "Télécharger le fichier",
      "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": "Transcrire le fichier",
      "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": "Créer le résumé",
      "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": "Obtenir la date",
      "type": "n8n-nodes-base.dateTime",
      "position": [
        2760,
        120
      ],
      "parameters": {
        "options": {},
        "outputFieldName": "Date"
      },
      "typeVersion": 2
    },
    {
      "id": "b51f7dc9-2973-4f03-b160-90dc3ac0c0d2",
      "name": "Formater la 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": "Enregistrer le résumé",
      "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": "Note adhésive",
      "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": "Note adhésive 1",
      "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": "Note adhésive 2",
      "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": "Note adhésive 9",
      "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": "Note adhésive 3",
      "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
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Intermédiaire - Intelligence Artificielle, Opérations IT

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds12
Catégorie2
Types de nœuds6
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Auteur
Yaron Been

Yaron Been

@yaron-nofluff

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

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34