Automatisation des comptes-rendus de réunions (Google Sheets + Gmail)

Intermédiaire

Ceci est unPersonal Productivity, Multimodal AIworkflow d'automatisation du domainecontenant 7 nœuds.Utilise principalement des nœuds comme Code, Gmail, GoogleSheets, ManualTrigger. Utiliser Google Sheets et Gmail pour automatiser la distribution des comptes rendus de réunion

Prérequis
  • Compte Google et informations d'identification Gmail API
  • Informations d'identification Google Sheets API
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
{
  "id": "wrf8Kd0XRbKFEHwR",
  "meta": {
    "instanceId": "0430772da25f7bca29bf5ef2b251086a85fb4096503a6f781526d32befd038d6"
  },
  "name": "Meeting Minutes Automation (Google Sheets + Gmail)",
  "tags": [
    {
      "id": "3T7uxjPBNibzqJlE",
      "name": "Google",
      "createdAt": "2025-08-18T07:15:32.460Z",
      "updatedAt": "2025-08-18T07:15:32.460Z"
    },
    {
      "id": "7zEwLFClveXBEcdb",
      "name": "google sheet",
      "createdAt": "2025-08-18T07:16:22.756Z",
      "updatedAt": "2025-08-18T07:16:22.756Z"
    },
    {
      "id": "E9IjhPyJvr7DXQgz",
      "name": "meeting minutes",
      "createdAt": "2025-08-18T07:17:07.060Z",
      "updatedAt": "2025-08-18T07:17:07.060Z"
    },
    {
      "id": "WsGNTPBsmCdx55kq",
      "name": "email",
      "createdAt": "2025-08-18T07:16:22.745Z",
      "updatedAt": "2025-08-18T07:16:22.745Z"
    },
    {
      "id": "bg5CwpF83fBHrGAh",
      "name": "Productivity",
      "createdAt": "2025-08-18T07:15:32.499Z",
      "updatedAt": "2025-08-18T07:15:32.499Z"
    },
    {
      "id": "eAzNESqLUWwWMrE9",
      "name": "gmail",
      "createdAt": "2025-08-18T07:16:22.709Z",
      "updatedAt": "2025-08-18T07:16:22.709Z"
    }
  ],
  "nodes": [
    {
      "id": "aecc3b32-343b-421b-b758-e642f5e7c750",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "color": 3,
        "height": 176,
        "content": "## Required\n\n\n- Google account Gmail\n- Google Sheet"
      },
      "typeVersion": 1
    },
    {
      "id": "ba8eb175-dfc8-4b58-b7ce-31d5ebed6fd0",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        272,
        -352
      ],
      "parameters": {
        "color": 2,
        "width": 416,
        "height": 848,
        "content": "## 1.Workflow trigger et data gathering\n\nTrigger: Manual Trigger : run the workflow after you finish writing the meeting minutes and you’re ready to send them.\n\nNodes involved:\n\n- Manual Trigger → starts the workflow\n\n- Google Sheets (Read) → pulls the minutes from your sheet\n\nGoogle Sheet requirements:\n\n- Required columns: Topic, Status, Owner, Next Step\n\nSetup:\n\n- Select the Spreadsheet and Tab (e.g., Meeting Minutes).\n\n- Enable Use first row as header.\n\n- Ensure column names match exactly (spelling/case).\n\nTip:\n- If you later want automation, replace Manual Trigger with a Schedule (daily/weekly).\n"
      },
      "typeVersion": 1
    },
    {
      "id": "67394444-d561-468f-bc5d-14e7d73e6c48",
      "name": "Note adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        704,
        -352
      ],
      "parameters": {
        "color": 4,
        "width": 560,
        "height": 848,
        "content": "## 2. Send the email\n\nPurpose: Build the meeting-minutes message from your sheet data and send it to the right recipients.\n\nNodes involved:\n\n- Code (Function) → formats content (HTML) and subject line\n\n- Gmail → sends the email\n\nSetup (Code node)\n- Use this snippet to generate a subject, HTML body, and recipients from your sheet rows/columns:\n\n- Setup (Gmail node)\n\n- Credentials: select your Gmail OAuth credential\n\n\nValidation\n- Send a test email to yourself first\n- Check that all required columns (Topic, Status, Owner, Next Step) appear and render correctly\n\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "7722b28d-8289-4b46-838d-6ef72865abed",
      "name": "Déclencheur",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        304,
        336
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "9a808aca-5b56-4d5d-9f60-861e17dd85b8",
      "name": "E-mail avec le procès-verbal",
      "type": "n8n-nodes-base.gmail",
      "position": [
        928,
        336
      ],
      "webhookId": "9411bee4-d354-40dd-84a2-559bb6beb7bb",
      "parameters": {
        "sendTo": "email",
        "message": "={{$json.html}}",
        "options": {},
        "subject": "Meeting notes today's meeting"
      },
      "typeVersion": 2.1
    },
    {
      "id": "cd26d1d7-ba33-4983-acd4-f2d65f88c413",
      "name": "Générer l'e-mail",
      "type": "n8n-nodes-base.code",
      "position": [
        720,
        336
      ],
      "parameters": {
        "jsCode": "const allItems = $input.all();\n\n\nconsole.log(\"Données reçues:\", JSON.stringify(allItems, null, 2));\n\n// build the table\nlet tableRows = '';\nallItems.forEach(item => {\n  tableRows += `\n  <tr>\n    <td>${item.json.Topic || ''}</td>\n    <td>${item.json.Status || ''}</td>\n    <td>${item.json.Owner || ''}</td>\n    <td>${item.json[\"Next Step\"] || ''}</td>\n  </tr>`;\n});\n\n// generate  HTML\nconst html = `\n<!DOCTYPE html>\n<html>\n<head>\n  <style>\n    table {\n      border-collapse: collapse;\n      width: 100%;\n      margin: 20px 0;\n      font-family: Arial, sans-serif;\n    }\n    th, td {\n      border: 1px solid #dddddd;\n      text-align: left;\n      padding: 8px;\n    }\n    th {\n      background-color: #f2f2f2;\n      font-weight: bold;\n    }\n  </style>\n</head>\n<body>\n  <p>Hello,</p>\n  <p>Here are the elements of the meeting:</p>\n  \n  <table>\n    <thead>\n      <tr>\n        <th>Topic</th>\n        <th>Status</th>\n        <th>Owner</th>\n        <th>Next Step</th>\n      </tr>\n    </thead>\n    <tbody>\n      ${tableRows}\n    </tbody>\n  </table>\n  \n  <p>Have a good day.<br/>PM Team</p>\n</body>\n</html>`;\n\nreturn [{ json: { html } }];"
      },
      "typeVersion": 2
    },
    {
      "id": "3f6ccf89-ad6f-4981-b089-03305093a3ff",
      "name": "Obtenir les données",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        512,
        336
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "id"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "url"
        }
      },
      "typeVersion": 4.6
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "ee35c6b7-b5c5-4b38-b126-fa4a6df47265",
  "connections": {
    "7722b28d-8289-4b46-838d-6ef72865abed": {
      "main": [
        [
          {
            "node": "3f6ccf89-ad6f-4981-b089-03305093a3ff",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3f6ccf89-ad6f-4981-b089-03305093a3ff": {
      "main": [
        [
          {
            "node": "cd26d1d7-ba33-4983-acd4-f2d65f88c413",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cd26d1d7-ba33-4983-acd4-f2d65f88c413": {
      "main": [
        [
          {
            "node": "9a808aca-5b56-4d5d-9f60-861e17dd85b8",
            "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 - Productivité personnelle, IA Multimodale

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œuds7
Catégorie2
Types de nœuds5
Description de la difficulté

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

Auteur
Yassin Zehar

Yassin Zehar

@yassinzehar

Digital & IT Project Manager | Data-oriented | Agile certified (PSM I, PSPO I) | Paris

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34