Introduccion a Automatizacion
Comprende los conceptos fundamentales del sistema de automatizacion de Talivo.
Conceptos Basicos
Que es un Workflow
Un workflow (flujo de trabajo) es una secuencia automatizada de acciones que se ejecuta cuando ocurre un evento especifico o segun un horario.
Estructura:
| TRIGGER | CONDICIONES | ACCIONES |
|---|---|---|
| (Cuando) | (Si...) | (Hacer) |
Ejemplo:
- Trigger: Nueva aplicacion recibida
- Condicion: Vacante = "Desarrollador Senior"
- Acciones:
- Enviar email de confirmacion
- Crear tarea para RH
- Notificar al hiring manager
Componentes Principales
1. AGENTE (AutomationAgent)
Contenedor principal del workflow:
- name: Nombre descriptivo
- type: "workflow" | "recruiter_bot"
- isActive: Si esta habilitado
- triggers: Lista de disparadores
- actions: Lista de acciones ordenadas
2. TRIGGER (AutomationTrigger)
Define CUANDO se ejecuta el workflow:
- eventType: Tipo de evento
- configuration: Filtros y condiciones
- Puede ser evento o programado
3. ACCION (AutomationAction)
Define QUE hacer cuando se dispara:
- actionType: Tipo de accion
- configuration: Parametros
- order: Secuencia de ejecucion
- Se ejecutan en orden
Tipos de Agentes
Workflow (Automatizacion Tradicional)
Tipo: workflow
Caracteristicas:
- Responde a eventos del sistema
- Ejecuta acciones en secuencia
- Puede incluir condiciones y filtros
- No tiene estado de conversacion
- Ejecucion rapida y determinista
Uso tipico:
- Notificaciones automaticas
- Movimientos de candidatos
- Creacion de tareas
- Sincronizacion de datos
- Validaciones y alertas
Reclutador Virtual (Bot IA)
Tipo: recruiter_bot
Caracteristicas:
- Conversacion con candidatos via chat/WhatsApp
- Usa LLM (GPT-4) para respuestas
- Mantiene contexto de conversacion
- Acceso a base de conocimiento (RAG)
- Puede ejecutar acciones durante chat
- Escalacion a humano cuando necesario
Uso tipico:
- Screening inicial de candidatos
- Responder preguntas frecuentes
- Agendar entrevistas
- Recolectar documentos
- Seguimiento de procesos
Ciclo de Vida de Ejecucion
Flujo de Eventos
- EVENTO OCURRE - Usuario mueve candidato, llega mensaje, etc.
- EVENTBUSSERVICE EMITE - Evento tipado con datos relevantes
- SCHEDULER RECIBE - SchedulerService escucha eventos
- BUSCAR AGENTES ACTIVOS - Busca workflows con trigger matching
- EVALUAR CONDICIONES - Verifica filtros del trigger
- ENCOLAR EJECUCION - AgentQueueService agrega a cola
- EJECUTAR ACCIONES - AgentExecutionService procesa
- REGISTRAR RESULTADO - AgentExecution guarda logs
Estados de Ejecucion
| Estado | Descripcion |
|---|---|
| PENDING | En cola esperando |
| EXECUTING | Procesando acciones |
| COMPLETED | Todas las acciones exitosas |
| ERROR | Fallo en alguna accion |
| PARTIAL | Algunas acciones fallaron |
Arquitectura Tecnica
Servicios Principales
AgentExecutionService
- Motor principal de ejecucion
- Procesa cola de tareas
- Ejecuta acciones en secuencia
- Maneja errores y reintentos
- Registra resultados
AgentQueueService
- Cola de ejecuciones pendientes
- Prioriza por orden de llegada
- Evita ejecuciones duplicadas
- Maneja concurrencia
EventBusService
- Bus central de eventos
- Tipado fuerte de eventos
- Distribuye a listeners
- Registro de eventos
SchedulerService
- Escucha todos los eventos
- Evalua triggers configurados
- Encola ejecuciones matching
- Maneja triggers programados
ReclutadorAIService
- Logica de bot conversacional
- Integracion con OpenAI
- Manejo de contexto
- Seleccion de plantillas
Entidades de Base de Datos
AutomationAgent
- id, name, description
- type: workflow | recruiter_bot
- isActive, isDefault
- ownerId (empresa)
- templateId (opcional)
- configuration (JSON)
AutomationTrigger
- id, agentId
- eventType: enum 20+ tipos
- configuration (JSON)
- Relacion: Agent 1:N Triggers
AutomationAction
- id, agentId
- actionType: enum 30+ tipos
- configuration (JSON)
- order: secuencia
- Relacion: Agent 1:N Actions
AgentExecution
- id, agentId
- status: pending/executing/completed/error
- triggerData (JSON)
- result (JSON)
- startedAt, completedAt
- errorMessage
Eventos del Sistema
Categorias de Eventos
| Categoria | Descripcion |
|---|---|
| APPLICATION | Aplicaciones a vacantes |
| TASK | Tareas en procesos |
| TEST | Evaluaciones |
| MESSAGE | Comunicaciones |
| DOCUMENT | Documentos y archivos |
| SIGNATURE | Firmas digitales |
| CALENDAR | Eventos y reuniones |
| ONBOARDING | Proceso de onboarding |
| SCHEDULE | Triggers programados |
| PROFILE | Cambios en perfiles |
Ejemplo de Evento
Evento emitido cuando candidato aplica:
{
type: "APPLICATION_CREATED",
timestamp: "2024-01-20T15:30:00Z",
data: {
applicationId: 123,
jobPositionId: 45,
postulantId: 789,
postulantName: "Juan Perez",
jobTitle: "Desarrollador Senior",
source: "career-page"
}
}
Acciones Disponibles
Categorias de Acciones
| Categoria | Descripcion |
|---|---|
| MESSAGING | Email, SMS, WhatsApp, notificaciones |
| AI_ANALYSIS | Analisis de CV, matching, scoring |
| FLOW_CONTROL | Condiciones, delays, variables |
| TASK_MANAGEMENT | Mover candidatos, crear tareas |
| CALENDAR | Crear eventos, agendar |
| DOCUMENTS | Solicitar documentos, firmas |
| INTEGRATION | Webhooks, APIs externas |
| BOT_SPECIFIC | Acciones del Reclutador Virtual |
Ejemplo de Accion
Accion para enviar email:
{
actionType: "SEND_EMAIL",
order: 1,
configuration: {
template: "application-received",
to: "{{postulant.email}}",
subject: "Recibimos tu aplicacion",
variables: {
name: "{{postulant.name}}",
position: "{{job.title}}"
}
}
}
Configuracion de Workflows
Crear desde Cero
- Acceder a Automatizacion -> + Nueva
- Elegir tipo:
- Workflow: automatizacion tradicional
- Reclutador Virtual: bot conversacional
- Configurar trigger:
- Evento: cuando ocurre algo
- Programado: cada X tiempo
- Anadir acciones:
- Arrastrar del palette
- Configurar parametros
- Ordenar secuencia
- Guardar y activar
Crear desde Plantilla
- Acceder a Automatizacion -> + Desde Plantilla
- Seleccionar template:
- Screening basico
- FAQ vacantes
- Agendamiento entrevistas
- ... mas opciones
- Personalizar configuracion
- Guardar y activar
Variables y Contexto
Variables Disponibles
En acciones puedes usar placeholders:
| Variable | Descripcion |
|---|---|
{{postulant.name}} | Nombre del candidato |
{{postulant.email}} | Email del candidato |
{{job.title}} | Titulo de la vacante |
{{company.name}} | Nombre de la empresa |
{{event.type}} | Tipo de evento |
{{date.now}} | Fecha actual |
{{step.name}} | Etapa actual |
Ejemplo:
"Hola {{postulant.name}}, gracias por aplicar a {{job.title}}"
Contexto de Ejecucion
Cada ejecucion tiene contexto:
- triggerData: datos del evento
- previousResults: resultados de acciones anteriores
- variables: datos acumulados
- metadata: info de la ejecucion
Las acciones pueden:
- Leer contexto anterior
- Modificar variables
- Pasar datos a siguiente accion
Buenas Practicas
Diseno de Workflows
DO:
- Nombrar descriptivamente
- Documentar proposito
- Usar condiciones especificas
- Manejar errores
- Probar antes de activar
DON'T:
- Crear loops infinitos
- Enviar muchos mensajes
- Ignorar errores
- Workflows muy largos
- Duplicar logica
Performance
Recomendaciones:
- Acciones async cuando posible
- Evitar acciones redundantes
- Usar filtros en triggers
- Monitorear ejecuciones
- Limpiar historicos periodicamente
Proximos Pasos
- Triggers de Eventos - Configurar disparadores
- Acciones de Mensajeria - Enviar comunicaciones
- Reclutador Virtual - Crear bot IA