Integrar sistemas sin crear silos se consigue decidiendo antes qué sistema manda sobre cada dato y quién responde de cada campo. La parte técnica es la fácil: el silo nace cuando dos sistemas guardan lo mismo y ninguno es la referencia. Así lo planteamos en los proyectos de integración de sistemas empresariales en Madrid.
Mientras eso no esté escrito el coste es diario: se factura a una dirección antigua y cada informe llega con una cifra distinta según de dónde se exportó.
Al terminar tendrás el orden de decisiones del proyecto, con el transporte decidido en la comparación entre API, webhook y cola de mensajes.
Qué es un silo de datos
Un silo es información que solo sirve dentro del sistema que la guarda, porque nadie más puede consultarla con garantías. No hace falta aislamiento técnico: basta con que el dato viva en dos sitios editables sin que ninguno sea el bueno.
Cómo se crea un silo sin querer
El patrón es parecido siempre. Se conecta el CRM con el ERP para que los clientes nuevos pasen, en una dirección, sin devolver nada. A los seis meses administración corrige datos fiscales en el ERP y el CRM sigue con los antiguos: se integró y se duplicó. La otra vía es la copia intermedia que se queda cuando alguien monta una base auxiliar y nadie la retira.
El Orden de Decisiones Antes de Escribir Código
- Inventario de sistemas: qué software hay en producción, incluido el que nadie reconoce como tal. La hoja de cálculo que sostiene un proceso cuenta.
- Inventario de datos: qué entidades comparten. Clientes, artículos, pedidos, facturas.
- Maestro por entidad: qué sistema manda sobre cada una y en qué campos. El ERP puede mandar en el cliente fiscal y el CRM en su contacto comercial.
- Responsable por campo: alguien que responde de que esté bien. Sin nombre, se degrada.
- Transporte y frecuencia: por flujo, cómo viaja el dato y cada cuánto.
Esas cinco decisiones se toman en una sala, no en una rama de código. Es el trabajo previo de levantar el mapa de procesos antes de comprar.
Sincronizar o consultar en tiempo real
Sincronizar es copiar el dato y mantener las dos copias al día. Consultar en tiempo real es dejarlo donde está y pedirlo cuando hace falta. La copia se lee rápido y crea dos verdades; la consulta no duplica, pero depende de que el origen responda.
La regla práctica: sincroniza lo que se usa para operar y debe estar disponible aunque el origen esté caído, como el precio del pedido. Consulta en tiempo real lo que cambia mucho, como el stock. Lo que sincronices necesita una capa intermedia que traduzca y mapee identidades, tras cerrar qué sincronizar entre ERP y CRM.
Gobierno del dato y lo que exige el RGPD
Cuando el dato es personal, el maestro deja de ser una preferencia técnica. El RGPD exige que los datos sean exactos y, si fuera necesario, actualizados, y que se adopten todas las medidas razonables para rectificar sin dilación los inexactos, según el artículo 5 del Reglamento General de Protección de Datos. Y obliga al responsable a demostrarlo, lo que significa saber de dónde salió cada campo.
Con el dato duplicado en cuatro sistemas sin maestro, una rectificación es una búsqueda manual; con el maestro escrito se corrige en un sitio.
Señales de que la Integración Está Creando un Silo
La más clara: alguien exporta de un sistema e importa en otro a mano, aunque sea una vez al mes. Luego, que dos informes de lo mismo no cuadren.
Medir si funcionó es la otra mitad. Desde el primer mes se cuenta cuántos registros divergen, cuántas horas cuesta cuadrar a mano y cuánto tarda un cambio en propagarse del maestro al resto. Si las tres bajan, la integración hace su trabajo, y se ve en un panel que lea de una fuente única.
CodeZone Pro Tip: cruza clientes entre los dos sistemas por su identificador fiscal y saca cada mes los que faltan o divergen, para detectar el silo antes de que lo encuentre un cliente enfadado.
-- Control mensual de salud de la integracion ERP - CRM.
-- Se cruza por CIF normalizado, no por nombre: el nombre comercial
-- cambia y produce falsos duplicados en cuanto alguien lo edita.
WITH erp AS (
SELECT upper(regexp_replace(nif, '[^A-Za-z0-9]', '', 'g')) AS cif,
trim(nombre) AS razon_social,
lower(trim(email)) AS email,
telefono, actualizado_en
FROM erp.clientes
WHERE baja_en IS NULL
),
crm AS (
SELECT upper(regexp_replace(tax_id, '[^A-Za-z0-9]', '', 'g')) AS cif,
trim(company_name) AS razon_social,
lower(trim(email)) AS email,
phone AS telefono, updated_at AS actualizado_en
FROM crm.cuentas
WHERE is_deleted = false
)
SELECT
coalesce(e.cif, c.cif) AS cif,
CASE
WHEN c.cif IS NULL THEN 'solo_en_erp'
WHEN e.cif IS NULL THEN 'solo_en_crm'
ELSE 'divergente'
END AS incidencia,
-- Se listan los campos en conflicto para priorizar: un email distinto
-- rompe el envio de facturas, una razon social distinta solo molesta.
nullif(e.email, c.email) AS email_erp,
nullif(c.email, e.email) AS email_crm,
nullif(e.telefono, c.telefono) AS telefono_erp,
-- El sistema actualizado mas tarde suele tener el dato bueno,
-- pero es una pista para revisar, nunca un criterio automatico.
greatest(e.actualizado_en, c.actualizado_en) AS ultimo_cambio
FROM erp e
FULL OUTER JOIN crm c ON e.cif = c.cif
WHERE c.cif IS NULL
OR e.cif IS NULL
OR e.email IS DISTINCT FROM c.email
OR e.telefono IS DISTINCT FROM c.telefono
ORDER BY incidencia, ultimo_cambio DESC;Ejecutada el día uno de cada mes, esa consulta convierte una sospecha en una lista corta de registros concretos: la diferencia entre corregir doce fichas en una mañana y descubrirlo cuando la factura llega a la dirección equivocada.
Lo que Pasa Si Nadie Responde del Dato
Una integración sin maestro ni responsables aguanta mientras el volumen es pequeño y las mismas personas lo arreglan de memoria. Falla cuando se van, y ahí el coste no es rehacer la integración: es que las decisiones de los últimos meses salieron de cifras que nadie puede reconstruir.
Empieza por la entidad que más duela y escribe su maestro, su responsable y su control de divergencias antes de pasar a la siguiente. Donde más se nota es en lo que expone el dato hacia fuera: un portal de clientes conectado al ERP y el portal donde el proveedor ve sus pedidos.
El síntoma previo está a la vista: el ERP y el CRM dejan de comunicarse y alguien pone una hoja de cálculo en medio. Si vas a llevar ese dato a un modelo de IA, resuelve antes el acceso a documentos y datos internos y el CRM a medida frente al comercial.
Si tienes varios sistemas y ninguno es la referencia, ponemos orden en qué manda sobre qué.