Rastreador automatizado de entrevistas de candidatos usando Google Calendar y recordatorios de Gmail
Este es unHRflujo de automatización del dominio deautomatización que contiene 13 nodos.Utiliza principalmente nodos como If, Gmail, Filter, Webhook, GoogleSheets. Seguimiento automático de entrevistas usando Google Calendar, Sheets y alertas de Gmail
- •Cuenta de Google y credenciales de API de Gmail
- •Punto final de HTTP Webhook (n8n generará automáticamente)
- •Credenciales de API de Google Sheets
Nodos utilizados (13)
Categoría
{
"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": "Verificar Cada 5 Minutos",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
144,
-64
],
"parameters": {
"rule": {
"interval": [
{
"field": "minutes"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "cec5691c-d2e4-4da0-a72f-a5eacc87e4d1",
"name": "Obtener Eventos del Calendario",
"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": "Filtrar Entrevistas Próximas",
"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": "Agregar a Hoja 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": "Enviar Recordatorio al Candidato",
"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": "Actualizar Hoja con Resultado",
"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: Enviar Resultado de Entrevista",
"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": "Verificar si Aprobó",
"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": "Correo al Candidato - Aprobado",
"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": "Correo al Candidato - No Aprobado",
"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": "Correo al Gerente",
"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": "Nota Adhesiva",
"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": "Nota Adhesiva1",
"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
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Intermedio - Recursos Humanos
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
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.
Compartir este flujo de trabajo