Flujo Comercial Unificado
Solicitudes Comerciales con múltiples proyectos por SC, Solicitudes de Levantamiento independientes con calendario de visitas, vinculación SL→SC y PDF de respaldo. Reemplaza la intranet vieja y los correos.
Industria minera — fabricación de productos antidesgaste para procesos de extracción y obtención de minerales. · Desarrollo Web
Una plataforma a medida que digitaliza y orquesta el flujo end-to-end de una empresa industrial: desde que Comercial recibe el requerimiento del cliente hasta que Despacho genera la guía. Reemplaza un ecosistema fragmentado de Excel, correos y una intranet legada por un único sistema con trazabilidad, paralelismo entre áreas y visibilidad operativa real.
Cliente
Busanc
Duración
≈8 meses de desarrollo activo (kickoff octubre 2025 → marcha blanca abril 2026), con levantamiento en terreno en las instalaciones de Busanc en Chile durante toda la fase de descubrimiento.
En producción
En marcha blanca desde abril 2026 (segundo mes) con un usuario activo por área validando flujos. Salida a producción real estimada: junio 2026.
Mockup ilustrativo. El sistema real es privado por acuerdo con el cliente — sin capturas ni datos reales.
Antes de la plataforma, el flujo comercial e industrial vivía repartido entre Excel, correos electrónicos y una intranet legada construida a medida que solo servía para crear la Solicitud Comercial inicial. Una vez generada la SC, todo el seguimiento —aprobaciones, asignaciones de ingenieros, cotizaciones, órdenes de compra, planificación productiva— se coordinaba por correo, sin un sistema único que reflejara el estado real del proyecto.
El dolor más nombrado por el equipo fue lo que ellos mismos llamaron "comentarios de pasillo": información crítica del proyecto (decisiones técnicas, cambios de alcance, observaciones de Ingeniería) que nunca quedaba escrita. Si la persona que tomó la decisión no estaba, esa información se perdía. Sumado a esto, los formularios de SC tenían campos opcionales que en la práctica nunca se completaban, obligando al Jefe de Ingeniería a inferir o preguntar verbalmente lo que faltaba, con el costo de tiempo y errores que eso implica.
Comercial no tenía visibilidad del avance una vez que la SC pasaba a Ingeniería: no sabía si estaba en revisión, en costos, esperando a Hispana, ni cuándo esperar respuesta. No había forma de estimar tiempos de entrega al cliente porque no había forma de saber la carga real de cada área. Las cotizaciones llegaban como planillas Excel que Comercial debía rearmar manualmente antes de enviarlas al cliente, con riesgo de error y reproceso. Las cotizaciones tienen vigencia legal de 30 días, así que cualquier demora se traducía en negocios perdidos.
A nivel productivo, la Orden de Compra del cliente llegaba a Comercial y se distribuía por correo a Planificación y a Evaluación & Costos, generando duplicaciones, intermediarios innecesarios y cero trazabilidad de quién recibió qué y cuándo. Los proyectos repetitivos —que técnicamente no requieren pasar por Ingeniería— igual seguían el flujo completo por inercia. Todo esto en un contexto de crecimiento sostenido, donde el equipo sentía que el método actual ya no escalaba.
La plataforma unifica el flujo completo con un modelo componente-céntrico: cada componente comprado de un proyecto avanza independientemente por sus etapas productivas, con su propia Orden de Trabajo, plantilla de proceso y métricas de tiempo. Esto reemplaza el flujo lineal antiguo que obligaba a esperar a que todo el proyecto pasara de un área a otra.
El cambio estructural más importante es el trabajo en paralelo entre Ingeniería, Hispana (proveedor metálico interno) y Evaluación & Costos: a medida que Ingeniería va guardando componentes, las áreas siguientes pueden ir trabajando sobre ellos sin esperar el cierre completo de la etapa anterior. Cada área tiene acciones explícitas de "Guardar" (avance parcial) y "Cerrar" (etapa terminada), con reglas de dependencia que impiden cierres prematuros. Esto reduce dramáticamente los tiempos de cotización y permite a Comercial dar fechas estimadas reales al cliente.
El sistema cubre 24+ módulos de negocio: SC y Solicitudes de Levantamiento, proyectos jerárquicos con códigos correlativos y versionamiento (R1, R2, …), catálogo de materiales y productos comerciales reutilizables, cotizaciones con descuentos y multimoneda (CLP/UF/USD), revisión de Orden de Compra en dos pasos, planificación con plantillas de proceso configurables, dashboard de capacidad por área, módulos productivos dedicados (Metálico, Goma, Pintura, Calidad, Bodega), guías de despacho con soporte parcial/consolidado e historial de proyectos para recotización. Una capa transversal de Activity Log inmutable registra cada acción del sistema — la regla operativa del proyecto es "lo que no está en el sistema, no existe".
Está dimensionado para escalar de los ~6 usuarios actuales en marcha blanca a ~32 usuarios concurrentes una vez en producción plena, con potencial de crecimiento conforme se integren más áreas operativas y dashboards gerenciales.
~32
usuarios concurrentes proyectados
Producción plena (~6 activos hoy en marcha blanca). Estimado del cliente.
24+
módulos de negocio integrados
Cubren desde SC hasta despacho y almacenamiento.
10
roles con RBAC granular
Permisos por rol + por usuario, con guards globales en backend.
100%
trazabilidad de acciones
Activity Log inmutable cubre cada cambio de estado, edición y transición.
Monorepo Turborepo con dos aplicaciones principales: frontend Next.js 16 (App Router, React 19) y backend NestJS 11 con arquitectura modular por dominio (cada módulo posee su propio schema.ts de Drizzle, service.ts, controller.ts y DTOs). Base de datos PostgreSQL en Azure, almacenamiento de planos y documentos en Azure Blob Storage (con planos en modo solo-visualización para prevenir fugas), autenticación JWT con Passport y triple guarda global a nivel backend: JwtAuthGuard + RolesGuard + PermissionsGuard para RBAC granular. Todas las fechas se persisten y muestran en horario de Chile (GMT-3). El frontend usa TanStack Query para estado servidor, TanStack Form + Zod para validación, TanStack Table para grids complejos, Jotai/Zustand para estado local atómico y @react-pdf/renderer para generar cotizaciones, guías y reportes en el navegador.
Necesitábamos un framework que escalara a 24+ módulos manteniendo navegación rápida y server components donde tuviera sentido. App Router nos dio layouts anidados naturales para una app con sidebar persistente y muchos sub-flujos.
La aplicación es claramente dominio-por-dominio (Comercial, Ingeniería, Hispana, Producción…). NestJS forzó una estructura modular limpia desde el día uno, con DTOs validados, guards globales y módulos auto-contenidos — muy difícil de degradar con el tiempo.
Drizzle nos dio tipado de extremo a extremo sin la pesadez de Prisma ni perder cercanía al SQL real. Cada módulo del backend define su propio schema.ts y Drizzle los glob-colecta — coherente con la arquitectura por dominio.
El flujo entre áreas implica que el mismo dato cambia desde muchas pantallas (Comercial guarda, Ingeniería invalida, Hispana refetcha). El cache invalidation declarativo nos ahorró mucha gimnasia.
Los formularios son largos (proyectos con componentes, materiales, costos, documentos…). Necesitábamos validación tipada compartida entre front y back y soporte real para arrays anidados sin reventar la performance.
Compartir tipos entre frontend y backend sin duplicar contratos. Los paquetes shared-types, eslint-config y typescript-config mantienen consistencia entre apps y aceleran CI con caché incremental.
Recomendación nuestra para consolidar toda la app en un solo cloud y simplificar facturación, seguridad y soporte. Blob Storage encaja perfecto para planos pesados con control de acceso por URL firmada. El despliegue definitivo aún se está evaluando — podría quedar 100% en Azure o partir el frontend en Vercel.
Necesitábamos un sistema de componentes accesible (Radix) que pudiéramos modificar sin pelear con una librería opinada. shadcn nos dio velocidad de partida y control total del diseño industrial sobrio que pide el rubro.
Solicitudes Comerciales con múltiples proyectos por SC, Solicitudes de Levantamiento independientes con calendario de visitas, vinculación SL→SC y PDF de respaldo. Reemplaza la intranet vieja y los correos.
Ingeniería, Hispana y Evaluación & Costos trabajan simultáneamente sobre los componentes a medida que se crean, con acciones de "Guardar" y "Cerrar" y reglas de dependencia que impiden cierres prematuros.
Cada componente comprado tiene su propia OT con plantilla de proceso configurable (Metálico → Goma → Pintura → Calidad → Despacho, con áreas repetibles), avanzando independientemente del resto del proyecto.
Cada acción genera un registro inmutable (entityType, action, previousValue, newValue, userId, metadata). Timeline por proyecto, vista de admin global y dashboards de tiempos por etapa.
Visualiza la carga planificada vs capacidad configurada (trabajadores × horas/día) por área productiva, con detección de sobrecarga, heatmap calendario y tarjetas de utilización.
Genera guías con info del proyecto, accesorios con cantidad restante validada, BOM de referencia, planos del componente y etiqueta Zebra. Soporta despacho parcial, total y consolidación multi-proyecto.
Octubre 2025
Reuniones de descubrimiento con Comercial, Ingeniería y Evaluación & Costos. Visitas en sitio a las instalaciones de Busanc en Chile para mapear el flujo end-to-end.
Noviembre 2025
Setup del monorepo Turborepo, autenticación, RBAC, esquema de base de datos y primeros módulos (SC, proyectos, materiales).
Dic 2025 – Mar 2026
Trabajo en paralelo entre áreas, modelo componente-céntrico, cotizaciones con multimoneda, revisión de OC, módulos productivos, Activity Log y dashboards.
Abril 2026
Plataforma en uso por un usuario activo de cada área (~6 personas), validando flujos reales contra operación cotidiana. Iteración basada en feedback.
Junio 2026
Onboarding de los ~32 usuarios productivos y operación plena del sistema como reemplazo del flujo de Excel + correos. Estimado.
Construyo sistemas a medida de extremo a extremo. Conversemos.