Bulletin de synthèse - Tâches et événements

Avancé

Ceci est unPersonal Productivity, Multimodal AIworkflow d'automatisation du domainecontenant 18 nœuds.Utilise principalement des nœuds comme Code, Gmail, Merge, Todoist, GoogleCalendar. Briefing quotidien automatisé avec Todoist, Google Agenda et GPT-4o via Gmail

Prérequis
  • Compte Google et informations d'identification Gmail API
  • Clé API OpenAI
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": "oRUhVLfKvrxvUSky",
  "meta": {
    "instanceId": "dfeafc9dc27dee2289436a8382e76ed3cdd65cbd44e54ea55fd1393614bf0382",
    "templateCredsSetupCompleted": true
  },
  "name": "Daily Briefing- Tasks & Events",
  "tags": [],
  "nodes": [
    {
      "id": "9f7abaa2-1d99-488d-a2f6-ce63af3dd509",
      "name": "Envoyer un message à un modèle",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        400,
        -20
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "chatgpt-4o-latest",
          "cachedResultName": "CHATGPT-4O-LATEST"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=Here's my plan for today:\n\n🗂️ **Tasks**\n{{ $json.formattedTasks }}\n\n📅 **Calendar**\n{{ $json.formattedEvents }}\n\n---\n\n✅ Structure the reply in this exact markdown format:\n\n**Daily Summary**  \n[one-sentence summary of the day]\n\n\\n\\n\n\n🎯 **Top Priorities**  \n1. ✅ [Task 1] – ⏰ [Time]  \n2. ✅ [Task 2] – ⏰ [Time]  \n...\n\n\\n\\n\n\n💡 **Focus Mantra**  \n\"[motivational quote]\"\n\n\\n\\n\n\nAdd **line breaks** between each section and each task, so it's email-friendly and easy to scan.\nAvoid long paragraphs. Keep it clean and structured."
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "QpyyqFY2rAs6Umuv",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "3bccfb3e-2e86-4c0b-8bce-891b6ad3b969",
      "name": "Envoyer un message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        980,
        -20
      ],
      "webhookId": "af5f600b-c704-4a52-98a1-a3323a39048a",
      "parameters": {
        "sendTo": "emailPlaceholder",
        "message": "={{ $json.htmlBody }}",
        "options": {},
        "subject": "Morning Briefings"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "d9YtSxVNiAg2C7FK",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "e21eed99-cc0b-4224-b7f0-e85f62dd6c78",
      "name": "Récupérer plusieurs tâches",
      "type": "n8n-nodes-base.todoist",
      "position": [
        -320,
        80
      ],
      "parameters": {
        "filters": {
          "projectId": "2357038842"
        },
        "operation": "getAll",
        "returnAll": true
      },
      "credentials": {
        "todoistApi": {
          "id": "bhVIRYwTcnPoVk7L",
          "name": "Todoist account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "009b1143-306d-4bad-bea7-47df8771b499",
      "name": "Récupérer plusieurs événements",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        -320,
        -120
      ],
      "parameters": {
        "options": {},
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "emailPlaceholder",
          "cachedResultName": "emailPlaceholder"
        },
        "operation": "getAll"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "bEUn0PilK7gDh4tG",
          "name": "Google Calendar account"
        }
      },
      "typeVersion": 1.3,
      "alwaysOutputData": true
    },
    {
      "id": "27d34f96-ca61-44bf-8989-bbca2bee0069",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        200,
        -20
      ],
      "parameters": {
        "jsCode": "const calendarEvents = [];\nconst todoistTasks = [];\n\nfor (const item of items) {\n  if (item.json?.start?.dateTime) {\n    calendarEvents.push(item.json);\n  } else if (item.json?.content) {\n    todoistTasks.push(item.json);\n  }\n}\n\nconst formattedEvents = calendarEvents.map((event, i) => {\n  const time = new Date(event.start.dateTime).toLocaleTimeString('en-IN', { hour: '2-digit', minute: '2-digit' });\n  return `${i + 1}. ${event.summary} at ${time}`;\n}).join('\\n');\n\nconst formattedTasks = todoistTasks.map((task, i) => {\n  const time = task.due?.datetime\n    ? new Date(task.due.datetime).toLocaleTimeString('en-IN', { hour: '2-digit', minute: '2-digit' })\n    : 'No time set';\n  return `${i + 1}. ${task.content} (Due at ${time})`;\n}).join('\\n');\n\nreturn [\n  {\n    json: {\n      formattedEvents: formattedEvents || 'No calendar events today.',\n      formattedTasks: formattedTasks || 'No tasks today.'\n    }\n  }\n];"
      },
      "typeVersion": 2
    },
    {
      "id": "987c7654-7edc-4aea-b2be-f0ce846cf6fd",
      "name": "Fusionner",
      "type": "n8n-nodes-base.merge",
      "position": [
        -20,
        -20
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "2b69ae00-18c0-4778-9702-23a18e300573",
      "name": "Convertir OpenAI Texte en HTML",
      "type": "n8n-nodes-base.code",
      "position": [
        760,
        -20
      ],
      "parameters": {
        "jsCode": "const raw = $json.message?.content || 'No message';\n\n// Convert markdown-style bold to <strong>\nlet html = raw\n  .replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>')\n\n// Convert newlines and spacing\n  .replace(/\\n{2,}/g, '<br><br>')     // double newlines → double <br>\n  .replace(/\\n/g, '<br>')             // single newline fallback\n\n// Optional: emoji replacement (can leave as-is if you like)\n  .replace(/✅/g, '✅')\n  .replace(/🎯/g, '🎯')\n  .replace(/💡/g, '💡')\n  .replace(/📅/g, '📅')\n  .replace(/🗂️/g, '🗂️');\n\nreturn [\n  {\n    json: {\n      htmlBody: `<div style=\"font-family: Arial, sans-serif; font-size: 14px; line-height: 1.6;\">${html}</div>`\n    }\n  }\n];"
      },
      "typeVersion": 2
    },
    {
      "id": "2651477d-bad3-4fc7-9666-4a11a87bc4f8",
      "name": "Déclencheur Planifié",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -640,
        -20
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 6
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d032cb5e-11bb-445c-ab31-b357ba8c3044",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1100,
        -180
      ],
      "parameters": {
        "color": 5,
        "width": 380,
        "height": 440,
        "content": "## 📌 **Daily Briefing Automation**\n\nThis workflow fetches today's calendar events and tasks from Google Calendar and Todoist, formats them using GPT-4o, converts the summary to HTML, and emails it automatically at 6:00 AM daily.\n\nUse this to start your day focused and aligned with your top priorities.\n\n**Highlights:**\n- Auto-scheduled morning brief\n- Task & calendar merging\n- Natural language summary by GPT\n- HTML email output (readable & styled)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "20aa46f5-e9e9-4259-8658-a369938e7d04",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -680,
        -180
      ],
      "parameters": {
        "color": 2,
        "width": 180,
        "height": 440,
        "content": "⏰ Triggers the workflow at 6:00 AM daily.\nUse this to automate your morning routine prep.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "00f26917-3006-40a8-b798-63d4d741f360",
      "name": "Note adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        -260
      ],
      "parameters": {
        "color": 6,
        "width": 180,
        "height": 180,
        "content": "📅 Fetches all Google Calendar events for the day.\nFilters are configured using your linked Gmail calendar.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f1b0537b-06f8-4840-9a18-b748da7d2076",
      "name": "Note adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        160
      ],
      "parameters": {
        "color": 6,
        "width": 180,
        "height": 220,
        "content": "\n\n\n\n\n\n\n📝 Fetches all Todoist tasks under a specified project.\nMake sure `projectId` is up-to-date.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "5e0e9272-1834-4108-ad04-be81be4d32c6",
      "name": "Note adhésive4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        200
      ],
      "parameters": {
        "color": 7,
        "width": 180,
        "height": 140,
        "content": "🔀 Merges calendar events and tasks.\nRequired to feed both datasets into a single Code node.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e6c7821c-1c24-4dc3-aef9-387efc2f9ec5",
      "name": "Note adhésive5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        200
      ],
      "parameters": {
        "color": 7,
        "width": 180,
        "height": 140,
        "content": "🧠 Separates & formats calendar events and tasks.\nReturns structured strings for GPT to summarize.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c2de93aa-9e1c-4dd4-984f-72de1f4323bd",
      "name": "Note adhésive6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        200
      ],
      "parameters": {
        "color": 7,
        "width": 180,
        "height": 140,
        "content": "🤖 Sends task and calendar summary to GPT-4o.\nPrompt includes layout guidance and markdown formatting.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e0b8b41b-75bd-4455-b94e-919fb3be5d9a",
      "name": "Note adhésive7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        200
      ],
      "parameters": {
        "color": 7,
        "width": 180,
        "height": 140,
        "content": "🧱 Converts markdown-style GPT output into clean HTML.\nEnsures line breaks, bold headings, and emojis are email-friendly.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4b6ae3f4-8490-4097-87d7-5b1bfbcf90ad",
      "name": "Note adhésive8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        200
      ],
      "parameters": {
        "color": 7,
        "width": 180,
        "height": 140,
        "content": "📧 Sends the final HTML email to your inbox.\nEmail subject: “Morning Briefings”\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8eb46a16-e528-488e-be02-fdd00d1220c0",
      "name": "Note adhésive9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -80
      ],
      "parameters": {
        "color": 7,
        "width": 1280,
        "height": 440,
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8eb56c93-5df7-4748-b658-c69a8ba1123e",
  "connections": {
    "27d34f96-ca61-44bf-8989-bbca2bee0069": {
      "main": [
        [
          {
            "node": "9f7abaa2-1d99-488d-a2f6-ce63af3dd509",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "987c7654-7edc-4aea-b2be-f0ce846cf6fd": {
      "main": [
        [
          {
            "node": "27d34f96-ca61-44bf-8989-bbca2bee0069",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e21eed99-cc0b-4224-b7f0-e85f62dd6c78": {
      "main": [
        [
          {
            "node": "987c7654-7edc-4aea-b2be-f0ce846cf6fd",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "009b1143-306d-4bad-bea7-47df8771b499": {
      "main": [
        [
          {
            "node": "987c7654-7edc-4aea-b2be-f0ce846cf6fd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9f7abaa2-1d99-488d-a2f6-ce63af3dd509": {
      "main": [
        [
          {
            "node": "2b69ae00-18c0-4778-9702-23a18e300573",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2651477d-bad3-4fc7-9666-4a11a87bc4f8": {
      "main": [
        [
          {
            "node": "009b1143-306d-4bad-bea7-47df8771b499",
            "type": "main",
            "index": 0
          },
          {
            "node": "e21eed99-cc0b-4224-b7f0-e85f62dd6c78",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2b69ae00-18c0-4778-9702-23a18e300573": {
      "main": [
        [
          {
            "node": "3bccfb3e-2e86-4c0b-8bce-891b6ad3b969",
            "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é ?

Avancé - 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é
Avancé
Nombre de nœuds18
Catégorie2
Types de nœuds8
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
AK Pasnoor

AK Pasnoor

@ak-pasnoor

🚀 Automate. Scale. Win. Are you still manually following up with leads or relying on staff to answer every call? I help agencies and business owners deploy AI voice agents and chatbots that book appointments 24/7, qualify leads instantly, and eliminate 90% of repetitive tasks—without writing a single line of code.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34