SC-CRM
Construimos SC-CRM para cerrar la grieta entre los sistemas de una empresa mediana mexicana: vender, facturar y contabilizar como un solo flujo en una sola base de datos. Modelamos 13 entidades en PostgreSQL bajo multi-tenancy real (cada registro lleva su organizationId, el JWT lo transporta y el middleware lo inyecta en cada request), levantamos una API REST con CRUD validado para las 7 entidades de negocio, y montamos un pipeline de ventas Kanban con valor ponderado por probabilidad y arrastrar-y-soltar. Para lo fiscal no reinventamos la rueda: el modelo de factura guarda UUID, XML y metadata del CFDI 4.0, y el timbrado SAT se delega al API de Omnifiscal, manteniendo el cumplimiento en un solo lugar. Todo sobre Next.js, React y Prisma, con un sistema de diseño editorial coherente, PWA instalable y deploy en Docker con CI/CD por rama. La prueba está en el código: 11 áreas funcionales, más de 30 páginas y 19 endpoints sobre un esquema de 13 modelos.
- Categoría
- CRM
- Estado
- Plataforma propia
El problema
La empresa mediana mexicana corre su negocio en tres mundos que no se hablan: el Excel de la fuerza de ventas, el sistema de facturación CFDI, y la contabilidad en CONTPAQi o Aspel. El problema no está en cada sistema, está entre ellos: una oportunidad ganada se vuelve a teclear como cliente, otra vez como factura, otra vez como asiento contable. Cada salto pierde datos, suma errores y borra la trazabilidad de lead a cobro. Los ERP que sí integran todo (SAP, Oracle) cuestan más de $200,000 MXN y se diseñaron para escritorios, no para un país que opera desde el celular.
La solución
- Pipeline de ventas tipo Kanban con etapas (lead, calificación, propuesta, cierre), valor ponderado por probabilidad de cierre, días en etapa y tasa de conversión; arrastrar-y-soltar con dnd-kit
- Módulo CRM completo de ventas: clientes con RFC y uso CFDI, oportunidades, pipeline y cotizaciones, todos sobre la misma entidad de empresa
- API REST multi-tenant con CRUD real para 7 entidades de negocio (clientes, proveedores, productos, facturas, pagos, plan de cuentas, asientos), con validación Zod, paginación y búsqueda
- Facturación con CFDI 4.0: el modelo de factura guarda UUID, XML timbrado y metadata; el timbrado SAT se delega al API de Omnifiscal en vez de reimplementarse
- Contabilidad de partida doble: plan de cuentas jerárquico (5 tipos), asientos con líneas ligadas a cliente/proveedor/producto, y reportes (estado de resultados, balance, flujo de caja, antigüedad de saldos)
- Multi-tenancy real: toda entidad de negocio lleva organizationId, el JWT lo transporta y el middleware lo inyecta en cada request para aislar los datos por empresa
- Autenticación propia con sesión segura y roles (owner, admin, finanzas, viewer)
- Sistema de diseño editorial coherente en toda la app (radio cero, sólo Geist Mono, jerarquía por opacidad, 3 temas incluido OLED) con componentes compartidos PageHeader/StatCard/FilterBar
- PWA instalable mobile-first y empaquetado en contenedor con pipeline CI/CD (deploy por rama: develop/staging/main)
El resultado
- 13 modelos de datos y 6 enums en el esquema PostgreSQL
- 11 áreas funcionales y más de 30 páginas implementadas en la app
- 19 endpoints de API (auth + CRUD de 7 entidades de negocio + healthcheck), con validación Zod, paginación y filtrado por empresa
- Pipeline con valor total y valor ponderado por probabilidad calculados sobre las oportunidades en vivo
Stack técnico
- Next.js
- React
- TypeScript
- PostgreSQL
- PWA instalable