Invitar Empleado
Exportar contenido
Envía una invitación por email a un empleado para que acceda al sistema con permisos específicos.
- En RRHH → Empleados, selecciona un empleado sin acceso — clic en “Invitar”.
- Se abre el modal de invitación.
- Selecciona el Tipo de Empleado — los permisos se muestran automáticamente.
- (Opcional) Activa “Personalizar permisos” para ajustar acceso individual.
- Revisa el resumen de permisos.
- Clic en “Enviar Invitación” — email enviado con link de aceptación.
Información del modal
Sección titulada «Información del modal»Datos del empleado:
- Nombre completo
- Email de contacto
- Avatar con iniciales
Configuración de permisos:
| Campo | Descripción |
|---|---|
| Tipo de Empleado | Selecciona rol predefinido |
| Personalizar permisos | Activa para ajustes individuales |
| Resumen de permisos | Badges con módulos y nivel de acceso |
Proceso de invitación
Sección titulada «Proceso de invitación»┌─────────────────┐│ Seleccionar ││ Empleado │└────────┬────────┘ │ ┌────▼────┐ │ Elegir │ │ Tipo │ └────┬────┘ │┌────────▼────────┐│ Personalizar │ (opcional)│ Permisos │└────────┬────────┘ │ ┌────▼────┐ │ Enviar │ │ Email │ └────┬────┘ │┌────────▼────────┐│ Empleado ││ Recibe Link │└────────┬────────┘ │ ┌────▼────┐ │ Acepta │ │Invitación│ └────┬────┘ │┌────────▼────────┐│ Acceso ││ Activado │└─────────────────┘Contenido del email
Sección titulada «Contenido del email»Asunto: Invitación como Empleado en [Nombre Negocio]
Elementos:
- Nombre del remitente (propietario)
- Rol asignado
- Nombre del negocio
- Botón de aceptación con link único
- Aviso de expiración (7 días)
Cómo sé que lo hice bien
Sección titulada «Cómo sé que lo hice bien»- Toast de confirmación: “Invitación enviada a [email]”.
- Badge “Pendiente” en el empleado.
- El empleado recibe email en su bandeja.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa | Solución |
|---|---|---|
| ”Selecciona un tipo para continuar” | No elegiste tipo | Selecciona un tipo de empleado |
| ”El empleado ya tiene acceso” | Usuario ya invitado/activo | Revisa estado del empleado |
| ”Email no válido” | Email incorrecto en ficha | Actualiza email del empleado |
Detalles técnicos — Invitar Empleado
Sección titulada «Detalles técnicos — Invitar Empleado»Detalles técnicos
Edge Function: send-employee-invitation
Proceso:
- Genera token UUID único
- Cancela invitaciones pendientes previas
- Crea registro en
employee_invitationscon permisos - Envía email vía SendGrid con template dinámico
- Link de aceptación:
/accept-employee-invitation/{token}
Request body:
interface InvitationRequest { employeeId: string; businessId: string; email: string; permissions?: Permission[]; employeeTypeId?: string;}
interface Permission { section: string; access: 'none' | 'read' | 'edit';}Tabla: employee_invitations
Campos:
{ id: uuid, employee_id: uuid, business_id: uuid, email: string, token: string, // UUID único status: 'pending', // pending, accepted, expired, cancelled permissions: jsonb, // Array de Permission employee_type_id: uuid, sent_at: timestamp, expires_at: timestamp, // +7 días accepted_at: timestamp, created_at: timestamp, updated_at: timestamp}Template SendGrid: d-0501e71f03a44ebb82b3b2ecfed3654c
Queries de diagnóstico:
-- Ver invitaciones pendientesSELECT i.*, e.first_name, e.last_name, e.email, EXTRACT(DAY FROM (i.expires_at - NOW())) as dias_restantesFROM employee_invitations iJOIN employees e ON i.employee_id = e.idWHERE i.business_id = '<business_id>' AND i.status = 'pending' AND i.expires_at > NOW()ORDER BY i.sent_at DESC;-- Reenviar invitación (cancelar anterior y crear nueva)UPDATE employee_invitationsSET status = 'cancelled', updated_at = NOW()WHERE employee_id = '<employee_id>' AND status = 'pending';