Automatización de actas de reuniones (Google Sheets + Gmail)
Este es unPersonal Productivity, Multimodal AIflujo de automatización del dominio deautomatización que contiene 7 nodos.Utiliza principalmente nodos como Code, Gmail, GoogleSheets, ManualTrigger. Automatización de la distribución de actas de reuniones con Google Sheets y Gmail
- •Cuenta de Google y credenciales de API de Gmail
- •Credenciales de API de Google Sheets
Nodos utilizados (7)
Categoría
{
"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": "Nota adhesiva1",
"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": "Nota adhesiva",
"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": "Nota adhesiva3",
"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": "Activador",
"type": "n8n-nodes-base.manualTrigger",
"position": [
304,
336
],
"parameters": {},
"typeVersion": 1
},
{
"id": "9a808aca-5b56-4d5d-9f60-861e17dd85b8",
"name": "Correo con acta de reunión",
"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": "Generar el correo",
"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": "Obtener los datos",
"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
}
]
]
}
}
}¿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 - Productividad personal, IA Multimodal
¿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.
Flujos de trabajo relacionados recomendados
Yassin Zehar
@yassinzeharDigital & IT Project Manager | Data-oriented | Agile certified (PSM I, PSPO I) | Paris
Compartir este flujo de trabajo