Todos los lunes alguien de tu equipo pasa entre una y tres horas haciendo lo mismo: abre el CRM, exporta los datos de la semana, los pega en Excel, calcula los totales, hace el gráfico y arma el email o la presentación para la reunión de las 10am.
Es trabajo necesario. Pero no es trabajo que requiera un humano — requiere un sistema.
En este artículo te explico cómo construir ese sistema: un workflow en n8n que cada lunes a las 7am extrae automáticamente los datos de la semana anterior, los procesa, genera un resumen en lenguaje natural y lo envía directo a los destinatarios correctos.
Sin Excel. Sin esfuerzo manual. Sin que nadie tenga que recordar hacerlo.
Por qué los reportes manuales son un problema
El problema no es solo el tiempo que consumen. Es lo que pasa cuando dependen de una persona:
- Si esa persona está de vacaciones, el reporte no llega
- Si tiene otras prioridades el lunes de mañana, llega tarde
- Cada semana el formato cambia levemente según quién lo hace
- Los errores de copy-paste se acumulan sin que nadie los detecte
- El análisis real (por qué subió o bajó un indicador) se hace poco o nunca
Un sistema automático resuelve todos estos problemas de raíz: llega siempre, puntual, con el mismo formato y con análisis consistente.
El sistema que vas a construir
Al finalizar este tutorial tendrás un workflow que:
- Se activa automáticamente todos los lunes a las 7am
- Extrae datos de ventas de la semana anterior desde tu CRM o fuente de datos
- Calcula los KPIs principales y los compara con la semana anterior
- Genera un resumen ejecutivo en lenguaje natural con OpenAI
- Envía el reporte por email y/o WhatsApp a los destinatarios definidos
El reporte llega antes de que empiece la reunión semanal. El equipo tiene los números frescos sin que nadie haya tenido que trabajar para obtenerlos.
Paso 1: Define qué datos necesitas
Antes de tocar n8n, define los KPIs que quieres en el reporte. Tener claridad aquí evita construir algo que nadie lee.
KPIs más útiles para la mayoría de los negocios:
- Ventas totales de la semana (en pesos/dólares)
- Número de transacciones
- Ticket promedio
- Comparación con la semana anterior (variación en %)
- Comparación con el mismo período del mes anterior
- Top 3 productos o servicios más vendidos
- Leads nuevos y tasa de conversión
- Cuentas por cobrar / facturas pendientes (si aplica)
Empieza con los primeros cinco. Agregar más es fácil una vez que el sistema está funcionando.
Paso 2: Conecta tu fuente de datos
La fuente de datos depende de cómo gestionas tus ventas actualmente.
Si usas HubSpot:
n8n tiene integración nativa con HubSpot. El nodo "HubSpot" puede buscar deals cerrados en un rango de fechas específico. La query para la semana anterior:
Filtro: fechaCierre >= [lunes semana anterior] AND fechaCierre <= [domingo semana anterior]
AND etapa = "closedwon"
Si usas un Google Sheet como registro de ventas:
Usa el nodo "Google Sheets" para leer las filas donde la fecha de venta cae en la semana anterior. n8n puede filtrar directamente usando expresiones de fecha.
Si usas Shopify:
El nodo "Shopify" de n8n permite consultar órdenes por rango de fechas. Usa el endpoint de órdenes con los parámetros created_at_min y created_at_max.
Si usas otro CRM o sistema:
La mayoría de los CRMs modernos tienen API REST. En n8n, el nodo "HTTP Request" puede consultar cualquier API que entregue datos en JSON. Si tu CRM tiene API, puede conectarse a n8n.
Paso 3: Calcula los KPIs en n8n
Con los datos crudos en n8n, usa el nodo "Code" (JavaScript) para hacer los cálculos:
// Datos de la semana actual
const ventasSemanaActual = items[0].json.ventas;
const ticketsSemanaActual = items[0].json.tickets;
// Calcular KPIs
const totalVentas = ventasSemanaActual.reduce((sum, v) => sum + v.monto, 0);
const numTransacciones = ventasSemanaActual.length;
const ticketPromedio = totalVentas / numTransacciones;
// Datos de la semana anterior (del segundo item)
const totalSemanaAnterior = items[1].json.totalVentas;
const variacionSemana = ((totalVentas - totalSemanaAnterior) / totalSemanaAnterior * 100).toFixed(1);
// Top productos
const productosCounts = {};
ventasSemanaActual.forEach(v => {
productosCounts[v.producto] = (productosCounts[v.producto] || 0) + v.monto;
});
const topProductos = Object.entries(productosCounts)
.sort(([,a], [,b]) => b - a)
.slice(0, 3);
return [{
json: {
totalVentas,
numTransacciones,
ticketPromedio: ticketPromedio.toFixed(0),
variacionSemana: `${variacionSemana > 0 ? '+' : ''}${variacionSemana}%`,
topProductos
}
}];
Paso 4: Genera el resumen con OpenAI
Los números son útiles. Un análisis en lenguaje natural que los contextualiza es más útil todavía.
Configura el nodo "OpenAI" con este prompt:
Eres un analista de negocio. Con base en los siguientes KPIs de ventas, genera un resumen ejecutivo de máximo 150 palabras.
Datos de la semana:
- Ventas totales: ${{totalVentas}}
- Número de transacciones: {{numTransacciones}}
- Ticket promedio: ${{ticketPromedio}}
- Variación vs semana anterior: {{variacionSemana}}
- Top 3 productos: {{topProductos}}
El resumen debe:
1. Empezar con la cifra más relevante (si fue buena o mala semana)
2. Destacar el cambio más significativo vs la semana anterior
3. Mencionar el producto estrella de la semana
4. Si hay una variación negativa > 15%, agregar una nota de atención
5. Terminar con una frase orientada a la acción para la semana que comienza
Tono: directo, ejecutivo, sin adornos.
Resultado típico:
Semana del 5 al 11 de mayo — Resumen de ventas
Ventas de $47.850, un +12% sobre la semana anterior. El número de transacciones (134) fue el más alto del mes, impulsado principalmente por el lanzamiento de la colección de invierno que representó el 35% de las ventas de la semana.
El ticket promedio subió a $357, señal de que los clientes están comprando artículos de mayor valor. El producto estrella fue la chaqueta impermeable modelo X3 con 28 unidades vendidas.
Para esta semana: Mantener el impulso del lanzamiento con una campaña de recordatorio para quienes visitaron el sitio pero no compraron.
Paso 5: Envía el reporte
Por email (Gmail):
Usa el nodo "Gmail" para armar el email con el resumen y los KPIs formateados. Puedes agregar una tabla HTML simple con los números principales antes del resumen de texto.
Por WhatsApp:
Si el equipo directivo prefiere recibir el reporte por WhatsApp, usa el nodo "WhatsApp Business" para enviar el mensaje formateado. WhatsApp admite texto en negrita usando asteriscos, lo que permite dar jerarquía al contenido.
Destinatarios dinámicos:
Si necesitas enviar el mismo reporte a múltiples personas, configura una lista de destinatarios en Google Sheets. n8n lee la lista y envía a todos automáticamente. Para agregar o quitar destinatarios, solo editas la hoja — no hay que tocar el workflow.
Alertas automáticas para números fuera de rango
Agrega una capa de inteligencia al sistema: alertas cuando algo merece atención urgente.
Configura un nodo "IF" en n8n que verifique:
- Si las ventas cayeron más del 20% vs la semana anterior → alerta inmediata
- Si el ticket promedio bajó más del 15% → notificación
- Si hay cero transacciones un día → alerta crítica
Las alertas llegan por un canal separado (Slack, Telegram o WhatsApp) con el contexto del problema para que el equipo pueda actuar ese mismo día.
Variantes del sistema
Reporte diario (en lugar de semanal):
Cambia el Schedule Trigger de "lunes a las 7am" a "todos los días a las 7am" y ajusta el rango de fechas al día anterior. Útil para negocios de e-commerce o restaurantes con alto volumen diario.
Reporte por canal de ventas:
Si vendes por múltiples canales (tienda física, e-commerce, marketplace, WhatsApp), el sistema puede generar un reporte consolidado con desglose por canal.
Dashboard en vivo (en lugar de reporte periódico):
Para negocios que necesitan datos en tiempo real, n8n puede alimentar un dashboard en Google Looker Studio o Notion que se actualiza automáticamente cada hora.
El tiempo que recuperas
Para una empresa con 5 personas en el equipo donde alguien dedica 2 horas cada semana a generar reportes:
- Horas recuperadas al año: 104 horas (2h × 52 semanas)
- Valor de esas horas (a $20 USD/hora): $2.080 USD/año
- Costo del sistema (n8n + OpenAI): ~$360 USD/año
- ROI del sistema: 478%
Y eso sin contar el valor de tener los datos siempre disponibles, puntuales y sin errores.
¿Quieres que lo configure para tu empresa?
El sistema que describí en este artículo lo implemento con mis clientes en una semana. El proceso incluye conectar tu fuente de datos específica, definir los KPIs que más importan a tu negocio y configurar los destinatarios y canales de entrega.
El resultado: tus reportes llegan solos, sin que nadie tenga que recordar hacerlos.