Volver a proyectos

PROYECTO 02 · CASO

Analítica de SLA logístico

En Maxcess International uní dos Excel críticos —el de aduana y el de stock— en una plataforma en vivo hecha con Next.js, Supabase y Power Automate, porque el área comercial necesitaba ver cada SKU de la exportación al disponible sin detener la operación de nadie.

En 30 segundos

Por qué

En Maxcess International uní dos Excel críticos, de aduana y stock, con Supabase y Power Automate, para ver cada SKU de la exportación al disponible sin detener la operación.

PARA QUIÉNÁrea comercial, administración, aduana e inventario
METAStock, tránsito y apartados por SKU, en vivo

Qué construí

  1. Fuente

    Dos Excel —aduana y stock— en OneDrive y SharePoint. Power Automate los carga a la base y guarda fotos históricas, sin cambiar cómo los llenan las áreas.

  2. Modelo

    El SKU es la llave de todo el embarque. Modelo en Supabase para más de 5 usuarios en cuatro roles con permisos por fila, y una tendencia de stock armada con el historial de cortes.

  3. Salida

    Plataforma en vivo en laptop y celular: tablero por etapa, apartados por Strategic Account Manager, avisos semanales y un asistente RAG sobre las fichas técnicas.

Herramientas

  • Excel
  • Power Automate
  • n8n
  • Supabase
  • Next.js
  • TypeScript
  • Azure
  • Cloudflare
  • DuckDB
  • Resend
  • RAG

El caso completo

Dónde empezó

El área comercial de Maxcess International vende con el inventario en la mano: qué hay disponible, qué viene en camino y qué ya está apartado. Esa respuesta vivía en dos Excel robustos, uno de aduana y otro de stock e inventario, que llenan áreas distintas.

Responder por un solo SKU obligaba a cruzar las dos hojas a mano: la información existía, pero no en un mismo lugar ni al mismo tiempo.

El reto

Unir los dos archivos sin pedirle a nadie que cambiara su forma de trabajar: el sistema en Excel ya funcionaba y no podía detenerse ni generar fricción con las áreas.

Y hacerlo de modo que un SKU se pudiera seguir en toda la historia de su embarque: exportación, importación, tránsito internacional, aduana, almacenes y disponible.

Cómo lo abordé

Empecé con maquetas, iteradas con el equipo comercial hasta que las aprobó. Después propuse, por mi cuenta, escalarlo a una plataforma reproducible y verificable, en vivo y alimentada por los datos de sus propios usuarios.

Con el apoyo de las áreas vecinas pulimos los Excel en copias de OneDrive y SharePoint, para que la carga no dependiera de nadie. Con las maquetas aprobadas, diseñé la arquitectura y la documenté antes de construir.

De punta a punta

Ingesta. Un flujo de Power Automate lleva los dos Excel a la base y guarda una foto de cada corte. Las áreas siguen llenando sus hojas como siempre.

Modelo. El SKU es la llave de todo el embarque. En Supabase, sobre PostgreSQL, vive un modelo con migraciones versionadas y permisos por fila para cuatro roles: administrador, Strategic Account Manager, soporte y visitante. Cada corte queda como snapshot, y la comparación entre cortes dice qué se dio de alta, qué se dio de baja y qué cambió en cada registro.

Aplicación. Hecha con Next.js y TypeScript, con componentes accesibles y modo oscuro, se usa igual en laptop y en celular. Los avisos salen cada lunes por correo desde un dominio propio, con un flujo de n8n, y aparecen también en la campana de la plataforma.

Lo que construí

Una plataforma en vivo para más de 5 usuarios, con el SKU al centro de cada pantalla.

  • Tablero: SKUs por etapa, conteo del catálogo, piezas disponibles, en tránsito y datos pendientes, con gráficas en vivo, un mapa de calor y la tendencia de stock por periodo, armada con el historial de cortes.
  • Catálogo por tecnología y marca, con la ficha técnica de cada producto.
  • Embarques e histórico de embarques: cada SKU en su etapa, con filtros por fecha y país.
  • Apartados por Strategic Account Manager, con aviso cuando un SKU se aparta de más.
  • Proyectos armados desde el historial, con su documento en PDF.
  • Snapshots: cada archivo ingerido y sus cambios, registro por registro.
  • Seguimiento: sigues un SKU y te avisa cuando llega, cuando cambia de etapa y cuando cambia su disponible o su apartado.
  • Configuración: preferencias, usuarios y roles, familias, marcas, pendientes y ayuda.

El asistente

MAX responde sobre las fichas técnicas del catálogo. Es un asistente RAG: busca en PostgreSQL por texto completo y por significado, y redacta la respuesta con un modelo de lenguaje a partir de lo que encontró.

Se actualiza cada vez que se reindexa: un indexador compara el corpus con su versión anterior, lo trocea y vuelve a procesar solo lo que cambió. Antes de cada versión, un set de preguntas de prueba revisa que responda con respaldo y que sepa decir que no sabe.

Qué cambió

El área comercial ve en vivo el stock, el tránsito y los apartados de cada SKU, en laptop y en celular, y más de 5 usuarios trabajan sobre la misma información. Administración, aduana e inventario siguen llenando sus Excel como siempre, y ahora sus datos llegan a todos.

Qué aprendí

Que la mejor integración es la que nadie tiene que aprender: respetar cómo trabaja cada área hizo que la plataforma se adoptara. Y que un asistente vale tanto por lo que responde como por lo que reconoce que no sabe.

Lo que sigue

Seguir sumando fichas al corpus del asistente y publicar el repositorio cuando esté listo.

Stack de punta a punta

  1. Fuentes e ingesta

    Los dos Excel, sin cambiar cómo se llenan

    • Excel
    • OneDrive
    • SharePoint
    • Power Automate
    • SheetJS (xlsx)
  2. Base y modelo

    El SKU como llave, con permisos por fila

    • Supabase
    • PostgreSQL
    • SQL
    • Migraciones versionadas
    • Row Level Security
    • DuckDB
    • Azure
  3. Backend

    Rutas, sesiones y validación

    • Next.js
    • TypeScript
    • Node.js
    • Zod
    • Supabase SSR
    • node-postgres
  4. Frontend

    La plataforma en laptop y celular

    • React
    • Next.js App Router
    • Tailwind CSS
    • Radix UI
    • shadcn/ui
    • Lucide
    • next-themes
    • Sonner
  5. Visualización

    Tablero, tendencia y mapa de calor

    • Gráficas propias en React
    • Tailwind CSS
  6. Documentos

    Fichas técnicas y documentos de proyecto

    • PDF.js
    • PDFKit
    • SheetJS (xlsx)
  7. IA

    El asistente MAX

    • RAG
    • Embeddings de OpenAI
    • Modelo de chat de DeepSeek
    • Búsqueda de texto completo de PostgreSQL
    • pgvector
  8. Avisos y correo

    El boletín de los lunes y la campana

    • n8n
    • SMTP con dominio propio
    • Resend
    • Outlook
  9. Calidad

    Pruebas y compuertas antes de cada versión

    • Vitest
    • Testing Library
    • jsdom
    • Playwright
    • ESLint
    • Hooks de git
    • Python
  10. Entrega

    Publicar y servir

    • Vercel
    • Cloudflare
    • GitHub

Capturas · 12

Datos de prueba o difuminados: sin cifras reales de clientes.