Carga Virtual
Pipeline que recibe comprobantes de transferencia por WhatsApp, extrae los datos con IA y precarga los depósitos automáticamente con un bot de Puppeteer. De minutos manuales a segundos sin intervención.
// El Reto
El equipo de operaciones procesaba manualmente cientos de comprobantes de transferencia (Mercado Pago y otros bancos) que los clientes enviaban por WhatsApp. Cada carga implicaba leer el comprobante, copiar importe, alias, hora y remitente, y precargar todo en el panel administrativo de Carga Virtual. El proceso era lento, propenso a errores tipográficos y consumía recursos humanos 24/7, generando demoras y fricción con el cliente final.
// La Solución
Diseñamos e implementamos un pipeline end-to-end sobre WhatsApp Business API: webhook con verificación HMAC, agente de IA con OCR Gemini y máquina de estados conversacional, cola FIFO en Turso (SQLite distribuido) con Drizzle ORM, sesión singleton de Chrome reutilizada entre jobs vía Puppeteer, y notificación al cliente por WhatsApp al confirmarse — con fallback a email al admin (con captura del error por fase) si la automatización falla. Auth con cookies httpOnly, deploy en Docker Compose + Traefik con TLS automático de Let's Encrypt.
// Cómo funciona el pipeline
Captura
Cliente envía foto del comprobante por WhatsApp
El cliente manda la imagen o PDF del comprobante de transferencia (Mercado Pago, bancos, billeteras digitales) al número de soporte.
Recepción
Webhook verifica firma HMAC y persiste el mensaje
POST a /api/webhooks recibe el evento, valida la firma criptográfica, guarda mensaje + conversación en base de datos y dispara el procesamiento en background.
IA conversacional
Agente extrae datos con OCR y conduce la conversación
Máquina de estados: si hay imagen, OCR con Gemini saca importe, hora, alias/CBU, remitente y receptor. Si falta algún dato, el agente lo pregunta por WhatsApp. Si todo está OK, muestra resumen y pide confirmación con botones [Confirmar] [Corregir].
Encolado
Confirmación del usuario encola el depósito
Cola FIFO en SQLite. Un solo worker procesa a la vez para evitar colisiones en la sesión de navegador y conflictos de UI.
Sesión de navegador
Singleton de Chrome reusa login entre jobs
BrowserSession con estados NONE → READY → DIRTY → READY. Reutiliza la sesión autenticada entre depósitos sucesivos. Auto-cierre tras 5 min de inactividad para liberar recursos.
Precarga automática
Bot llena el formulario y confirma
fillDepositForm() ejecuta los pasos: selecciona banco → tipo (transferencia/efectivo) → fecha, hora, monto, número de operación → observaciones (CUIT) → busca cliente por apellido → marca "trasladar cargo" → click Confirmar.
// Resultado
Éxito: depósito precargado
WhatsApp confirma al cliente que su depósito quedó precargado. El operador solo revisa y aprueba en el panel.
Falla: fallback humano
WhatsApp avisa al cliente que se está validando manualmente. Admin recibe email con screenshot de la fase exacta que falló (login / precarga / formulario).
// Resultados
Procesamiento automático de comprobantes en segundos en lugar de minutos. Liberación del equipo operativo del trabajo repetitivo 24/7. Trazabilidad completa con dashboard de operaciones, reintentos automáticos en fallos transitorios y fallback humano para casos límite. Sistema escalable que mantiene el throughput incluso en picos de demanda y reduce drásticamente los errores tipográficos respecto al proceso manual.
// Servicios aplicados
¿Necesitas algo similar?
Consultoría estratégica de 90 min. Si contratas, se resta del servicio.