Integraciones y Automatizacion

Como el onboarding se conecta con documentos, firmas, emails y automatizaciones

integracionautomatizaciondocumentosfirmasemailseventostriggers

Integraciones y Automatizacion

El modulo de onboarding se integra profundamente con otros modulos del sistema para automatizar tareas y sincronizar estados. Esta guia explica como funcionan estas integraciones.

Integracion con Documentos

DocumentRequest

Cuando agregas un item tipo document_request:

  1. OnboardingChecklistItem se crea
  2. Se crea vinculo con DocumentRequest
  3. Candidato sube archivos
  4. DocumentRequest.status = "completed"
  5. Sincronizacion automatica
  6. ChecklistItem.status = "completed"

Plantillas de documentos

Puedes usar DocumentRequestTemplate para crear solicitudes consistentes:

// Configuracion del item
{
  type: "document_request",
  documentRequestTemplateId: 5,  // Usa plantilla existente
  title: "Documentos de Ingreso"
}

Beneficios:

  • Items predefinidos y estandarizados
  • Menos configuracion manual
  • Cambios en plantilla no afectan onboardings existentes

Sincronizacion de estado

El sistema sincroniza automaticamente:

DocumentRequestChecklistItem
pendingpending
partialin_progress
completedcompleted

Flujo de codigo:

  1. DocumentRequestController.completeRequest()
  2. OnboardingService.syncDocumentRequestStatus(requestId)
  3. Actualiza ChecklistItem.status
  4. Recalcula onboardingProgress

Integracion con Firmas

SignatureRequest

Cuando agregas un item tipo signature_request:

  1. OnboardingChecklistItem se crea
  2. Se crea vinculo con SignatureRequest (con PDF plantilla)
  3. Candidato firma
  4. SignatureRequest.status = "completed"
  5. Sincronizacion automatica
  6. ChecklistItem.status = "completed"

Documento plantilla

Cada item de firma requiere un PDF plantilla:

{
  type: "signature_request",
  documentTemplateKey: "templates/contrato-2024.pdf",  // S3 key
  documentTemplateUrl: "https://s3.../signed-url",     // URL firmada
  title: "Contrato de Trabajo"
}

Flujo de firma

  1. Candidato abre item en Mi Onboarding
  2. Navega a pagina de firma
  3. Visualiza PDF
  4. Dibuja firma
  5. Confirma
  6. PDF firmado se almacena
  7. SignatureRequest.status = "completed"
  8. Sincronizacion automatica
  9. ChecklistItem.status = "completed"

Expiracion

Las solicitudes de firma expiran en 30 dias. Si expira:

  1. El item permanece pendiente
  2. Reclutador debe crear nueva solicitud
  3. Se notifica al candidato

Integracion con Emails

Emails de notificacion

Al iniciar onboarding, puedes configurar emails automaticos:

EmailDestinatarioProposito
BienvenidaCandidatoInformar sobre onboarding
RRHHReclutadorNotificar nueva contratacion

Email de bienvenida

// Al iniciar onboarding
{
  welcomeEmailTemplateId: 10  // ID de EmailTemplate
}

Variables disponibles:

VariableDescripcion
{{candidateName}}Nombre del candidato
{{candidateEmail}}Email del candidato
{{positionTitle}}Titulo de la vacante
{{projectName}}Nombre del proyecto
{{startDate}}Fecha de inicio formateada
{{onboardingUrl}}Link a Mi Onboarding
{{companyName}}Nombre de la empresa

Email a RRHH

// Al iniciar onboarding
{
  hrNotificationTemplateId: 11,
  hrUserId: 5  // Usuario que recibe la notificacion
}

Variables adicionales:

VariableDescripcion
{{recruiterName}}Nombre del reclutador
{{itemsCount}}Numero de items en checklist

Recordatorios

El sistema puede enviar recordatorios automaticos:

POST /api/onboarding/application/:appId/send-reminder

Contenido del recordatorio:

  • Saludo personalizado
  • Dias restantes
  • Items pendientes
  • Link a Mi Onboarding

Automatizacion con EventBus

Eventos emitidos

El onboarding emite eventos que pueden disparar automatizaciones:

ONBOARDING_ITEM_COMPLETED

Se emite cuando cualquier item se completa:

{
  type: "ONBOARDING_ITEM_COMPLETED",
  payload: {
    applicationId: 123,
    postulantId: 456,
    itemId: 789,
    itemType: "document_request",
    itemTitle: "Documentos de Ingreso",
    completedAt: "2024-01-15T10:30:00Z",
    completedById: 456
  }
}

Usos:

  • Notificar al reclutador
  • Actualizar dashboard en tiempo real
  • Registrar en log de actividad

ONBOARDING_ALL_COMPLETED

Se emite cuando TODOS los items requeridos estan completos:

{
  type: "ONBOARDING_ALL_COMPLETED",
  payload: {
    applicationId: 123,
    postulantId: 456,
    completedAt: "2024-01-15T14:00:00Z",
    itemsCompleted: 6,
    totalItems: 6
  }
}

Usos:

  • Notificar finalizacion a RRHH
  • Mover tarea en proceso a siguiente etapa
  • Activar integraciones externas
  • Actualizar status en sistema externo

Suscribirse a eventos

En automatizaciones, puedes usar estos eventos como triggers:

Trigger: ONBOARDING_ALL_COMPLETED

Acciones:

  • Enviar email de confirmacion
  • Mover tarea a "Listo para iniciar"
  • Notificar al gerente

Integracion con Procesos

Onboarding como etapa

El onboarding puede ser parte de un proceso de seleccion:

Proceso: Contratacion

  • Entrevista
  • Evaluacion
  • Oferta
  • Contratado
    • Iniciar Onboarding
  • Onboarding Completo
    • Listo para iniciar

Automatizacion de proceso

Cuando el onboarding se completa, puedes:

1. Mover tarea automaticamente

  • Evento: ONBOARDING_ALL_COMPLETED
  • Accion: Mover tarea a etapa "Incorporado"

2. Crear siguiente tarea

  • Evento: ONBOARDING_ALL_COMPLETED
  • Accion: Crear tarea en proceso "Capacitacion"

Integracion con Vacantes

Plantilla por vacante

Puedes vincular plantillas a vacantes especificas:

  1. JobPosition: "Desarrollador Senior"
  2. OnboardingTemplate: "Onboarding Tech"
  3. Al contratar para esta vacante, se usa automaticamente esta plantilla

Configuracion

// OnboardingTemplate
{
  name: "Onboarding Tech",
  jobPositionId: 28,  // Vinculado a vacante
  items: [...]
}

Prioridad de seleccion

  1. Plantilla vinculada a la vacante
  2. Plantilla marcada como default
  3. Sin plantilla (items inline)

Sincronizacion de estados

Flujo completo

JobApplication

  • status: "hired"
  • onboardingStatus: "not_started" > "in_progress" > "completed"
  • onboardingProgress: 0 > 50 > 100

OnboardingChecklistItems[]

  • item1: "pending" > "completed"
  • item2: "pending" > "in_progress" > "completed"
  • item3: "pending" > "completed"

Recalculo de progreso

Cada vez que un item cambia:

  1. OnboardingService.updateOnboardingProgress(applicationId)
  2. Cuenta items completados
  3. Calcula porcentaje
  4. Actualiza onboardingProgress
  5. Si progress = 100%:
    • onboardingStatus = "completed"
    • onboardingCompletedAt = now()

Feature Gating

Acceso a plantillas

Crear plantillas requiere feature "automation":

// OnboardingTemplateController.create()
const hasAccess = await subscriptionService
  .checkBooleanFeatureAccess(effectiveUserId, "automation");

if (!hasAccess) {
  return res.status(403).json({
    error: "Feature not available in your plan"
  });
}

Plan requerido

FuncionalidadPlan BasicoPlan Pro
Crear onboardingSiSi
Items inlineSiSi
PlantillasNoSi
AutomatizacionesNoSi

WebSocket en tiempo real

Presencia de candidato

El dashboard muestra si el candidato esta conectado:

// WebSocket event
{
  type: "user_presence",
  userId: 456,
  status: "online"
}

Indicador en dashboard:

EstadoCandidato
En linea (verde)Juan Perez
Desconectado (gris)Maria Garcia

Actualizacion de progreso

Cuando el candidato completa un item:

// WebSocket event
{
  type: "onboarding_progress_updated",
  applicationId: 123,
  progress: 67,
  itemCompleted: "Documentos de Ingreso"
}

El dashboard se actualiza sin recargar.

Diagrama de integraciones

ComponenteConexionDestino
JobApplication (status:hired)CreaChecklistItems
ChecklistItemsVinculaDocumentReq / SignatureReq
OnboardingTmpl (items config)ConfiguraChecklistItems
EventBus (events)NotificaAutomations
S3 Storage (files)AlmacenaDocumentos y firmas
Automations (triggers/actions)EjecutaEmailService
EmailService (notifications)EnviaCandidato / RRHH

Configuracion avanzada

Variables de entorno

No hay variables especificas para onboarding. Usa las generales de:

  • S3 para almacenamiento de documentos
  • Email para notificaciones
  • Redis para cache de presencia

Timeouts

OperacionTimeout
Subida de archivo60s
Firma de documento30s
Sincronizacion10s

Limites

RecursoLimite
Items por onboarding50
Tamano de archivo10MB
Dias de expiracion firma30

Troubleshooting

Item no se sincroniza

Sintoma: DocumentRequest completado pero ChecklistItem sigue pendiente.

Causa: Error en la sincronizacion.

Solucion:

  1. Verificar logs del backend
  2. Llamar manualmente:
POST /api/onboarding/sync-document/:documentRequestId

Evento no se dispara

Sintoma: Onboarding completo pero automatizacion no ejecuta.

Causa: Trigger mal configurado.

Solucion:

  1. Verificar configuracion del trigger
  2. Revisar logs de EventBus
  3. Verificar que el evento tenga los campos esperados

Email no llega

Sintoma: Candidato no recibe email de bienvenida.

Causas:

  1. Template no configurado
  2. Email invalido
  3. Filtro de spam

Solucion:

  1. Verificar templateId al iniciar
  2. Revisar email del candidato
  3. Revisar logs de EmailService

Proximos pasos

¿No encontraste lo que buscabas?

Nuestro equipo de soporte está listo para ayudarte.

Contactar Soporte