Résumé quotidien des formulaires Google envoyé par e-mail
Ceci est unPersonal Productivity, Multimodal AIworkflow d'automatisation du domainecontenant 6 nœuds.Utilise principalement des nœuds comme Code, Gmail, GoogleSheetsTrigger. Intégrer les soumissions de formulaires Google quotidiens pour générer un résumé Gmail
- •Compte Google et informations d'identification Gmail API
- •Informations d'identification Google Sheets API
Nœuds utilisés (6)
{
"id": "4PkzGnVzhzmFcQas",
"meta": {
"instanceId": "b7b2db9d6a461f902b25d685e4550cab3c88fcbb3254a8654e06246b67e4ff5c",
"templateCredsSetupCompleted": true
},
"name": "Google Form Daily Recap to Email",
"tags": [
{
"id": "5iQR5Cw05Bzz7Aqt",
"name": "Google",
"createdAt": "2025-08-02T17:36:32.751Z",
"updatedAt": "2025-08-02T17:36:32.751Z"
},
{
"id": "PlBq4GrfRsEhR6mN",
"name": "google form",
"createdAt": "2025-08-14T09:57:38.641Z",
"updatedAt": "2025-08-14T09:57:38.641Z"
},
{
"id": "S94PaeZJiPKn5Ei9",
"name": "gmail",
"createdAt": "2025-08-14T09:57:18.678Z",
"updatedAt": "2025-08-14T09:57:18.678Z"
},
{
"id": "Unbn35P90TtJuAQC",
"name": "email",
"createdAt": "2025-08-14T09:57:13.394Z",
"updatedAt": "2025-08-14T09:57:13.394Z"
},
{
"id": "h2TBJOs7feXDIfbL",
"name": "google sheet",
"createdAt": "2025-08-14T09:57:22.041Z",
"updatedAt": "2025-08-14T09:57:22.041Z"
},
{
"id": "rYuINsb3Y1XjrgNv",
"name": "Productivity",
"createdAt": "2025-08-02T17:36:49.812Z",
"updatedAt": "2025-08-02T17:36:49.812Z"
}
],
"nodes": [
{
"id": "1c6d9187-1442-4098-a300-11b22e1183c2",
"name": "Résumer l'e-mail",
"type": "n8n-nodes-base.gmail",
"position": [
1040,
0
],
"webhookId": "d376e469-4595-4972-9d58-ef4bbb1e7982",
"parameters": {
"sendTo": "email",
"message": "={{$json.html}}",
"options": {},
"subject": "The requests you received today"
},
"credentials": {
"gmailOAuth2": {
"id": "88G2Fa5bxsnrjAYu",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "b619b991-d0cd-41be-84f8-3e2a0db82fea",
"name": "Déclencher les données pour une nouvelle ligne",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
416,
0
],
"parameters": {
"event": "rowAdded",
"options": {
"dataLocationOnSheet": {
"values": {
"range": "A1:Z1000",
"rangeDefinition": "specifyRangeA1"
}
}
},
"pollTimes": {
"item": [
{
"hour": 17
}
]
},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "id"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "url"
}
},
"credentials": {
"googleSheetsTriggerOAuth2Api": {
"id": "3Ibd0h6fDr3TCJ1v",
"name": "Google Sheets Trigger account"
}
},
"notesInFlow": false,
"typeVersion": 1
},
{
"id": "0ca891c0-477f-4f23-918e-73b016f2c3b7",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
-304
],
"parameters": {
"color": 3,
"content": "## Required\n\n\n- Google account\n- Google Form\n- Google Sheet linked to the form"
},
"typeVersion": 1
},
{
"id": "25843c2b-29e3-4bcd-8922-f25f8f903200",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
352,
-304
],
"parameters": {
"color": 2,
"width": 416,
"height": 848,
"content": "## 1.Workflow trigger et data gathering\n\nThe workflow is **triggered automatically** everyday at 5pm. \n\nHow to setup:\n- Set up your Google form and link it to a google sheet\n- link the google sheet to this workflow"
},
"typeVersion": 1
},
{
"id": "804f4951-61b5-4fa1-a959-66a92ce525b5",
"name": "Note adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
784,
-304
],
"parameters": {
"color": 4,
"width": 560,
"height": 848,
"content": "## 2. Send the email\n\nThe code node, will create the message and gather all the informations wanted about the row added during the day and will list them (row newly added). So a full sum um will be sent in one message only.\n\n\nHow to setup:\n- Connect with your Gmail account credentials."
},
"typeVersion": 1
},
{
"id": "d889b4e6-7b66-4272-92a1-406771c5803b",
"name": "Générer l'e-mail",
"type": "n8n-nodes-base.code",
"position": [
832,
0
],
"parameters": {
"jsCode": "const rows = $input.all().map(i => i.json);\n\n// helper: get eh first existing key\nconst pick = (obj, keys) => {\n for (const k of keys) if (k in obj && obj[k] != null && obj[k] !== '') return obj[k];\n return undefined;\n};\n\nconst categories = {};\nfor (const row of rows) {\n const category = pick(row, ['Catégorie', 'Category']) || 'Non classé';\n const question = pick(row, ['Question', 'Please write your request', 'Please write your re', 'Request', 'Message']) || '(no question)';\n const from = pick(row, ['Nom', 'Name', 'Full Name', 'Adresse e-mail', 'Email Address', 'Email']) || 'Anonymous';\n\n if (!categories[category]) categories[category] = [];\n categories[category].push({ question, from });\n}\n\nlet html = `<h2>📬 Questions of the day received (${rows.length})</h2>`;\nfor (const [cat, items] of Object.entries(categories)) {\n html += `<h3>${cat} (${items.length})</h3><ul>`;\n for (const it of items) {\n html += `<li><strong>${it.from}</strong><br>${it.question}</li>`;\n }\n html += `</ul>`;\n}\n\nreturn [{ json: { html, count: rows.length } }];\n"
},
"typeVersion": 2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "0eeda259-9205-4ec9-8dcb-f39e515f579a",
"connections": {
"d889b4e6-7b66-4272-92a1-406771c5803b": {
"main": [
[
{
"node": "1c6d9187-1442-4098-a300-11b22e1183c2",
"type": "main",
"index": 0
}
]
]
},
"b619b991-d0cd-41be-84f8-3e2a0db82fea": {
"main": [
[
{
"node": "d889b4e6-7b66-4272-92a1-406771c5803b",
"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