Automatisation Gmail avec n8n : gestion intelligente des rendez-vous
Ce workflow n8n a pour objectif d'automatiser la gestion des rendez-vous via Gmail et Google Calendar, en intégrant des modèles de langage d'OpenAI pour classifier et traiter les informations pertinentes. Dans un contexte où la gestion du temps est cruciale pour les entreprises, ce workflow permet d'optimiser la prise de rendez-vous et d'améliorer la productivité des équipes. Les utilisateurs peuvent ainsi se concentrer sur des tâches à plus forte valeur ajoutée, tout en réduisant le risque d'erreurs humaines dans la gestion des emails et des calendriers.
- Étape 1 : Le déclencheur Gmail surveille les nouveaux messages entrants.
- Étape 2 : Lorsqu'un email est reçu, il est traité par le modèle de langage d'OpenAI pour classifier le contenu et déterminer s'il s'agit d'une demande de rendez-vous.
- Étape 3 : Si un rendez-vous est identifié, le workflow interagit avec Google Calendar pour créer un événement, tout en envoyant une réponse appropriée par email.
- Étape 4 : Les messages sont marqués comme lus pour éviter les doublons. Ce processus permet non seulement de gagner du temps, mais aussi d'assurer une gestion fluide et efficace des rendez-vous, augmentant ainsi la satisfaction client et la réactivité des équipes.
Workflow n8n Gmail, Google Calendar, OpenAI : vue d'ensemble
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Workflow n8n Gmail, Google Calendar, OpenAI : détail des nœuds
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"meta": {
"instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "eaa31cde-3017-400d-aac8-999def8cc227",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-340,
-780
],
"parameters": {
"width": 617,
"height": 490,
"content": "## Check if incoming email is about appointment\nWe use LLM to check subject and body of the email and determine if it's an appointment request. "
},
"typeVersion": 1
},
{
"id": "b03d3f72-d1d8-49a7-bcc1-a476fd5c4ad7",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
-780
],
"parameters": {
"width": 796,
"height": 482,
"content": "## Get calendar availability and compose a response\nMake sure to update the Workflow ID if you are running this as 2 workflows"
},
"typeVersion": 1
},
{
"id": "29ce0093-c4c8-41cc-be69-334de3a1d1a2",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-60,
-460
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8gccIjcuf3gvaoEr",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "5176f475-704b-446e-b368-ffa395bb089e",
"name": "OpenAI Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
480,
-460
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8gccIjcuf3gvaoEr",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "0e8a75dd-ce68-46c3-972c-32b15e04b254",
"name": "Send reply",
"type": "n8n-nodes-base.gmail",
"position": [
940,
-660
],
"webhookId": "0f18d414-1b14-4d2e-9fc2-d2d302372dc6",
"parameters": {
"message": "={{ $json.output }}",
"options": {},
"messageId": "={{ $('Gmail Trigger').first().json.id }}",
"operation": "reply"
},
"credentials": {
"gmailOAuth2": {
"id": "Sf5Gfl9NiFTNXFWb",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "bf154384-274a-4cdd-977d-890220948a9d",
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
-280,
-640
],
"parameters": {
"filters": {
"readStatus": "unread",
"includeSpamTrash": false
},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"credentials": {
"gmailOAuth2": {
"id": "Sf5Gfl9NiFTNXFWb",
"name": "Gmail account"
}
},
"typeVersion": 1.2
},
{
"id": "5a268b34-38ea-4e55-87ab-8a616e2aa1fa",
"name": "Classify appointment",
"type": "@n8n/n8n-nodes-langchain.textClassifier",
"position": [
-60,
-640
],
"parameters": {
"options": {
"fallback": "discard"
},
"inputText": "=Please evaluate the following email to determine if it suggests scheduling a meeting or a call:\nSubject: {{ $json.Subject }}\nSnippet: {{ $json.snippet }}",
"categories": {
"categories": [
{
"category": "is_appointment",
"description": "email Is requesting an appointment"
}
]
}
},
"typeVersion": 1
},
{
"id": "7b5a8468-09e5-4575-97cb-9175ee02b19d",
"name": "Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
500,
-660
],
"parameters": {
"text": "=Sender: {{ $('Gmail Trigger').first().json.From }}\nSubject: {{ $('Gmail Trigger').first().json.Subject }}\nEmail Text: {{ $('Gmail Trigger').first().json.snippet }}",
"options": {
"systemMessage": "=You are an email scheduling assistant. Based on the received email, check my availability and propose an appropriate response. \nAim to get a specific time, rather than just a day. When checking my availability, make sure that there's enough time in between meetings.\nIf I'm not available, ALWAYS propose a new time based on my availability. When proposing a new time, always leave 15 minutes buffer from previous meeting.\nToday date and time is: {{ $now.toISO() }}."
},
"promptType": "define"
},
"typeVersion": 1.8
},
{
"id": "b61e8061-5719-4c30-97da-e306e7b79b76",
"name": "Google Calendar",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
680,
-460
],
"parameters": {
"options": {},
"timeMax": "={{ $now.plus(1, 'month').toISO() }}",
"timeMin": "={{ $now.minus(1, 'day').toISO() }}",
"calendar": {
"__rl": true,
"mode": "id",
"value": "your_email@gmail.com"
},
"operation": "getAll",
"returnAll": true
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "kWMxmDbMDDJoYFVK",
"name": "Google Calendar account"
}
},
"typeVersion": 1.3
},
{
"id": "47e07b6c-d432-4111-b33e-56d6c305c40c",
"name": "Mark as read",
"type": "n8n-nodes-base.gmail",
"position": [
940,
-480
],
"webhookId": "7e2d851b-c9f3-471c-875d-0da7c2c3b561",
"parameters": {
"messageId": "={{ $('Gmail Trigger').first().json.id }}",
"operation": "markAsRead"
},
"credentials": {
"gmailOAuth2": {
"id": "Sf5Gfl9NiFTNXFWb",
"name": "Gmail account"
}
},
"typeVersion": 2.1
}
],
"pinData": {},
"connections": {
"Agent": {
"main": [
[
{
"node": "Send reply",
"type": "main",
"index": 0
},
{
"node": "Mark as read",
"type": "main",
"index": 0
}
]
]
},
"Gmail Trigger": {
"main": [
[
{
"node": "Classify appointment",
"type": "main",
"index": 0
}
]
]
},
"Google Calendar": {
"ai_tool": [
[
{
"node": "Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Classify appointment",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Classify appointment": {
"main": [
[
{
"node": "Agent",
"type": "main",
"index": 0
}
],
[]
]
}
}
}Workflow n8n Gmail, Google Calendar, OpenAI : pour qui est ce workflow ?
Ce workflow s'adresse aux entreprises et aux équipes qui utilisent Gmail et Google Calendar pour gérer leurs rendez-vous. Il est particulièrement utile pour les professionnels souhaitant automatiser la gestion de leur temps sans nécessiter de compétences techniques avancées.
Workflow n8n Gmail, Google Calendar, OpenAI : problème résolu
Ce workflow résout le problème de la gestion manuelle des rendez-vous, qui peut être source de confusion et de pertes de temps. En automatisant le processus de classification et de réponse aux demandes de rendez-vous, il réduit le risque d'erreurs et permet aux utilisateurs de se concentrer sur des tâches plus importantes. Les utilisateurs bénéficient d'une organisation améliorée et d'une communication plus fluide avec leurs contacts.
Workflow n8n Gmail, Google Calendar, OpenAI : étapes du workflow
Étape 1 : Le déclencheur Gmail active le workflow à chaque nouvel email.
- Étape 1 : Le contenu de l'email est analysé par le modèle de langage d'OpenAI pour identifier les demandes de rendez-vous.
- Étape 2 : Si une demande est confirmée, le workflow crée un événement dans Google Calendar.
- Étape 3 : Une réponse est envoyée par email pour confirmer le rendez-vous, et le message est marqué comme lu pour éviter toute confusion.
Workflow n8n Gmail, Google Calendar, OpenAI : guide de personnalisation
Pour personnaliser ce workflow, vous pouvez modifier les paramètres du déclencheur Gmail, tels que les filtres pour cibler des types spécifiques d'emails. Vous pouvez également ajuster les options du modèle de langage d'OpenAI pour affiner la classification des demandes. Enfin, adaptez les paramètres de Google Calendar pour choisir le calendrier approprié et définir les détails de l'événement. Assurez-vous de sécuriser votre flux en utilisant des clés API et en surveillant les performances pour optimiser l'automatisation.