Hace unos meses terminé de implementar Monday.com en una PyME mexicana de ~30 personas. Fue un proyecto grande — rediseño de procesos, resistencia al cambio. Al final funcionó: las operaciones diarias (cotizaciones, seguimiento de proyectos, asignación de recursos) ya viven en Monday.

Pero apareció un problema nuevo.

Monday es excelente para operar. Es terrible para analizar. La dirección quería respuestas a preguntas como: ¿cuánto tardamos en entregar una cotización? ¿Qué productos estamos vendiendo más? ¿Cuáles zonas están activas?.

Así que construí un data warehouse. Gratis.

Por qué no las opciones obvias

Lo primero que descartamos fue Power BI, Tableau, y los dashboards nativos de Monday. No porque sean malos — sino porque ninguno permite hacer análisis tan finos como los que necesitábamos. La idea no era visualizar data, era construir historias: entender por qué pasan las cosas, no solo cuántas veces pasan.

También descartamos contratar un data engineer. Overkill total para la escala del negocio.

Lo que se necesitaba era simple: un lugar donde aterrizar los datos de Monday, conectarlos con la base de productos en Airtable, y poder hacer preguntas sobre ellos. Nada más.

El stack

Monday.com API
      ↓
GitHub Actions (Python ETL)
      ↓
Cloudflare R2 (almacenamiento)
      ↓
MotherDuck (query layer / DuckDB cloud)
      ↓
Evidence.dev (dashboards)
      ↓
Cloudflare Access (autenticación)

Cada pieza tiene una razón de ser:

GitHub Actions — el ETL corre en un workflow programado. Sin servidores, sin infraestructura que mantener. El código está en Python y llama a la API de Monday para extraer items, columnas y actualizaciones.

Cloudflare R2 — almacenamiento de objetos compatible con S3 pero sin costo de egress. Los archivos Parquet aterrizan aquí. Para el volumen que maneja esta empresa, el costo es prácticamente cero.

MotherDuck — la pieza central. Es DuckDB en la nube: un motor SQL analítico increíblemente rápido que puede leer directamente desde R2. El tier gratuito cubre perfectamente este caso de uso.

Evidence.dev — framework open source para construir dashboards con SQL y Markdown. Los reportes se ven profesionales, se despliegan como un sitio estático, y no requieren saber nada de frontend.

Cloudflare Access — autenticación con un clic. Solo la dirección tiene acceso. Sin gestionar usuarios ni contraseñas.

El ETL

El corazón del sistema es un script de Python que corre cada noche via GitHub Actions. Hace tres cosas:

  1. Llama a la API de Monday y extrae los boards relevantes
  2. Limpia y transforma los datos (tipos, columnas de estado, timestamps)
  3. Escribe archivos Parquet en R2
# Extracto simplificado
import requests
import pandas as pd
import boto3
 
MONDAY_API_KEY = os.environ["MONDAY_API_KEY"]
R2_BUCKET = os.environ["R2_BUCKET"]
 
def fetch_board(board_id):
    query = """
    query {
      boards(ids: %s) {
        items_page {
          items {
            id name created_at
            column_values { id text value }
          }
        }
      }
    }
    """ % board_id
 
    response = requests.post(
        "https://api.monday.com/v2",
        headers={"Authorization": MONDAY_API_KEY},
        json={"query": query}
    )
    return response.json()

El workflow de GitHub Actions lo dispara un cron cada noche y también puede correrse manualmente cuando algo cambia urgente.

Los dashboards

Con los datos en MotherDuck, construí cuatro vistas en Evidence:

Pipeline activo — todos los proyectos en curso, su etapa, responsable y fecha estimada. La vista que más usa la dirección día a día.

Ventas generadas — ingresos por mes, comparado con el mismo período del año anterior. Simple, pero era información que antes vivía en una hoja de Excel que nadie actualizaba.

Ventas por producto — qué se está vendiendo realmente. Esto cambió conversaciones: había productos que se creían core y resultaron marginales, y viceversa.

Tiempos de cotización — cuántos días transcurren desde que entra una solicitud hasta que sale la cotización. Este fue el más revelador. El cuello de botella no estaba donde nadie pensaba.

Lo que cambió

Antes de tener esto, las reuniones de dirección eran en base a memoria e intuición. Ahora hay una pantalla con números. No siempre son los números que se quieren ver, pero al menos son los números reales. El equipo directivo revisa el pipeline desde su teléfono.

No se resolvieron todos los problemas de datos de la empresa. Pero sí los más urgentes, con herramientas que cualquier persona con conocimientos básicos de Python y SQL puede mantener.

Cuánto cuesta

HerramientaCosto mensual
GitHub Actions$0 (tier gratuito)
Cloudflare R2~$0 (primeros 10GB gratis)
MotherDuck$0 (tier gratuito)
Evidence.dev$0 (open source, deploy en Cloudflare Pages)
Cloudflare Access$0 (hasta 50 usuarios)
Total$0

El único costo real es tiempo. El ETL tomó unas semanas construirlo. Los dashboards, otros días. El mantenimiento es mínimo.


Este sistema no escala a millones de filas ni a decenas de analistas. Para eso existen otras soluciones. Pero para una PyME que necesita visibilidad sobre sus operaciones sin contratar un equipo de datos — funciona perfectamente.