RMC
ClienteFinTech / Billeteras digitales

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

01

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.

WhatsApp Business API
02

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.

Next.js Route HandlerTursoDrizzle ORMHMAC
03

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].

Gemini OCRVercel AI SDKState machine
04

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.

FIFO QueueTurso (libSQL)
05

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.

PuppeteerChrome headless
06

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.

Puppeteer7 pasos UI

// 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.

24/7
Disponibilidad
Segundos
Por carga
IA
Extracción automática

// Servicios aplicados

¿Necesitas algo similar?

Consultoría estratégica de 90 min. Si contratas, se resta del servicio.