Automatisation des comptes-rendus de réunions (Google Sheets + Gmail)
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
- •Compte Google et informations d'identification Gmail API
- •Informations d'identification Google Sheets API
Nœuds utilisés (7)
{
"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
}
]
]
}
}
}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.
Workflows recommandés
Yassin Zehar
@yassinzeharDigital & IT Project Manager | Data-oriented | Agile certified (PSM I, PSPO I) | Paris
Partager ce workflow