Migrar datos de Excel y Access a SuiteCRM: guía de importación masiva

Muchas pymes y departamentos comerciales gestionan sus contactos, clientes y oportunidades en hojas de Excel o bases de datos Access. Cuando el negocio crece y estas herramientas se quedan cortas, la migración a un CRM profesional como SuiteCRM es el paso lógico. Pero pasar de una hoja de cálculo con miles de filas (a menudo con datos inconsistentes) a un CRM estructurado requiere un proceso cuidadoso. En esta guía explicamos cómo hacerlo correctamente.

La versión actual en el momento de escribir esta guía es SuiteCRM 8.10 (con la rama 7.15 en soporte extendido), y tanto el asistente de importación como la API REST V8 funcionan igual en ambas. Nada de lo que cuentas aquí depende de la versión concreta: el proceso —limpiar, mapear, importar por módulos y verificar— es el mismo desde hace años.

¿Cuándo tiene sentido dar el salto?

No todas las empresas que usan Excel necesitan un CRM mañana. Estas son las señales que en nuestra experiencia indican que la hoja de cálculo ya se ha quedado pequeña:

  • Más de una persona edita el mismo fichero. En cuanto aparecen los clientes_v3_final_REVISADO.xlsx, has perdido la fuente única de verdad.
  • Nadie sabe en qué punto está una oportunidad sin preguntar al comercial que la lleva.
  • El histórico se pierde. Excel guarda el estado actual, no la conversación que llevó hasta él.
  • No puedes automatizar nada: ni recordatorios, ni seguimientos, ni informes que no sean manuales.
  • Riesgo regulatorio. Un fichero con datos personales circulando por correo es difícil de justificar ante el RGPD.

Si te reconoces en tres o más, la migración compensa. Y si vienes de otro CRM en vez de una hoja de cálculo, el planteamiento cambia bastante: lo tratamos en la guía de migración de HubSpot a SuiteCRM y en la de Salesforce a SuiteCRM.

Los problemas típicos de datos en Excel/Access

Antes de importar nada, hay que ser consciente de los problemas habituales en datos gestionados manualmente:

  • Duplicados: el mismo contacto aparece con variaciones (David García, D. García, david garcia).
  • Formatos inconsistentes: teléfonos con y sin prefijo, fechas en diferentes formatos, direcciones abreviadas.
  • Datos vacíos o incompletos: campos obligatorios para el CRM que no existen en el Excel.
  • Relaciones implícitas: en Excel, la empresa aparece como texto en una columna del contacto. En un CRM, empresa y contacto son entidades separadas relacionadas.
  • Múltiples hojas o tablas: datos dispersos entre varias hojas de Excel o tablas de Access sin relaciones explícitas.
Las cinco fases de una migración de datos de Excel y Access a SuiteCRM: auditoría, mapeo, CSVs, importación y verificación
Las cinco fases de una migración de Excel o Access a SuiteCRM.

Fase 1: Auditoría y limpieza de datos

Esta fase es la más importante y la que más tiempo ahorra a largo plazo. Pasos recomendados:

Inventario de datos

Lista todas las fuentes de datos (archivos Excel, bases Access, otros) y documenta qué contiene cada una: columnas, tipos de datos, volumen de registros.

Deduplicación

Antes de importar al CRM, elimina duplicados en el origen. Herramientas útiles:

  • En Excel: función QUITAR.DUPLICADOS o Power Query para coincidencia fuzzy.
  • En Python: librería pandas con drop_duplicates() y la librería fuzzywuzzy para matching aproximado.
  • OpenRefine: herramienta gratuita excelente para limpieza y deduplicación de datos.

Normalización

  • Estandarizar formatos de teléfono (formato E.164: +34612345678).
  • Normalizar nombres de empresa (decidir si «S.L.», «SL», «S. L.» son lo mismo).
  • Unificar formatos de fecha (ISO 8601: YYYY-MM-DD).
  • Validar emails con expresión regular.
  • Rellenar campos obligatorios con valores por defecto donde sea necesario.

Decide qué NO migras

Es la decisión que más agradece el equipo seis meses después. Un CRM lleno de contactos muertos de hace ocho años no es un activo, es ruido que ensucia los informes y las campañas. Criterios razonables para dejar fuera registros:

  • Contactos sin ninguna interacción registrada en los últimos 3-4 años.
  • Empresas que ya no existen o que cerraron la relación explícitamente.
  • Registros sin email ni teléfono válidos: no son accionables.
  • Datos personales para los que no tienes base legal de tratamiento.

No los borres del origen: guárdalos en un archivo histórico aparte, fuera del CRM. Si algún día hacen falta, están; y mientras tanto no contaminan el día a día.

Documenta las decisiones

Cada regla que apliques —qué se considera duplicado, qué formato de teléfono es el bueno, qué registros se descartan— debe quedar escrita. Cuando dentro de un año alguien pregunte por qué falta un cliente, esa documentación es la respuesta. Si el proyecto es grande, merece la pena apoyarse en documentación funcional bien estructurada desde el principio.

Fase 2: Mapeo a la estructura de SuiteCRM

SuiteCRM organiza los datos en módulos interrelacionados. El mapeo típico desde una hoja de Excel de clientes:

Columna Excel Módulo SuiteCRM Campo SuiteCRM
Nombre empresa Accounts name
CIF/NIF empresa Accounts sic_code o campo custom
Dirección empresa Accounts billing_address_street
Nombre contacto Contacts first_name + last_name
Email contacto Contacts email1
Teléfono contacto Contacts phone_work
Cargo Contacts title
Oportunidad Opportunities name
Valor oportunidad Opportunities amount
Estado oportunidad Opportunities sales_stage

El punto crítico es que una sola fila de Excel a menudo contiene datos que en SuiteCRM pertenecen a módulos diferentes (empresa + contacto + oportunidad). Hay que separarlos en archivos CSV independientes para importar por módulo.

Cómo se descompone una fila de Excel en los módulos Accounts, Contacts y Opportunities de SuiteCRM y sus relaciones
Una fila plana de Excel se convierte en tres registros relacionados dentro de SuiteCRM.

Campos personalizados: cuándo crearlos

Siempre aparecen columnas del Excel que no encajan en ningún campo estándar: sector, número de empleados, comercial asignado, referencia interna. La tentación es meterlos en campos de descripción; el resultado es que después no puedes filtrar ni segmentar por ellos.

Crea campos personalizados desde Admin → Studio ANTES de importar, y hazlo con criterio: cada campo nuevo es un campo que alguien tendrá que rellenar. Una regla práctica: si no vas a filtrar, agrupar o automatizar por ese dato, probablemente no necesita campo propio. Y usa listas desplegables en vez de texto libre siempre que los valores sean finitos —es la única forma de que los informes signifiquen algo.

El CIF y la clave de negocio

Necesitas un identificador estable para detectar duplicados y para relacionar registros entre importaciones sucesivas. En España el CIF/NIF suele ser la mejor clave para empresas y el email para contactos. Guárdalo en un campo personalizado indexado y úsalo como criterio de deduplicación en el asistente de importación: te ahorrará limpiar a mano cientos de registros más adelante.

Fase 3: Preparar los CSVs de importación

Desde Excel o Access, genera CSVs separados:

  1. Accounts.csv: un registro por empresa única (deduplicada).
  2. Contacts.csv: un registro por contacto, con una columna que referencia el nombre de la empresa (para vincular con el Account).
  3. Opportunities.csv: si tienes datos de oportunidades comerciales, un registro por oportunidad referenciando empresa y contacto.

Asegúrate de que los CSVs usen codificación UTF-8 y separador de coma o punto y coma (configurable en el importador de SuiteCRM).

Ejemplo de Accounts.csv

name;billing_address_street;billing_address_city;sic_code;phone_office
Industrias Vega SL;Calle Mayor 12;Valencia;B98123456;+34961234567
Talleres Ríos SA;Pol. Ind. Norte, nave 4;Zaragoza;A50987654;+34976112233

Tres detalles que evitan la mayoría de los errores de importación:

  • Cabeceras con el nombre técnico del campo, no con la etiqueta que ves en pantalla. Así el mapeo es automático y no te equivocas de columna.
  • Sin filas vacías ni totales al final. El importador las lee como registros y crea basura.
  • UTF-8 sin BOM. Si al importar ves «Andalucía» convertido en caracteres raros, es esto. Excel guarda por defecto en la codificación del sistema: usa «Guardar como → CSV UTF-8» explícitamente.

Desde Access

Microsoft Access permite exportar tablas y consultas a CSV directamente. Para relaciones complejas, crea una consulta que combine las tablas necesarias y exporta el resultado. Alternativamente, usa Python con la librería pyodbc para conectar directamente a la base Access:

import pyodbc
import pandas as pd

conn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\datos\clientes.accdb;')
df = pd.read_sql('SELECT * FROM Clientes', conn)
df.to_csv('contacts.csv', index=False, encoding='utf-8')

Fase 4: Importar en SuiteCRM

Importador nativo

SuiteCRM tiene un importador CSV integrado accesible desde cada módulo (Accounts → Import). El asistente permite:

  1. Subir el archivo CSV.
  2. Configurar delimitador, codificación y formato de fecha.
  3. Mapear columnas del CSV a campos de SuiteCRM (se puede guardar el mapeo para reutilizar).
  4. Configurar detección de duplicados (por email, nombre o campo custom).
  5. Previsualizar antes de confirmar la importación.
  6. Ejecutar y revisar el log de errores.

API REST para volúmenes grandes

Para importaciones de más de 10.000 registros, el importador web puede ser lento. En estos casos, usar la API REST V8 con un script que procese los datos en lotes es más eficiente y permite mejor gestión de errores.

Orden de importación

El orden no es opcional, porque las relaciones dependen de que el registro destino ya exista:

  1. Accounts primero. Sin empresas no hay nada a lo que vincular.
  2. Contacts después, con la columna que referencia el nombre (o el CIF) de la empresa.
  3. Opportunities al final, referenciando empresa y contacto.
  4. Actividades, notas y documentos históricos, si los migras, en último lugar.

Antes de importar: haz una copia

Copia de la base de datos y del directorio de la instancia antes de cada tanda. Deshacer una importación en SuiteCRM es posible desde el historial de importaciones, pero solo dentro de la misma sesión y solo si nadie ha tocado esos registros después. La copia es el plan B que siempre funciona. Si tu instancia está en un servidor propio y estás valorando moverla, este es buen momento: lo tratamos en la guía sobre migrar un ERP o CRM on-premise a la nube.

Fase 5: Verificación y configuración post-importación

  • Verificar conteos: ¿coincide el número de registros importados con el esperado?
  • Muestreo aleatorio: revisar 20-30 registros al azar verificando que todos los campos están correctos.
  • Relaciones: verificar que los contactos están vinculados a sus empresas correctas.
  • Configurar vistas y filtros que el equipo necesitará.
  • Crear dashboards básicos para que el equipo empiece a ver valor inmediato.

Consultas de control que merece la pena lanzar

Más allá del muestreo visual, hay comprobaciones que dan una respuesta objetiva en segundos:

  • Contactos sin account_id: si el número no es cero, el vínculo con la empresa se ha perdido en alguna fila.
  • Cuentas duplicadas por nombre normalizado (sin mayúsculas, sin «SL» ni «S.L.»).
  • Emails repetidos entre contactos distintos: casi siempre son la misma persona duplicada.
  • Oportunidades con importe cero o sin fase asignada.
  • Registros con fecha de creación distinta a la esperada, señal de una importación parcial anterior que no se limpió.

Permisos y seguridad desde el primer día

Acabas de meter toda la cartera comercial en una aplicación web. Antes de dar acceso al equipo: define roles y grupos de seguridad para que cada comercial vea lo que le corresponde, activa la autenticación en dos factores —disponible de forma nativa desde SuiteCRM 8.8— y programa copias de seguridad automáticas verificando de vez en cuando que se pueden restaurar. Mantener la instancia actualizada también cuenta: cada versión de mantenimiento incluye correcciones de seguridad, como repasamos al hablar de SuiteCRM 8.9.

Cuánto tiempo lleva y qué equipo necesitas

La pregunta inevitable. Con la advertencia de que depende mucho del estado de los datos, estos son órdenes de magnitud realistas para una migración desde Excel o Access:

  • Hasta 2.000 registros y datos razonablemente limpios: de una a dos semanas, con una persona dedicada a media jornada.
  • De 2.000 a 20.000 registros con varias fuentes: de tres a seis semanas. Aquí la limpieza y la deduplicación se llevan la mayor parte del tiempo.
  • Más de 20.000 registros, histórico de actividades y campos personalizados: de dos a tres meses, y conviene automatizar la carga por API en vez de usar el asistente.

El reparto de esfuerzo sorprende a casi todo el mundo: alrededor del 60-70% se va en auditar y limpiar, un 20% en mapear y preparar los CSVs, y apenas un 10% en la importación en sí. Si alguien te presupuesta una migración contando solo el último tramo, el proyecto se va a desviar.

En cuanto a perfiles, necesitas tres cosas —no necesariamente tres personas—: alguien que conozca el negocio y pueda decidir qué es un duplicado, alguien con soltura técnica para preparar los datos, y un administrador de SuiteCRM que configure módulos, campos y permisos.

Errores comunes a evitar

  • Importar sin limpiar: la basura que entra es basura que queda. Limpia ANTES de importar.
  • Importar todo de golpe: empieza con una muestra pequeña (100 registros) para verificar el mapeo y detectar problemas antes de importar todo.
  • Olvidar las relaciones: importar contactos sin vincularlos a empresas pierde información valiosa.
  • No formar al equipo: de nada sirve tener datos perfectos en el CRM si el equipo no sabe usarlo.

Y tres más que vemos con frecuencia y salen caros:

  • Migrar y seguir usando el Excel «por si acaso». Si la hoja sigue viva, el CRM nunca será la fuente de verdad. Pon fecha de corte y respétala: a partir de ese día, el Excel es solo lectura.
  • No decidir quién es el dueño del dato. Sin alguien responsable de la calidad del CRM, en seis meses vuelves a tener los mismos duplicados que tenías en Excel.
  • Migrar sin revisar la base legal de los datos personales. El RGPD no distingue entre una hoja de cálculo y un CRM: aprovecha la migración para depurar lo que no deberías estar guardando.

Después de la importación: que el dato siga limpio

Una migración impecable se degrada en meses si nadie cuida lo que entra después. Cuatro medidas sencillas que funcionan:

  • Campos obligatorios en la creación de cuentas y contactos, con el mínimo imprescindible para que nadie los esquive.
  • Comprobación de duplicados activada en los módulos principales, con el CIF y el email como claves.
  • Listas desplegables en vez de texto libre en todo lo que se use para segmentar o informar.
  • Una revisión trimestral de duplicados y registros sin actividad, con alguien concreto responsable de ejecutarla.

A partir de ahí es cuando el CRM empieza a devolver la inversión: informes fiables, automatizaciones que se pueden construir encima y, si te interesa, workflows e informes asistidos por IA sobre los datos de SuiteCRM. Nada de eso funciona sobre datos sucios.

Conclusión

Migrar de Excel o Access a SuiteCRM es una inversión que transforma la gestión comercial de una empresa. La clave del éxito está en la limpieza previa de datos y en un mapeo riguroso a la estructura del CRM. Una vez completada la migración, el equipo dispondrá de un CRM profesional sin costes de licencia que escala con el negocio.

Si tuviéramos que resumirlo en tres frases: limpia antes de importar, separa las entidades antes de mapear y verifica con datos, no con la sensación de que ha ido bien. El resto es seguir el orden de los módulos y tener una copia de seguridad a mano.

Y una última idea: la migración no termina el día que los datos están dentro. Termina cuando el equipo comercial abre SuiteCRM por costumbre en lugar de abrir el Excel. Reservar unas horas de formación y acompañamiento las primeras semanas suele marcar más diferencia que cualquier refinamiento técnico del proceso de importación.

🚀 ¿Necesitas un CRM que se adapte a tu negocio?

En Keliam implantamos y personalizamos soluciones CRM y ERP. Migración de datos, integración con tus herramientas y soporte técnico continuo.

Solicita tu consulta gratuita →

Scroll al inicio