CASO REAL · PROBOLSAS · AUTOMATIZACIÓN

8 reportes automáticos antes de las 7 AM — cómo dejamos de perder dos horas diarias en hojas de cálculo

Este es el primer caso que documento públicamente de Probolsas. No es el más espectacular, pero sí el más representativo de cómo empieza esto en una empresa manufacturera real: un problema aburrido, repetitivo y caro que nadie había resuelto porque "así siempre se hizo".

Lo que se hacía a mano todos los días

En Probolsas manejamos múltiples módulos de información: egresos, cartera por pagar, facturación, órdenes de producción, cotizaciones. Cada uno vive en un sistema llamado Crisolweb — un ERP que hace su trabajo pero que no tiene tablero gerencial propio, ni alertas, ni nada que te diga cómo te fue ayer sin que tú vayas a buscarlo.

Cada mañana, alguien tenía que entrar módulo por módulo, filtrar las fechas, descargar el CSV, abrirlo en Excel, organizarlo, y finalmente pasarle los números al gerente. Ese proceso se repetía para ocho reportes diferentes.

El tiempo total: entre hora y media y dos horas. Todos los días. Antes de que empezara la jornada productiva real.

No era un problema dramático. No había crisis. Era simplemente trabajo robotizado que hacía un humano porque nadie había parado a pensar si tenía que ser así.

Por qué no lo habíamos resuelto antes

La respuesta honesta: porque funcionaba. Era lento e ineficiente, pero funcionaba. Nadie se quejaba porque era "lo normal". Y cambiar algo que funciona, aunque mal, siempre cuesta más energía de lo que parece.

El otro problema era que Crisolweb — nuestro software de producción — no estaba diseñado para ser automatizado. Para sacar un reporte tienes que entrar al sistema, buscar el módulo, configurar las fechas a mano, esperar que cargue la tabla, y ahí sí exportar. Ocho veces. Una por cada reporte. No hay un botón que diga "dame todo".

La única forma de resolver eso era hacer que un programa replicara exactamente lo que hace un humano frente a la pantalla. Que entrara al sistema, navegara los menús, pusiera las fechas, esperara que cargara, y descargara el archivo. Todo invisible, todo automático.

Lo que intenté primero — y por qué falló

El primer problema apareció en el login. El sistema tiene una verificación que detecta si quien está entrando es una persona real o un programa. Tuve que ajustar el código para que se comportara exactamente como un humano abriendo el navegador — incluyendo una pequeña cookie de verificación que el sistema espera ver antes de dejar pasar.

Cuando por fin pude entrar, apareció el segundo obstáculo. El botón de exportar en Crisolweb no descarga el archivo directamente. Genera un enlace único en ese instante — un enlace que cambia cada vez y que desaparece si no lo usas de inmediato. Era como intentar atrapar agua con las manos: si no estabas ahí en el momento exacto en que se creaba el enlace, lo perdías.

Tuve que enseñarle al programa a vigilar esa pantalla, detectar cuándo aparecía ese enlace, y descargarlo antes de que desapareciera. Eso tomó varios intentos hasta que funcionó de forma confiable.

El tercer problema fue al momento de subir los datos al tablero. Hay un paso intermedio donde el sistema rechaza los datos si no los envías de una forma muy específica — primero de una manera, luego de otra, en ese orden exacto. Sin documentación, sin que nadie te lo diga. Solo lo descubres probando y fallando.

Cómo terminó funcionando

La solución final usa Playwright — una librería que automatiza un navegador real, como si fuera una persona sentada frente a la pantalla.

El proceso completo cada mañana:

1. Un workflow en n8n dispara el script a las 6 AM.
2. El script abre un navegador invisible, entra a Crisolweb con usuario y contraseña.
3. Para cada uno de los ocho reportes: navega al módulo, hace click en el menú de la izquierda (que tenía display:none en el HTML — hubo que bypassearlo vía JavaScript), configura las fechas, genera el reporte, intercepta la URL dinámica de exportación, descarga el CSV.
4. Cada CSV se envía por POST a un Google Apps Script que lo procesa y actualiza el Dashboard Gerencial en Google Sheets.
5. A las 7 AM el tablero está actualizado.

El detalle técnico que más tiempo tomó: el Google Apps Script tiene una redirección 302 cuando recibe el POST. La mayoría de las librerías siguen esa redirección con GET, lo que da error 405. Tuve que manejar el redirect manualmente — POST al endpoint original, capturar la URL de redirección, hacer GET a esa URL para obtener la respuesta JSON.

Eso solo lo descubres cuando lo pruebas. No hay documentación que lo diga.

Los números

Antes de la automatización:

  • 90-120 minutos diarios de trabajo manual para preparar 8 reportes
  • Datos disponibles para gerencia a las 9-10 AM como mínimo
  • Riesgo de error humano en filtros de fecha o copia de datos
  • Si quien hacía el proceso faltaba, no había reportes ese día

Después:

  • 0 minutos de trabajo manual — el proceso corre solo
  • Datos disponibles a las 7 AM, antes de que empiece la jornada
  • ~500 horas anuales recuperadas (tomando 2 hrs/día × 250 días hábiles)
  • El proceso corre igual si falta quien lo hacía antes

Lo que aprendí

La automatización más útil no siempre es la más sofisticada. Este proceso no usa IA en el sentido que la gente imagina — no hay modelos de lenguaje, no hay nada que "piense". Es simplemente un programa que hace lo mismo que hacía un humano, pero a las 6 AM sin quejarse.

El 80% del tiempo lo tomaron los obstáculos que nadie documenta: la verificación de cookies del login, el ID de sesión dinámico del SSRS, el redirect del Google Apps Script. Eso es lo que diferencia hacer esto en una fábrica real de hacerlo en un tutorial de YouTube.

Si tienes un proceso en tu operación que alguien hace a mano todos los días y que siempre produce el mismo resultado — eso es automatizable. Probablemente en menos tiempo del que crees, una vez que entiendes los obstáculos reales.

Herramientas usadas en este caso

Playwright — automatización del navegador
n8n — orquestación y scheduling
Google Sheets + Apps Script — almacenamiento y dashboard
Crisolweb (SSRS) — sistema fuente de los datos

Si en tu planta también hay alguien haciendo este mismo trabajo a mano — revisar sistemas, descargar reportes, copiarlos a Excel — ese proceso es automatizable. El obstáculo real no es la tecnología, es entender cómo funciona tu sistema específico.

Mira cómo conecto estos sistemas en operaciones como la tuya →