| Filename | Latest commit message | Latest commit date |
|---|---|---|
| Flujos | ||
| Imagenes | ||
| Flujos_Detalle.md | ||
| mapa_arquitectura.md | ||
| README.md | ||
| Roadmap.md | ||
| SQL.md | ||
Sistema de Control Documental - Automatización de Onboarding y Expedientes
Descripción general
Este sistema automatiza el proceso de onboarding documental de empleados utilizando:
- Telegram como canal de comunicación con el empleado.
- n8n como orquestador de flujos de trabajo.
- Gemini AI para validar documentos y verificar identidad.
- PostgreSQL (Neon) como base de datos transaccional y de logs.
- NextCloud / SharePoint como repositorio de expedientes versionados.
- Google Sheets como dashboard de gestión para RH.
El flujo comienza con una invitación por correo electrónico, continúa con la vinculación de Telegram, la validación de documentos (PDF o imágenes) mediante IA, el almacenamiento versionado y el seguimiento de pendientes.
Arquitectura de flujos (workflows)
| Workflow ID | Nombre | Función |
|---|---|---|
| RH_00 | Envío de invitaciones | Envía correos con token único a empleados sin Telegram vinculado. |
| RH_01 | Identidad y clasificador | Recibe mensajes de Telegram, identifica al usuario (empleado o admin), clasifica el tipo de entrada y enruta al subflujo adecuado. |
| RH_02 | Validador documental | Valida el tipo MIME, usa IA para clasificar y verificar el documento (INE, CURP, RFC, selfie, etc.) y llama al motor de versionado. |
| RH_03 | Motor de versionado | Genera nombre de archivo, versión, crea carpetas y sube el documento a NextCloud, registrando en BD. |
| RH_05 | Seguimiento de pendientes | Ejecución programada diaria que recuerda a los empleados los documentos faltantes. |
| RH_06 | Sincronización dashboard | Actualiza cada 30 min un Google Sheet con el progreso documental de cada empleado. |
Flujo principal (paso a paso)
-
Invitación
- RH ejecuta manualmente el flujo
RH_00. - Se consultan empleados activos sin
telegram_chat_id. - Se envía un correo HTML con un botón que contiene un token único (
https://t.me/GigaITBot?start=token).
- RH ejecuta manualmente el flujo
-
Vinculación
- El empleado hace clic en el enlace y abre el bot de Telegram.
- El flujo
RH_01recibe el comando/start token, busca al empleado por token y actualiza sutelegram_chat_id.
-
Bienvenida y envío de documentos
- El bot saluda al empleado y le solicita los documentos requeridos (CURP, INE, RFC, acta de nacimiento, comprobante de domicilio, selfie).
- El empleado puede enviar PDF o foto.
-
Validación por IA
- El flujo
RH_02clasifica el tipo de documento mediante Gemini AI. - Valida coincidencia del nombre (90% o más) en documentos de identidad.
- Para selfies, verifica que haya un rostro claro, de frente, sin obstrucciones (gafas de sol, gorras) y sin sesgos de género.
- Retorna si el documento es válido o no, con el motivo.
- El flujo
-
Almacenamiento versionado
- Si es válido,
RH_03calcula la siguiente versión (V1, V2…). - Construye el nombre según el patrón:
TIPO_DOCUMENTO_MMYY_V{n}.ext. - Crea la carpeta
RH/Expedientes/EMP_{employee_id}en NextCloud. - Sube el archivo y registra en la tabla
employee_documents. - Notifica al empleado por Telegram el éxito o el error.
- Si es válido,
-
Seguimiento automático
- Cada día hábil a las 9:00 AM, el flujo
RH_05busca empleados con documentos faltantes (según catálogo de documentos requeridos) y les envía un recordatorio con la lista de pendientes.
- Cada día hábil a las 9:00 AM, el flujo
-
Dashboard para RH
- Cada 30 minutos, el flujo
RH_06consulta el estado de todos los empleados (progreso, documentos faltantes, última actividad) y actualiza un Google Sheets que sirve como tablero de control.
- Cada 30 minutos, el flujo
Esquema de base de datos (principales tablas)
-
employees
id,employee_id,full_name,email,auth_token(UUID),telegram_chat_id,is_admin,status(NUEVO_INGRESO/ACTIVO/OBSOLETO),is_active,last_update. -
employee_documents
employee_internal_id,document_type,version,storage_path,upload_date,validated(boolean). -
document_catalog
code(ej: INE, CURP, RFC),name,allowed_mimetypes,required(boolean). -
system_logs
telegram_chat_id,action,description,created_at. -
system_settings
key,value(ej:BASE_URLpara enlace a expediente digital).
Requisitos técnicos
- n8n (versión recomendada: 1.0+)
- Credenciales configuradas en n8n:
neon-cd-n8n(PostgreSQL)Telegram-GigaITBot(bot de Telegram)Google_Gemini_Api_gigait(API de Gemini)NextCloud account(WebDAV/NextCloud)SMTP account(para envío de correos)Google_Sheets_*(OAuth2 para Google Sheets)
- Tablas de base de datos creadas según el esquema.
- El bot de Telegram debe estar registrado y el webhook configurado en n8n.
- Los flujos deben importarse en n8n y activarse (pasar
activeatrue).
Configuración rápida
- Importar los flujos JSON en n8n.
- Ajustar las credenciales con las tuyas.
- Verificar que los IDs de los workflows en nodos
Execute Workflowsean correctos (RH_01 llama a RH_02 y RH_03). - Configurar el webhook de Telegram en el nodo
Telegram Triggerde RH_01. - Activar los flujos (cambiar
active: falseatrueen cada JSON o desde la UI de n8n). - Ejecutar manualmente RH_00 para enviar las primeras invitaciones.
Notas importantes
- Los documentos selfie tienen reglas especiales de validación: se permite lentes oftálmicos, pero no lentes de sol, gorros o máscaras. No se emiten juicios de género.
- Las versiones se calculan por tipo de documento; si un empleado sube dos INE distintas, se incrementa la versión.
- Los documentos caducan simbólicamente después de 6 meses, cambiando el estado del empleado a
OBSOLETO. - El dashboard en Google Sheets se actualiza automáticamente y se puede compartir con el equipo de RH.
Mantenimiento y logs
Todos los eventos importantes quedan registrados en la tabla system_logs con acción, descripción y timestamp. Puedes consultarlos desde el bot de Telegram si eres administrador (menú “Consultar Logs”).
Desarrollado con n8n, Gemini AI, y mucho café ☕