Saltar al contenido principal
Adrià García
Menú
← Todos los proyectos

Proyecto ·

Automatización de datos, reporting y conversiones para educación

Cliente: un grupo internacional de educación y medios con distintas marcas y procesos de matriculación

  • Google Cloud: Compute Engine, Cloud Functions and Cloud Scheduler
  • Google Drive and Google Sheets
  • Looker Studio
  • Google Analytics
  • Measurement Protocol
  • SFTP

El problema

Distintas marcas generaban ficheros operativos en un SFTP que debían alimentar el reporting y la analítica. El proceso tenía que admitir varias formas de actualización, operar desde una IP autorizada y relacionar las matrículas confirmadas con las transacciones ya registradas.

Qué hice

  • Monté el proceso en una máquina virtual levantada por una Cloud Function y programada con Cloud Scheduler. La máquina existe porque el SFTP exigía IP fija y las Cloud Functions no la tenían; al terminar, se apaga sola.
  • Implementé la ingesta de los CSV hacia Drive y Sheets con tres modos de actualización: reescritura completa, añadido de líneas nuevas y actualización por clave, según lo que necesitara cada fichero.
  • Controlé el límite de celdas de las hojas, el registro de errores con un logger propio y el ciclo de vida de los ficheros en Drive.
  • Añadí el módulo que cruza el identificador de cupón con la transacción de Google Analytics y envía por Measurement Protocol el hit de la matrícula confirmada, dentro de la ventana configurada.
  • Dejé la documentación en tres niveles: el funcional del proceso, el técnico del código y su puesta en producción, y un runbook paso a paso para dar de alta una marca nueva sin tocar código.

Resultado

  • El proceso llegó a producción y automatizó el paso de datos operativos hacia reporting y analítica para distintas marcas.
  • La medición pudo distinguir la solicitud de la matrícula confirmada dentro de la analítica del sitio.
  • La configuración y la documentación permitían incorporar nuevas carpetas y marcas sin rediseñar la arquitectura.

Cómo pienso este problema

¿Tienes un problema parecido?

Describe el punto de partida, las plataformas implicadas y la decisión que necesitas desbloquear.

Hablar del proyecto