Suivi automatisé des entretiens de candidats avec Google Calendar et Gmail
Ceci est unHRworkflow d'automatisation du domainecontenant 13 nœuds.Utilise principalement des nœuds comme If, Gmail, Filter, Webhook, GoogleSheets. Suivi automatique des entretiens avec Google Calendar, Sheets et les alertes Gmail
- •Compte Google et informations d'identification Gmail API
- •Point de terminaison HTTP Webhook (généré automatiquement par n8n)
- •Informations d'identification Google Sheets API
Nœuds utilisés (13)
Catégorie
{
"id": "fgGjrwJD0wsrTF4C",
"meta": {
"instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
"templateCredsSetupCompleted": true
},
"name": "Automated Candidate Interview Tracker with Google Calendar & Gmail Alerts",
"tags": [],
"nodes": [
{
"id": "40220665-8466-4ca5-a665-59b1b7fb4dcd",
"name": "Vérifier toutes les 5 minutes",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
144,
-64
],
"parameters": {
"rule": {
"interval": [
{
"field": "minutes"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "cec5691c-d2e4-4da0-a72f-a5eacc87e4d1",
"name": "Obtenir les événements du calendrier",
"type": "n8n-nodes-base.googleCalendar",
"position": [
368,
-64
],
"parameters": {
"options": {
"timeMax": "={{ $now.plus({ hours: 1 }).toISO() }}",
"timeMin": "={{ $now.toISO() }}"
},
"calendar": {
"__rl": true,
"mode": "id",
"value": "=76iujhgtr4321eryi8"
},
"operation": "getAll"
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "6ldLmzzYtaqng4pw",
"name": "Google Calendar account - test"
}
},
"typeVersion": 1.2
},
{
"id": "e600def1-33a8-433b-978a-5bd334d4e861",
"name": "Filtrer les entretiens à venir",
"type": "n8n-nodes-base.filter",
"position": [
592,
-64
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "condition1",
"operator": {
"type": "dateTime",
"operation": "before",
"singleValue": true
},
"leftValue": "={{ $json.start.dateTime }}",
"rightValue": "={{ $now.plus({ minutes: 5 }).toISO() }}"
},
{
"id": "condition2",
"operator": {
"type": "dateTime",
"operation": "after",
"singleValue": true
},
"leftValue": "={{ $json.start.dateTime }}",
"rightValue": "={{ $now.toISO() }}"
}
]
}
},
"typeVersion": 2
},
{
"id": "871ea2fb-6f24-4291-888c-94c1a47a6518",
"name": "Ajouter à la feuille Google",
"type": "n8n-nodes-base.googleSheets",
"position": [
816,
-160
],
"parameters": {
"columns": {
"value": {},
"schema": [],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "YOUR_SPREADSHEET_ID"
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "ScSS2KxGQULuPtdy",
"name": "Google Sheets- test"
}
},
"typeVersion": 4.5
},
{
"id": "97b38c41-ea45-4e4b-8318-5da4d3c24135",
"name": "Envoyer un rappel au candidat",
"type": "n8n-nodes-base.gmail",
"position": [
816,
32
],
"webhookId": "4aa88c2f-aa96-4773-a71b-6dd89843b55a",
"parameters": {
"sendTo": "={{ $json.attendees[0].email }}",
"message": "=<h2>Interview Reminder</h2>\n<p>Dear Candidate,</p>\n<p>Your interview is scheduled to start in <strong>5 minutes</strong>.</p>\n<p><strong>Interview:</strong> {{ $json.summary }}<br>\n<strong>Time:</strong> {{ $json.start.dateTime }}<br>\n<strong>Google Meet Link:</strong> <a href=\"{{ $json.hangoutLink }}\">Join Meeting</a></p>\n<p>Please join on time. Good luck!</p>",
"options": {},
"subject": "Interview Reminder - Starting in 5 Minutes"
},
"credentials": {
"gmailOAuth2": {
"id": "PcTqvGU9uCunfltE",
"name": "Gmail account - test"
}
},
"typeVersion": 2.1
},
{
"id": "53f7164c-9007-4261-8628-24b1bcdac2c7",
"name": "Mettre à jour la feuille avec le résultat",
"type": "n8n-nodes-base.googleSheets",
"position": [
368,
352
],
"parameters": {
"columns": {
"value": {},
"schema": [],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "YOUR_SPREADSHEET_ID"
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "ScSS2KxGQULuPtdy",
"name": "Google Sheets- test"
}
},
"typeVersion": 4.5
},
{
"id": "6780349a-d56e-465c-8dc4-4a23a2523dbf",
"name": "Webhook : Soumettre le résultat de l'entretien",
"type": "n8n-nodes-base.webhook",
"position": [
144,
352
],
"webhookId": "interview-result-webhook",
"parameters": {
"path": "interview-result",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "4269bbb9-8d74-4d20-8053-260836d36478",
"name": "Vérifier si réussi",
"type": "n8n-nodes-base.if",
"position": [
592,
352
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "passed-condition",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.result }}",
"rightValue": "Pass"
}
]
}
},
"typeVersion": 2
},
{
"id": "e9572ff4-464a-4956-a14e-2c0b1917a3c3",
"name": "E-mail au candidat - Réussi",
"type": "n8n-nodes-base.gmail",
"position": [
816,
256
],
"webhookId": "7b073d4f-6bb9-4b31-aa60-8f9e0cebb3e5",
"parameters": {
"sendTo": "={{ $json.candidateEmail }}",
"message": "=<h2>Congratulations!</h2>\n<p>Dear Candidate,</p>\n<p>We are pleased to inform you that you have <strong>PASSED</strong> the interview.</p>\n<p><strong>Feedback:</strong> {{ $json.feedback }}</p>\n<p>Our team will contact you soon with next steps.</p>\n<p>Best regards,<br>HR Team</p>",
"options": {},
"subject": "🎉 Congratulations! You Passed the Interview"
},
"credentials": {
"gmailOAuth2": {
"id": "PcTqvGU9uCunfltE",
"name": "Gmail account - test"
}
},
"typeVersion": 2.1
},
{
"id": "11a09ef5-e424-45db-9923-700ca794fc47",
"name": "E-mail au candidat - Échoué",
"type": "n8n-nodes-base.gmail",
"position": [
816,
448
],
"webhookId": "0ea6d946-1e54-47c6-ae97-7cbeb6c0a919",
"parameters": {
"sendTo": "={{ $json.candidateEmail }}",
"message": "=<h2>Interview Result</h2>\n<p>Dear Candidate,</p>\n<p>Thank you for taking the time to interview with us.</p>\n<p>After careful consideration, we have decided not to move forward with your application at this time.</p>\n<p><strong>Feedback:</strong> {{ $json.feedback }}</p>\n<p>We wish you all the best in your future endeavors.</p>\n<p>Best regards,<br>HR Team</p>",
"options": {},
"subject": "Interview Result"
},
"credentials": {
"gmailOAuth2": {
"id": "PcTqvGU9uCunfltE",
"name": "Gmail account - test"
}
},
"typeVersion": 2.1
},
{
"id": "1d62aabc-dc5b-40d8-9be5-d18eff86a10e",
"name": "E-mail au responsable",
"type": "n8n-nodes-base.gmail",
"position": [
1040,
352
],
"webhookId": "13efb4cd-fe47-4727-a220-2825ea71ee75",
"parameters": {
"sendTo": "manager@company.com",
"message": "=<h2>Interview Completed</h2>\n<p><strong>Candidate:</strong> {{ $json.candidateEmail }}<br>\n<strong>Result:</strong> {{ $json.result }}<br>\n<strong>Feedback:</strong> {{ $json.feedback }}</p>\n<p>Updated in Google Sheet.</p>",
"options": {},
"subject": "Interview Result: {{ $json.candidateEmail }}"
},
"credentials": {
"gmailOAuth2": {
"id": "PcTqvGU9uCunfltE",
"name": "Gmail account - test"
}
},
"typeVersion": 2.1
},
{
"id": "0c077145-df34-4e7d-8bf1-31244f07fca9",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-96,
-336
],
"parameters": {
"color": 3,
"width": 672,
"height": 208,
"content": "## Workflow Overview\n\n- **Check Every 5 Minutes**: Triggers the workflow to run every 5 minutes.\n- **Get Calendar Events**: Retrieves upcoming interview events from Google Calendar.\n- **Filter Upcoming Interviews**: Filters the retrieved events to focus on upcoming interviews.\n- **Add to Google Sheet**: Appends filtered interview details to a Google Sheet.\n- **Send Reminder to Candidate**: Sends an email reminder to the candidate via Gmail.\n"
},
"typeVersion": 1
},
{
"id": "e553920b-784e-4841-b3ec-2fb43307a6a0",
"name": "Note adhésive 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-96,
96
],
"parameters": {
"width": 688,
"height": 224,
"content": "## Workflow Overview\n\n- **Webhook: Submit Interview Result**: Receives interview result data via a webhook.\n- **Update Sheet with Result**: Updates the Google Sheet with the submitted interview result.\n- **Check if Passed**: Evaluates whether the interview result indicates a pass or fail.\n- **Email Candidate - Passed**: Sends a pass notification email to the candidate via Gmail.\n- **Email Manager**: Sends an email update to the manager via Gmail.\n- **Email Candidate - Failed**: Sends a fail notification email to the candidate via Gmail."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "e41094e8-2bbf-499d-a796-e50f5a930408",
"connections": {
"4269bbb9-8d74-4d20-8053-260836d36478": {
"main": [
[
{
"node": "e9572ff4-464a-4956-a14e-2c0b1917a3c3",
"type": "main",
"index": 0
}
],
[
{
"node": "11a09ef5-e424-45db-9923-700ca794fc47",
"type": "main",
"index": 0
}
]
]
},
"cec5691c-d2e4-4da0-a72f-a5eacc87e4d1": {
"main": [
[
{
"node": "e600def1-33a8-433b-978a-5bd334d4e861",
"type": "main",
"index": 0
}
]
]
},
"40220665-8466-4ca5-a665-59b1b7fb4dcd": {
"main": [
[
{
"node": "cec5691c-d2e4-4da0-a72f-a5eacc87e4d1",
"type": "main",
"index": 0
}
]
]
},
"11a09ef5-e424-45db-9923-700ca794fc47": {
"main": [
[
{
"node": "1d62aabc-dc5b-40d8-9be5-d18eff86a10e",
"type": "main",
"index": 0
}
]
]
},
"e9572ff4-464a-4956-a14e-2c0b1917a3c3": {
"main": [
[
{
"node": "1d62aabc-dc5b-40d8-9be5-d18eff86a10e",
"type": "main",
"index": 0
}
]
]
},
"53f7164c-9007-4261-8628-24b1bcdac2c7": {
"main": [
[
{
"node": "4269bbb9-8d74-4d20-8053-260836d36478",
"type": "main",
"index": 0
}
]
]
},
"e600def1-33a8-433b-978a-5bd334d4e861": {
"main": [
[
{
"node": "871ea2fb-6f24-4291-888c-94c1a47a6518",
"type": "main",
"index": 0
},
{
"node": "97b38c41-ea45-4e4b-8318-5da4d3c24135",
"type": "main",
"index": 0
}
]
]
},
"6780349a-d56e-465c-8dc4-4a23a2523dbf": {
"main": [
[
{
"node": "53f7164c-9007-4261-8628-24b1bcdac2c7",
"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 - Ressources Humaines
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
Oneclick AI Squad
@oneclick-aiThe AI Squad Initiative is a pioneering effort to build, automate and scale AI-powered workflows using n8n.io. Our mission is to help individuals and businesses integrate AI agents seamlessly into their daily operations from automating tasks and enhancing productivity to creating innovative, intelligent solutions. We design modular, reusable AI workflow templates that empower creators, developers and teams to supercharge their automation with minimal effort and maximum impact.
Partager ce workflow