Español

Cómo exportar limpiamente desde Salesforce: la guía de exportación lista para la migración

Un equipo de Sales Ops en una empresa SaaS de mercado medio pasó seis semanas preparando su migración de CRM. Exportaron Contactos y Cuentas, verificaron unos pocos registros y dieron por terminada la exportación. Tres días después del go-live, su nuevo CRM mostraba cero historial de actividades para 4.200 contactos. El equipo no había exportado Tareas ni Eventos, los dos objetos de Salesforce donde vivía cada registro de llamada, correo y reunión. Tres años de historial de interacciones, perdidos.

La exportación en sí tomó 20 minutos. La recuperación tomó tres semanas de reconstrucción manual desde archivos de correo y la memoria de los representantes. No todos los registros pudieron recuperarse.

Esta guía describe el proceso de exportación de Salesforce que realmente preserva todo: objetos, relaciones, campos personalizados e historial de actividades. Sígalo en orden. La secuencia importa.


Qué datos de Salesforce se mapean a qué

Antes de tocar las herramientas de exportación, necesita entender qué está extrayendo. Salesforce organiza los datos en objetos. La mayoría de los equipos conoce los obvios. Los que los equipos pasan por alto son los que causan problemas. Este trabajo de mapeo se conecta directamente con el mapeo de campos entre sistemas heredados y nuevos: no puede construir un mapa de campos confiable sin saber primero qué objetos está extrayendo.

Según la investigación de Gartner sobre calidad de datos en CRM, la mala calidad de los datos le cuesta a las organizaciones un promedio de 12,9 millones de dólares al año, y las migraciones de CRM son uno de los momentos de mayor riesgo para la degradación de la calidad de los datos.

Objetos que debe exportar:

Objeto Qué contiene Error frecuente
Account Registros de empresas, el padre de la mayoría de las relaciones Se exporta al último, rompiendo los vínculos de Contactos
Contact Personas individuales vinculadas a Cuentas Se exporta sin la relación con la Cuenta
Lead Prospectos no calificados, separados de los Contactos Se olvida por completo si el equipo "no usa Leads"
Opportunity Negocios, vinculados a Cuentas y Contactos Los contactos de la Oportunidad (objeto de unión) se omiten frecuentemente
Task Llamadas registradas, tareas pendientes, seguimientos Casi siempre se olvida
Event Reuniones, eventos de calendario Se trata como opcional, rara vez se exporta
Case Tickets de soporte, si se usa Los equipos de ventas que no gestionan Soporte lo omiten
Objetos personalizados Lo que su organización haya construido Completamente invisible a menos que alguien los documente

El grafo de relaciones sigue Account → Contact → Opportunity, con Tasks y Events vinculándose a los tres. Si exporta Contactos sin Cuentas, cada Contacto pierde su asociación con la empresa. Si omite Tasks y Events, pierde el historial de actividades por completo.

Anote cada objeto que usa su organización antes de comenzar. Consulte a su administrador de Salesforce si no está seguro.


Paso 1: usar Data Export o Data Loader, y cuándo corresponde cada uno

Salesforce le ofrece dos herramientas de exportación principales. No son intercambiables.

Data Export (Configuración > Data Export)

  • Programado semanalmente o ejecutado bajo demanda desde la interfaz
  • Exporta todo en un único archivo zip por objeto
  • Límite máximo: ~512 MB por archivo; las organizaciones grandes superan este límite con Contactos u Oportunidades
  • Sin filtrado: obtiene todos los registros de cada objeto
  • Recomendado para: organizaciones pequeñas a medianas, exportación completa inicial, equipos sin experiencia profunda en administración de Salesforce

Data Loader

  • Aplicación de escritorio independiente (Windows/Mac)
  • Maneja grandes volúmenes: probado con decenas de millones de registros
  • Requiere consultas SOQL: usted controla exactamente qué campos se exportan
  • Permite filtrar por rango de fechas, tipo de registro o cualquier valor de campo
  • Recomendado para: organizaciones grandes, exportaciones selectivas, objetos personalizados con relaciones complejas

Para la mayoría de las migraciones, Data Loader es la opción correcta. Data Export está bien para organizaciones con menos de 50.000 registros por objeto, pero en cuanto se trabaja con relaciones de campos complejas o historiales de actividades grandes, Data Loader le da el control necesario. Si no está seguro de si su organización califica como una migración compleja, preparar sus datos antes de migrar cualquier cosa le ayuda a delimitar el trabajo antes de que comience la exportación.

Una nota sobre los límites de la API: Data Loader usa la API de Salesforce. Si su organización tiene otras integraciones ejecutándose simultáneamente, puede alcanzar los límites de la API a mitad de una exportación. Programe las exportaciones grandes fuera del horario laboral o consulte a su administrador de Salesforce sobre su asignación de API. La documentación del desarrollador de Salesforce Data Loader cubre en detalle la configuración del tamaño de lote y los límites de uso de la API.


Paso 2: exportar en el orden correcto

Las dependencias entre objetos en Salesforce implican que algunos registros no pueden importarse de forma significativa en un nuevo sistema a menos que los registros a los que hacen referencia ya existan allí. Exporte en el orden equivocado y tendrá archivos CSV llenos de registros huérfanos.

Orden de exportación requerido:

  1. Account
  2. Contact (referencia a Account)
  3. Lead (independiente, pero expórtelo pronto)
  4. Opportunity (referencia a Account)
  5. OpportunityContactRole (el objeto de unión que vincula Opportunities con Contacts)
  6. Task (referencia a Contact, Lead, Opportunity, Account)
  7. Event (igual que Task)
  8. EventRelation (si su organización usa reuniones compartidas con múltiples asistentes)
  9. Case (si se usa)
  10. Objetos personalizados (exporte en su propio orden de dependencia)

¿Por qué Account va primero? Porque los Contacts referencian AccountId. Al importar en el sistema de destino, los Contacts necesitan hacer referencia a registros de Account existentes. Exporte Accounts primero, impórtelos primero y luego gestione los Contacts con las asociaciones de Account correctas.

OpportunityContactRole es el problema silencioso. Es un objeto de unión que almacena qué Contacts están asociados con qué Opportunities. Omítalo y sus Opportunities llegarán al nuevo CRM sin relaciones de contacto. La mayoría de los equipos olvida que existe. El mismo principio aplica a la gestión de actividades históricas, notas y correos electrónicos: tanto los datos de relaciones como el historial de actividades requieren decisiones deliberadas de exportación, no solo un "exportar todo" predeterminado.


Paso 3: gestionar los campos de búsqueda y los IDs

Aquí es donde la exportación se vuelve técnicamente importante. Cada campo de búsqueda en Salesforce contiene un ID de registro de Salesforce, una cadena alfanumérica de 18 caracteres que no significa nada fuera de Salesforce. Cuando abre un registro de Contact, el campo AccountId contiene algo como 001A000001B2cDEFAB. Ese ID no existe en su nuevo CRM.

Qué hacer:

Para cada campo de búsqueda, exporte el identificador significativo del registro relacionado junto al ID de Salesforce. Para los Contacts, esto significa exportar tanto AccountId como Account.Name en la misma fila. Para las Opportunities, exporte tanto AccountId como Account.Name, además de OwnerId y Owner.Name.

En Data Loader, su consulta SOQL se vería así:

SELECT Id, FirstName, LastName, Email, Phone, AccountId, Account.Name,
       OwnerId, Owner.Name, LeadSource, CreatedDate
FROM Contact

La notación de punto (Account.Name) extrae el campo relacionado en línea. Esto le da a sus pasos de limpieza e importación una referencia legible por humanos junto al ID de Salesforce.

IDs externos: Si su organización usa campos de ID externos personalizados (frecuente en organizaciones que se integran con ERP o sistemas de facturación), exporte esos campos también. Se convierten en la clave de unión en el sistema de destino.

Tabla de referencia para la traducción de IDs:

Campo de exportación Qué es Qué necesita junto a él
AccountId en Contact ID de registro de Account en Salesforce Account.Name
OwnerId en cualquier objeto ID de registro de Usuario en Salesforce Owner.Name, Owner.Email
ContactId en Opportunity ID de registro de Contact en Salesforce Contact.FirstName, Contact.LastName, Contact.Email
WhoId en Task ID de Contact o Lead WhoId.Name (el campo "Who")
WhatId en Task ID de Account, Opportunity o Case WhatId.Name (el campo "What")

Exporte estos nombres de relaciones junto a cada ID. Los usará durante el mapeo de campos en la siguiente etapa.


Paso 4: exportar las actividades correctamente

Tasks y Events viven en sus propios objetos. No están integrados en los registros de Contact u Opportunity. Y tienen sus propios campos de relación que necesitan el mismo tratamiento que los campos de búsqueda descritos anteriormente.

Para Tasks (SOQL mediante Data Loader):

SELECT Id, Subject, Description, Status, Priority, ActivityDate,
       WhoId, Who.Name, Who.Type,
       WhatId, What.Name, What.Type,
       OwnerId, Owner.Name, CreatedDate
FROM Task
WHERE ActivityDate >= 2022-01-01

El WhoId es la persona con la que la tarea está relacionada (Contact o Lead). El WhatId es el registro relacionado (Opportunity, Account o Case). Exporte tanto los IDs como los nombres.

Para Events:

SELECT Id, Subject, Description, StartDateTime, EndDateTime, Location,
       WhoId, Who.Name, WhatId, What.Name, OwnerId, Owner.Name, CreatedDate
FROM Event
WHERE StartDateTime >= 2022-01-01T00:00:00Z

Filtrado por rango de fechas: La mayoría de los equipos no necesita cada Task y Event desde el principio de los tiempos. Filtre a los últimos 2-3 años a menos que haya una razón de negocio específica para ir más atrás. Las exportaciones de actividades sin filtrar de organizaciones maduras de Salesforce pueden alcanzar millones de registros, muchos de ellos eventos del sistema generados automáticamente sin contenido real. Consulte la gestión de actividades históricas, notas y correos electrónicos para el marco de decisión sobre qué vale la pena migrar frente a qué archivar.

El campo WhoId.Type le indica si la tarea está vinculada a un Contact o a un Lead. Expórtelo para poder enrutar correctamente durante la importación.


Paso 5: validar su exportación antes de cerrar Salesforce

No empiece a limpiar hasta haber verificado que la exportación esté completa. Esta verificación toma 30 minutos y detecta los problemas que de otro modo aparecerían seis semanas después del go-live.

Validación del recuento de filas:

Objeto Cómo obtener el recuento en Salesforce Comportamiento esperado
Account Informes > Nuevo informe > Cuentas Las filas del CSV deben coincidir ± 1 %
Contact Mismo método Grandes diferencias indican problemas de filtrado en la exportación
Opportunity Mismo método Verifique recuentos de Abiertas + Cerradas por separado
Task Use la consola de desarrollador de Salesforce: SELECT COUNT() FROM Task La exportación debe coincidir
Event Misma consulta en la consola La exportación debe coincidir

Proceso de verificación en muestra:

Seleccione 20 registros de Contact al azar de su exportación. Para cada uno:

  1. Abra el registro en Salesforce
  2. Verifique que los campos clave coincidan con la fila del CSV
  3. Compruebe que Account.Name esté completo
  4. Compruebe que al menos una Task o Event aparezca en el historial de actividades relacionado
  5. Si algún registro falla, investigue antes de continuar

Integridad de campos personalizados:

Obtenga la lista de campos de su organización desde Configuración > Administrador de objetos > [Objeto] > Campos y relaciones. Compárela con los encabezados de columna de su exportación. Las columnas faltantes significan que deberá volver a exportar con campos adicionales en su consulta SOQL.


Lista de verificación de exportación de Salesforce

Use esta lista antes de dar por terminada la exportación:

  • Todos los objetos requeridos identificados y listados
  • El orden de exportación sigue Account → Contact → Lead → Opportunity → OpportunityContactRole → Task → Event
  • Cada campo de búsqueda incluye el nombre legible del registro relacionado junto al ID de Salesforce
  • Los campos WhoId y WhatId en Tasks y Events incluyen .Name y .Type
  • Recuentos de filas validados contra Informes de Salesforce o consultas en la consola de desarrollador
  • 20 registros al azar verificados en muestra por objeto
  • Campos personalizados verificados contra la lista de campos del objeto
  • Historial de actividades filtrado a un rango de fechas apropiado
  • Archivos de exportación almacenados en una ubicación controlada con acceso limitado al equipo de migración

Errores comunes

Exportar solo Contacts y omitir Accounts. Los Contacts referencian Accounts. Sin Accounts, cada Contact pierde su asociación con la empresa en la importación. Siempre exporte Accounts primero.

Perder los valores de campos de fórmula. Los campos de fórmula de Salesforce se calculan dinámicamente; no almacenan un valor. Cuando los exporta, obtiene el valor calculado al momento de la exportación. Si la fórmula hace referencia a otro objeto que cambia, el valor exportado no se actualizará. Exporte los campos de fórmula tal como están y anote cuáles son en su mapa de campos.

Olvidar los Record Types. Si su organización usa Record Types (distintos diseños de página y valores de lista de selección para diferentes categorías de registros), el campo RecordType.Name debe estar en su exportación. Las distinciones de tipo de registro suelen afectar cómo deben categorizarse los registros en el CRM de destino.

Alcanzar los límites de la API a mitad de la exportación. Data Loader realiza llamadas a la API en lotes. Una exportación grande (por ejemplo, 2 millones de Tasks) puede agotar la asignación diaria de API de su organización. Monitoree el progreso de los lotes y exporte los objetos grandes durante la noche si es necesario.

No exportar los registros eliminados. Si necesita migrar registros que fueron eliminados de forma lógica (en la Papelera de reciclaje), necesita una consulta separada usando ALL ROWS en SOQL. La mayoría de los equipos no necesita esto, pero vale la pena confirmarlo con los interesados antes de la exportación. Las directrices del NIST sobre integridad de datos proporcionan un marco útil para definir qué registros deben preservarse durante las transiciones de sistemas. Los registros que no migre pero que aún necesite retener pertenecen a un archivo a largo plazo de los datos de su CRM heredado, no al sistema de destino ni al olvido.


Qué hacer a continuación

Su exportación validada es la materia prima de todo lo que sigue. Pero los archivos de exportación en bruto no están listos para importar: deben limpiarse, deduplicarse y mapearse en campos antes de tocar el CRM de destino.

El siguiente paso es la limpieza de datos: deduplicación, normalización y enriquecimiento. Ejecute sus CSV exportados a través de ese proceso antes de abrir la herramienta de importación en su nuevo sistema. Un informe de McKinsey sobre estrategia de datos encontró que las empresas con una disciplina sólida de gobernanza de datos tienen tasas de adquisición de clientes 23 veces más altas; comenzar la migración con exportaciones limpias y validadas es la base de esa disciplina.

Si trabaja desde un mapeo de campos que aún no está finalizado, el mapeo de campos entre sistemas heredados y nuevos cubre las decisiones que debe tomar antes de que comience la limpieza.

Y si aún no ha decidido qué hacer con todas esas Tasks y Events, preparar sus datos antes de migrar cualquier cosa cubre las decisiones estratégicas que dan forma a cada decisión de exportación e importación siguiente.


Más información