Llega un momento en toda organización de Salesforce en que alguien hace una pregunta sencilla y nadie sabe responder.
La nuestra fue: «¿Por qué este proveedor figura como incumplidor si su seguro está vigente?»
La respuesta cruzaba una fórmula, dos Flows, un lote Apex y una condición de carrera. Nadie podía seguir los seis componentes; el estado era erróneo y cualquier arreglo amenazaba con romper otra cosa.
Entonces supimos que no íbamos a reparar Salesforce. Íbamos a reemplazarlo.
Lo que Salesforce hacía realmente
No era un CRM, sino una plataforma operativa para gestionar proveedores, cumplimiento, seguros y altas, construida sobre tecnología diseñada para seguir oportunidades y cerrar ventas.
1,5 millones de registros, 51 objetos, 9.500 proveedores y 608 componentes: 37 Flows, 15 triggers, 387 clases Apex, 132 LWC, 33 lotes y más de 90 fórmulas.
Solo 12 de los 37 Flows estaban activos. Otros 25 seguían desplegados como minas que nadie se atrevía a retirar.
Account representaba clientes, proveedores y corredores. Cada regla debía preguntar primero qué tipo de cuenta era.
Pagábamos más de 200.000 USD al año por la hoja de cálculo más cara del edificio.
Por qué no nos quedamos
Lo convencional era reparar lo existente: mejor administración, refactorizar Flows y limpiar Apex. Lo valoramos.
Pero el problema era que el modelo de datos no coincidía con el dominio. Mejores Flows no corrigen Account ni vuelven determinista una lógica dispersa.
Quedarse costaba licencias, estimaciones de tres meses, lógica inexplicable y trabajo manual creado porque la automatización no automatizaba.
Lo que construimos
Sustituimos 608 componentes por 12 contextos sobre PostgreSQL, FastAPI, React, Temporal, Celery y Redis.
El motor de cumplimiento se convirtió en un evaluador Python puro y determinista con CEL, probado de forma aislada y capaz de explicar cada incumplimiento.
Documentamos las decisiones en 37 ADR para que el siguiente equipo no tenga que reconstruir el sistema.
Migramos 509.000 registros en ocho olas idempotentes y transaccionales, con validación de conteos, claves y reglas.
Analizamos más de un millón de líneas exportadas para trazar las dependencias.
Las partes difíciles
Seré honesto sobre lo que casi nos venció.
El problema de la tabla intermedia. La tabla tenía dos registros; las 9.518 relaciones reales estaban ocultas en Account. No verlo habría eliminado el 99,98 % de las relaciones.
Fórmulas como verdad. Las fórmulas parecen datos, pero son cálculo. Reconstruimos más de 90 para recuperar la intención como código explícito y comprobable.
Migración de campos cifrados. Identificadores fiscales y pagos exigían cifrado de aplicación. El texto claro solo vivió en staging, se cifró al guardar y después se eliminó.
Los Flows «obsoletos» que no lo eran. Tres de 25 aún recibían llamadas. Quitarlos habría roto el estado de unos 800 proveedores; los hallamos siguiendo cada ruta.
El resultado
Más de 4.000 pruebas y 98 % de cobertura. El motor ahora explica un estado en milisegundos y los cambios de tres meses tardan días.
El ETL es una herramienta reutilizable. Hicimos decenas de ensayos antes de un corte discreto, sin 18 meses de doble sistema.
Desaparecen las licencias; el sistema funciona en Docker estándar sobre cualquier nube.
Esquema, ETL, motor, flujos, interfaz y pruebas se completaron en unas 30 sesiones. No 30 meses.
¿Deberías hacerlo?
No siempre. Si usas Salesforce para oportunidades y previsiones, quédate: para eso fue creado.
Pero deberíamos hablar si reconoces alguno de estos casos:
- Tienes más de 20 objetos y cada cambio tarda meses
- La lógica está dispersa y nadie explica la cadena
- Pagas por asiento por una herramienta operativa que no es CRM
- Proveedores y socios necesitan un portal real
- La organización es deuda técnica que nadie se atreve a tocar
El mejor encaje: empresas B2B reguladas de 50–500 empleados y 150.000–800.000 USD anuales en Salesforce, donde cumplimiento o proveedores son centrales.
Empieza con una auditoría operativa de precio fijo y solo lectura. Mapea la organización y entrega un informe honesto, incluso si decides no migrar. Reservar una evaluación de 30 minutos
Ya lo hicimos. Tenemos patrones, arquitectura y cicatrices. Tu migración no tiene por qué ser una odisea de 18 meses.