Quickstart TenantAdmin¶
Para: rol TenantAdmin. Tienes acceso a TODO en tu organización: configuración técnica, usuarios, datos de negocio.
Este quickstart cubre las tareas de configuración inicial que un TenantAdmin típicamente hace una sola vez después de que se creó el tenant.
1. Wizard de onboarding (primer login)¶
La primera vez que entras a tu tenant, el sistema te lleva a /Onboarding automáticamente. Tres pasos:
- Identidad: nombre de la organización, email de contacto
- Localización: idioma por default (es-CO, es, en-US, en) y zona horaria (lista IANA con 30+ opciones)
- Marca: logo (PNG/JPG/SVG, máx 1 MB, recomendado 200×60 px ratio 3:1) + color primario (hex)
Al terminar se marca OnboardedAt en el tenant y entras a la app normalmente.
Puedes volver al wizard editando los mismos campos desde Configuración del tenant.
2. Configuración del tenant¶
Configuración del tenant (menú lateral) — todos los datos modificables después:
- Datos básicos: nombre, email contacto, slug (read-only — el slug se fija al crear el tenant)
- Localización: idioma, zona horaria
- Marca: logo, color primario (preview en vivo a la derecha)
- Plan asignado (read-only) + indicadores de uso:
- Empleados: actuales / máximos del plan
- Ciclos del año: actuales / máximos del plan
- Barras coloreadas: verde, amarillo (≥80%), rojo (límite alcanzado)
El plan lo asigna el SystemAdmin. Si necesitas más capacidad, contacta al admin de la plataforma.
3. Usuarios y sesiones¶
Usuarios y sesiones (menú lateral) — gestión de cuentas de acceso:
Lista de usuarios¶
- Filtros: búsqueda por nombre/email, "solo bloqueados"
- Columnas: nombre, email, último login, intentos fallidos, estado (Activo / Bloqueado / Inactivo), 2FA habilitado
Acciones por usuario¶
- Editar — cambiar nombre, email, idioma preferido, roles (puedes asignar TenantAdmin, HRManager, Manager, Employee)
- Resetear contraseña — genera contraseña temporal nueva
- Desactivar — el usuario no podrá loguearse y sus sesiones activas se revocan
- Reactivar — vuelve a activarlo
- Desbloquear — si quedó bloqueado por intentos fallidos (5 intentos = bloqueo de 10 min)
- Sesiones activas — ver tokens JWT activos del usuario, revocar todas (fuerza logout)
Crear usuario manualmente¶
Lo más común es crear empleados (que opcionalmente reciben cuenta) desde Empleados → Invitar. Ese flujo crea el ApplicationUser + lo vincula al Employee + manda email con contraseña.
Si necesitas crear un usuario "técnico" sin Employee asociado (ej. otro admin), desde Usuarios → Nuevo usuario.
4. Configuración de email¶
Email del tenant — define cómo se envían los emails transaccionales (invitaciones, recordatorios de evaluación, reset de contraseña, etc.).
Tres proveedores soportados:
A) Usar fallback de plataforma (default)¶
- Sin configuración. Usa el SMTP global del SystemAdmin
- Útil para arrancar sin setup técnico
B) SMTP propio¶
- Host, puerto, SSL/TLS, usuario, contraseña
- Dirección remitente (
from) y nombre visible - Botón Enviar prueba para validar la config
C) Microsoft Graph (OAuth client_credentials)¶
- Tenant ID + Client ID + Client Secret de tu Azure AD
- User ID del buzón emisor (UPN o GUID)
- Tu aplicación Azure AD necesita permiso
Mail.Send(application) - Botón Enviar prueba
D) Gmail OAuth¶
- Client ID + Client Secret de Google Cloud Console
- Refresh Token obtenido vía OAuth dance
- Botón Enviar prueba
Las contraseñas / secrets / refresh tokens se almacenan encriptados (AES-256) en base de datos. Solo se descifran en runtime para enviar el email.
5. Plantillas de email¶
Plantillas de email (menú lateral) — personalizar el wording de los 6 emails automáticos del sistema.
| Plantilla | Cuándo se envía |
|---|---|
| Invitación de cuenta | Crear empleado con cuenta de acceso |
| Ciclo abierto | Abrir un ciclo de evaluación |
| Recordatorio de deadline | Manual (HR) o desde script externo |
| Resultados publicados | Cerrar/publicar resultados del ciclo |
| Plan de desarrollo asignado | Crear/aprobar un plan |
| Restablecer contraseña | "Olvidé mi contraseña" desde login |
Editor¶
- Lista a la izquierda: las 6 plantillas con badge "Personalizado" o "Default"
- Tabs ES / EN — cada idioma se edita por separado
- Editor WYSIWYG (TinyMCE) para el cuerpo, con vista en código (botón
<>) para usuarios técnicos - Input de subject (con interpolación de variables)
- Panel de variables disponibles a la derecha — click para insertar
{{Var}}en el cursor (subject o body, según dónde estuvo el último foco) - Vista previa en vivo a la derecha del editor (renderizado con datos de ejemplo)
- Botón Enviar prueba — manda el email con datos dummy a un destinatario de tu elección, con prefijo
[TEST]en el asunto - Botón Deshacer último cambio — un nivel de undo
- Botón Restablecer al default — borra tu personalización; vuelve al default de plataforma
Variables disponibles¶
Cada plantilla define sus variables. Ejemplos: {{FullName}}, {{TenantName}}, {{CycleName}}, {{StartDate}}, {{EndDate}}, {{AppLink}}, {{TempPassword}}, {{ResetLink}}, {{PlanTitle}}. Click en el chip de la variable la inserta donde tengas el cursor.
Resolución (4 niveles)¶
- Tu override de tenant (si existe)
- Override de plataforma (si SystemAdmin lo personalizó)
- Archivo en disco
App_Data/EmailTemplates/{name}.{lang}.html - Mismo archivo pero
.en.html(fallback inglés)
6. Audit log¶
Registro de auditoría — visibilidad de eventos sensibles:
- Filtros: tipo de evento, entidad, fecha
- Eventos típicos:
auth.login.success/auth.login.failure(con razón)auth.password.reset.requested/auth.password.reset.completedauth.2fa.enabled/auth.2fa.disabledtenant.status.changed/tenant.plan.assignedtenant.impersonation.started/tenant.impersonation.stopped(cuando un SystemAdmin entra a tu tenant)emailtpl.saved/emailtpl.reset/emailtpl.restoredplan.created/plan.updated/plan.deleted
- Detalle por evento: quién, cuándo, IP, user-agent, y un payload JSON con contexto adicional
Útil para compliance, troubleshooting de seguridad e investigaciones.
7. Más allá: tareas de HR¶
Una vez configurado el tenant, las tareas operativas (cargar empleados, crear ciclos, generar reportes) las cubre el rol HRManager. Como TenantAdmin tienes los mismos accesos + puedes asignar el rol HR a quien corresponda.
Ver Quickstart HR para el flujo de día a día.