Automatisierung der Konferenzprotokolle (Google Sheets + Gmail)
Dies ist ein Personal Productivity, Multimodal AI-Bereich Automatisierungsworkflow mit 7 Nodes. Hauptsächlich werden Code, Gmail, GoogleSheets, ManualTrigger und andere Nodes verwendet. Automatisierte Verteilung von Protokollen mit Google Sheets und Gmail
- •Google-Konto + Gmail API-Anmeldedaten
- •Google Sheets API-Anmeldedaten
Verwendete Nodes (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": "Haftnotiz1",
"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": "Haftnotiz",
"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": "Haftnotiz3",
"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": "Trigger",
"type": "n8n-nodes-base.manualTrigger",
"position": [
304,
336
],
"parameters": {},
"typeVersion": 1
},
{
"id": "9a808aca-5b56-4d5d-9f60-861e17dd85b8",
"name": "E-Mail mit Besprechungsprotokoll",
"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": "E-Mail generieren",
"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": "Daten abrufen",
"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
}
]
]
}
}
}Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Fortgeschritten - Persönliche Produktivität, Multimodales KI
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Yassin Zehar
@yassinzeharDigital & IT Project Manager | Data-oriented | Agile certified (PSM I, PSPO I) | Paris
Diesen Workflow teilen