Programación y recordatorios de evaluaciones de desempeño
Este es unHRflujo de automatización del dominio deautomatización que contiene 16 nodos.Utiliza principalmente nodos como If, Set, Code, Slack, SplitOut. Automatizar el proceso de evaluación del rendimiento con Google Sheets, calendario, correo y Slack
- •Bot Token de Slack o URL de Webhook
- •Credenciales de API de Google Sheets
Nodos utilizados (16)
Categoría
{
"id": "rPl99EYLVHLCXg0B",
"meta": {
"instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
"templateCredsSetupCompleted": true
},
"name": "Performance Review Scheduler & Reminder",
"tags": [],
"nodes": [
{
"id": "ce6f4776-596d-498a-b3f6-2746d2e077ac",
"name": "Verificación Diaria a las 8 AM",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1568,
160
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.1
},
{
"id": "4a46b397-1c45-4f1c-9fd2-03922787e2ea",
"name": "Obtener Calendario de Revisiones",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1344,
160
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "name",
"value": "ReviewSchedule"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "YOUR_REVIEW_SPREADSHEET_ID"
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "ScSS2KxGQULuPtdy",
"name": "Google Sheets- test"
}
},
"typeVersion": 4.2
},
{
"id": "427bb5c4-6675-4a32-b13d-acd17a748a57",
"name": "Filtrar Revisiones Próximas",
"type": "n8n-nodes-base.code",
"position": [
-1152,
160
],
"parameters": {
"jsCode": "const items = $input.all();\nconst today = $now.toDate();\nconst threeDaysLater = new Date(today);\nthreeDaysLater.setDate(today.getDate() + 3);\n\nconst upcomingReviews = items.filter(item => {\n const reviewDate = new Date(item.json.ReviewDate);\n return reviewDate >= today && reviewDate <= threeDaysLater && item.json.Status !== 'Completed';\n});\n\nconst todayReviews = upcomingReviews.filter(item => {\n const reviewDate = new Date(item.json.ReviewDate);\n return reviewDate.toDateString() === today.toDateString();\n});\n\nconst reminderReviews = upcomingReviews.filter(item => {\n const reviewDate = new Date(item.json.ReviewDate);\n return reviewDate.toDateString() !== today.toDateString();\n});\n\nreturn {\n upcomingReviews: upcomingReviews,\n todayReviews: todayReviews,\n reminderReviews: reminderReviews\n};"
},
"typeVersion": 2
},
{
"id": "86940cc8-365c-4045-b316-58a27f0ca209",
"name": "¿Revisiones Programadas?",
"type": "n8n-nodes-base.if",
"position": [
-944,
160
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json.upcomingReviews.length}}",
"operation": "larger"
}
]
}
},
"typeVersion": 1
},
{
"id": "f764fef2-2e57-4797-9252-edfee5648ec5",
"name": "Dividir en Elementos",
"type": "n8n-nodes-base.splitOut",
"position": [
-752,
160
],
"parameters": {
"options": {},
"fieldToSplitOut": "upcomingReviews"
},
"typeVersion": 1
},
{
"id": "3e05bca6-7db2-4153-858d-3843e805ee2c",
"name": "Preparar Datos de Revisión",
"type": "n8n-nodes-base.set",
"position": [
-544,
160
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "calendar_event",
"name": "calendarEventId",
"type": "string",
"value": "={{$json.CalendarEventId}}"
},
{
"id": "employee_name",
"name": "employeeName",
"type": "string",
"value": "={{$json.EmployeeName}}"
},
{
"id": "reviewer_name",
"name": "reviewerName",
"type": "string",
"value": "={{$json.ReviewerName}}"
},
{
"id": "review_date",
"name": "reviewDate",
"type": "string",
"value": "={{$json.ReviewDate}}"
},
{
"id": "review_type",
"name": "reviewType",
"type": "string",
"value": "={{$json.ReviewType}}"
},
{
"id": "employee_email",
"name": "employeeEmail",
"type": "string",
"value": "={{$json.EmployeeEmail}}"
},
{
"id": "reviewer_email",
"name": "reviewerEmail",
"type": "string",
"value": "={{$json.ReviewerEmail}}"
}
]
}
},
"typeVersion": 3.3
},
{
"id": "629584ef-1552-4f7f-af54-93131d0f4ff6",
"name": "Enviar Recordatorio por Email",
"type": "n8n-nodes-base.emailSend",
"position": [
-352,
64
],
"webhookId": "dc3907f7-78c5-4990-a840-9155b7eb9b33",
"parameters": {
"options": {},
"subject": "=🎯 Performance Review Reminder - {{$json.employeeName}}",
"toEmail": "={{$json.employeeEmail}}, {{$json.reviewerEmail}}",
"fromEmail": "hr@yourcompany.com"
},
"credentials": {
"smtp": {
"id": "G1kyF8cSWTZ4vouN",
"name": "SMTP -test"
}
},
"typeVersion": 2.1
},
{
"id": "1e20e938-b64e-4c9f-ba21-9aa768446064",
"name": "Actualizar Evento de Calendario",
"type": "n8n-nodes-base.googleCalendar",
"position": [
-352,
256
],
"parameters": {
"end": "2025-10-24T00:00:00",
"start": "2025-10-16T00:00:00",
"calendar": "primary",
"additionalFields": {}
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "6ldLmzzYtaqng4pw",
"name": "Google Calendar account - test"
}
},
"typeVersion": 1.2
},
{
"id": "fe4e328e-f85e-400c-97c4-33610d3a0cfe",
"name": "Notificar a RRHH en Slack",
"type": "n8n-nodes-base.slack",
"position": [
-144,
160
],
"webhookId": "26fb8c97-1e61-43bc-ab08-46b83b156c21",
"parameters": {
"text": "=🎯 *Performance Review Reminder Sent*\n\n*Employee:* {{$json.employeeName}}\n*Reviewer:* {{$json.reviewerName}}\n*Review Type:* {{$json.reviewType}}\n*Scheduled Date:* {{$json.reviewDate}}\n\n📧 Reminder emails sent to both parties\n📅 Calendar event updated",
"user": {
"__rl": true,
"mode": "list",
"value": ""
},
"select": "user",
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "MQ0fgwuS8AzfwFvy",
"name": "Slack account - test "
}
},
"typeVersion": 2.1
},
{
"id": "ee18e67d-1af3-48e0-b614-95b80fc80da0",
"name": "Actualizar Estado de Revisión",
"type": "n8n-nodes-base.googleSheets",
"position": [
64,
160
],
"parameters": {
"columns": {
"value": {},
"schema": [],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "ReviewSchedule"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "YOUR_REVIEW_SPREADSHEET_ID"
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "ScSS2KxGQULuPtdy",
"name": "Google Sheets- test"
}
},
"typeVersion": 4.2
},
{
"id": "3a012941-6f69-44f8-ace3-2368a75d76c3",
"name": "Nota Adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1600,
-80
],
"parameters": {
"color": 4,
"width": 176,
"height": 404,
"content": "## Daily morning check\n\nRuns at 8 AM every day"
},
"typeVersion": 1
},
{
"id": "46806887-42b2-438c-8b1a-1602abb5ed0d",
"name": "Nota Adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1408,
-80
],
"parameters": {
"color": 4,
"width": 192,
"height": 404,
"content": "## Fetches review schedule\n\nRetrieves all planned reviews"
},
"typeVersion": 1
},
{
"id": "d2559dee-a579-4173-ae68-d6cd86f20306",
"name": "Nota Adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1184,
-80
],
"parameters": {
"color": 4,
"width": 192,
"height": 404,
"content": "## Filters upcoming reviews\n\nChecks next 3 days"
},
"typeVersion": 1
},
{
"id": "318eb680-fba0-4aff-bf42-bf3fbac19020",
"name": "Nota Adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-976,
-80
],
"parameters": {
"color": 4,
"width": 192,
"height": 404,
"content": "## Validates schedule\n\nEnsures reviews exist"
},
"typeVersion": 1
},
{
"id": "dcfa2a1a-e180-4c48-b55e-259dc81c4bf6",
"name": "Nota Adhesiva4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-768,
-80
],
"parameters": {
"color": 4,
"width": 320,
"height": 404,
"content": "## Processes each review\n\nSplits and prepares data"
},
"typeVersion": 1
},
{
"id": "0c5a911d-494f-4097-a102-0dc421af21b6",
"name": "Nota Adhesiva5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-368,
-144
],
"parameters": {
"color": 4,
"width": 540,
"height": 580,
"content": "## Multi-channel notifications & tracking\n\nSends reminders via email, updates calendar, notifies HR, and logs status"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "45f2da8b-5c9e-4979-83b5-fa12aa5a3087",
"connections": {
"f764fef2-2e57-4797-9252-edfee5648ec5": {
"main": [
[
{
"node": "3e05bca6-7db2-4153-858d-3843e805ee2c",
"type": "main",
"index": 0
}
]
]
},
"fe4e328e-f85e-400c-97c4-33610d3a0cfe": {
"main": [
[
{
"node": "ee18e67d-1af3-48e0-b614-95b80fc80da0",
"type": "main",
"index": 0
}
]
]
},
"86940cc8-365c-4045-b316-58a27f0ca209": {
"main": [
[
{
"node": "f764fef2-2e57-4797-9252-edfee5648ec5",
"type": "main",
"index": 0
}
]
]
},
"ce6f4776-596d-498a-b3f6-2746d2e077ac": {
"main": [
[
{
"node": "4a46b397-1c45-4f1c-9fd2-03922787e2ea",
"type": "main",
"index": 0
}
]
]
},
"4a46b397-1c45-4f1c-9fd2-03922787e2ea": {
"main": [
[
{
"node": "427bb5c4-6675-4a32-b13d-acd17a748a57",
"type": "main",
"index": 0
}
]
]
},
"3e05bca6-7db2-4153-858d-3843e805ee2c": {
"main": [
[
{
"node": "629584ef-1552-4f7f-af54-93131d0f4ff6",
"type": "main",
"index": 0
},
{
"node": "1e20e938-b64e-4c9f-ba21-9aa768446064",
"type": "main",
"index": 0
}
]
]
},
"629584ef-1552-4f7f-af54-93131d0f4ff6": {
"main": [
[
{
"node": "fe4e328e-f85e-400c-97c4-33610d3a0cfe",
"type": "main",
"index": 0
}
]
]
},
"1e20e938-b64e-4c9f-ba21-9aa768446064": {
"main": [
[
{
"node": "fe4e328e-f85e-400c-97c4-33610d3a0cfe",
"type": "main",
"index": 0
}
]
]
},
"427bb5c4-6675-4a32-b13d-acd17a748a57": {
"main": [
[
{
"node": "86940cc8-365c-4045-b316-58a27f0ca209",
"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?
Avanzado - 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