Português

Exportando Corretamente do Salesforce: O Guia de Export Pronto para Migração

Uma equipe de Sales Ops em uma empresa SaaS de médio porte passou seis semanas se preparando para a migração de CRM. Eles exportaram Contatos e Contas, verificaram alguns registros e consideraram o export concluído. Três dias após o go-live, o novo CRM não mostrava nenhum histórico de atividades para 4.200 contatos. A equipe não havia exportado Tasks ou Events, os dois objetos do Salesforce onde ficavam todos os logs de ligação, e-mails e reuniões. Três anos de histórico de interações, perdidos.

O export em si levou 20 minutos. A recuperação levou três semanas de reconstrução manual a partir de arquivos de e-mail e da memória dos reps. Nem todos os registros voltaram.

Este guia percorre o processo de export do Salesforce que de fato preserva tudo: objetos, relacionamentos, campos personalizados e histórico de atividades. Siga na ordem. A sequência importa.


O Que os Dados do Salesforce Mapeiam Para Quê

Antes de tocar nas ferramentas de export, você precisa entender o que está extraindo. O Salesforce organiza os dados em objetos. A maioria das equipes conhece os mais óbvios. Os que as equipes perdem são os que causam dor. Esse trabalho de mapeamento se conecta diretamente ao mapeamento de campos entre sistemas legados e novos: você não consegue construir um mapa de campos confiável sem antes saber quais objetos está extraindo.

De acordo com a pesquisa da Gartner sobre qualidade de dados de CRM, a baixa qualidade de dados custa às organizações em média US$12,9 milhões por ano, e as migrações de CRM são um dos momentos de maior risco para a degradação da qualidade dos dados.

Objetos que você deve exportar:

Objeto O que contém Erro comum
Account Registros de empresas, o pai da maioria dos relacionamentos Exportado por último, quebrando vínculos com Contatos
Contact Pessoas físicas vinculadas a Accounts Exportado sem o relacionamento com a Account
Lead Prospects não qualificados, separados de Contacts Completamente esquecido se a equipe "não usa Leads"
Opportunity Negócios, vinculados a Accounts e Contacts Contacts de Oportunidade (objeto de junção) frequentemente esquecidos
Task Ligações registradas, afazeres, follow-ups Quase sempre esquecidos
Event Reuniões, eventos de calendário Tratado como opcional, raramente exportado
Case Tickets de suporte, se utilizado Ignorado por equipes de vendas que não gerenciam Suporte
Objetos personalizados O que sua organização construiu Completamente invisíveis a menos que alguém os documente

O grafo de relacionamentos é Account > Contact > Opportunity, com Tasks e Events se vinculando aos três. Se você exportar Contacts sem Accounts, cada Contato perde a associação com a empresa. Se você pular Tasks e Events, perde a timeline de atividades inteiramente.

Anote cada objeto que sua organização usa antes de começar. Consulte seu administrador do Salesforce se não tiver certeza.


Etapa 1: Use o Data Export ou o Data Loader, e Quando Cada Um é Correto

O Salesforce fornece duas ferramentas principais de export. Elas não são intercambiáveis.

Data Export (Configuração > Data Export)

  • Agendado semanalmente ou executado sob demanda pela interface
  • Exporta tudo em um único arquivo zip por objeto
  • Limite de tamanho: ~512MB por arquivo; organizações grandes atingem esse limite em Contacts ou Opportunities
  • Sem filtragem: você recebe todos os registros de cada objeto
  • Ideal para: organizações pequenas a médias, export completo inicial, equipes sem profundidade administrativa no Salesforce

Data Loader

  • Aplicativo desktop independente (Windows/Mac)
  • Suporta grandes volumes: testado com dezenas de milhões de registros
  • Exige queries SOQL: você controla exatamente quais campos são extraídos
  • Permite filtrar por intervalo de datas, RecordType ou qualquer valor de campo
  • Ideal para: organizações grandes, exports seletivos, objetos personalizados com relacionamentos complexos

Para a maioria das migrações, o Data Loader é a escolha certa. O Data Export é adequado para organizações com menos de 50.000 registros por objeto, mas assim que você lida com relacionamentos de campos complexos ou grandes históricos de atividades, o Data Loader oferece o controle necessário. Se você não tiver certeza se sua organização se qualifica como uma migração complexa, preparando seus dados antes de migrar qualquer coisa ajuda a definir o escopo do trabalho antes de começar o export.

Nota sobre limites de rate de API: o Data Loader usa a API do Salesforce. Se sua organização tiver outras integrações rodando simultaneamente, você pode atingir os limites de rate no meio do export. Agende exports grandes fora do horário comercial ou verifique com seu administrador do Salesforce sobre a alocação de API. A documentação do desenvolvedor do Salesforce Data Loader cobre a configuração de tamanho de lote e os limites de uso da API em detalhes.


Etapa 2: Exportar na Ordem Correta

As dependências entre objetos no Salesforce significam que alguns registros não podem ser importados de forma significativa em um novo sistema a menos que os registros que eles referenciam já existam lá. Exporte na ordem errada e você terá arquivos CSV cheios de registros órfãos.

Ordem de export obrigatória:

  1. Account
  2. Contact (referencia Account)
  3. Lead (independente, mas exporte cedo)
  4. Opportunity (referencia Account)
  5. OpportunityContactRole (o objeto de junção que vincula Opportunities a Contacts)
  6. Task (referencia Contact, Lead, Opportunity, Account)
  7. Event (igual a Task)
  8. EventRelation (se sua organização usa reuniões compartilhadas com múltiplos participantes)
  9. Case (se utilizado)
  10. Objetos personalizados (exporte na própria ordem de dependências)

Por que Account vem primeiro? Porque Contacts referenciam AccountId. Ao importar no sistema de destino, os Contacts precisam referenciar registros de Account existentes. Exporte Accounts primeiro, importe-as primeiro, depois trate dos Contacts com as associações corretas de Account.

O OpportunityContactRole é o assassino silencioso. É um objeto de junção que armazena quais Contacts estão associados a quais Opportunities. Pule-o e suas Opportunities chegarão ao novo CRM sem nenhum relacionamento com contatos. A maioria das equipes esquece que ele existe. O mesmo princípio se aplica a lidando com atividades históricas, notas e e-mails: dados de relacionamento e histórico de atividades exigem decisões deliberadas de export, não apenas um "exportar tudo" por padrão.


Etapa 3: Lidar com Lookups e IDs

É aqui que o export fica tecnicamente importante. Cada campo de lookup no Salesforce contém um ID de registro do Salesforce, uma string alfanumérica de 18 caracteres que não significa nada fora do Salesforce. Quando você abre um registro de Contact, o campo AccountId contém algo como 001A000001B2cDEFAB. Esse ID não existe no seu novo CRM.

O que fazer:

Para cada campo de lookup, exporte o identificador legível do registro relacionado junto com o ID do Salesforce. Para Contacts, isso significa exportar tanto o AccountId quanto o Account.Name na mesma linha. Para Opportunities, exporte AccountId e Account.Name, além de OwnerId e Owner.Name.

No Data Loader, sua query SOQL fica assim:

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

A notação de ponto (Account.Name) extrai o campo relacionado inline. Isso fornece à sua etapa de limpeza e importação uma referência legível ao lado do ID do Salesforce.

IDs externos: se sua organização usa campos de ID externos personalizados (comum em organizações que integram com ERP ou sistemas de cobrança), exporte esses campos também. Eles se tornam a chave de junção no sistema de destino.

Tabela de referência para tradução de IDs:

Campo do export O que é O que você precisa ao lado
AccountId no Contact ID do registro Account no Salesforce Account.Name
OwnerId em qualquer objeto ID do registro User no Salesforce Owner.Name, Owner.Email
ContactId na Opportunity ID do registro Contact no Salesforce Contact.FirstName, Contact.LastName, Contact.Email
WhoId na Task ID do Contact ou Lead WhoId.Name (o campo "Quem")
WhatId na Task ID do Account, Opportunity ou Case WhatId.Name (o campo "O quê")

Exporte esses nomes de relacionamento junto com cada ID. Você os usará durante o mapeamento de campos na próxima etapa.


Etapa 4: Exportar Atividades Corretamente

Tasks e Events ficam em seus próprios objetos. Eles não estão embutidos em registros de Contact ou Opportunity. E têm seus próprios campos de relacionamento que precisam do mesmo tratamento dos campos de lookup acima.

Para Tasks (SOQL via 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

O WhoId é a pessoa a quem a Task se refere (Contact ou Lead). O WhatId é o registro relacionado (Opportunity, Account ou Case). Exporte tanto os IDs quanto os nomes.

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

Filtragem por intervalo de datas: a maioria das equipes não precisa de cada Task e Event desde o início dos tempos. Filtre para os últimos 2 a 3 anos a menos que haja uma razão específica de negócio para ir mais fundo. Exports de atividades sem filtro de organizações maduras no Salesforce podem chegar a milhões de registros, muitos deles eventos do sistema gerados automaticamente sem nenhum conteúdo real. Veja lidando com atividades históricas, notas e e-mails para o framework de decisão sobre o que vale migrar versus o que arquivar.

O campo WhoId.Type informa se a Task está vinculada a um Contact ou a um Lead. Exporte-o para poder rotear corretamente durante a importação.


Etapa 5: Valide Seu Export Antes de Fechar o Salesforce

Não comece a limpar até ter verificado que o export está completo. Essa verificação leva 30 minutos e detecta os problemas que de outra forma apareceriam seis semanas após o go-live.

Validação da contagem de linhas:

Objeto Como obter a contagem no Salesforce Comportamento esperado
Account Relatórios > Novo Relatório > Accounts As linhas do CSV devem corresponder ± 1%
Contact Mesmo método Grandes lacunas indicam problemas de filtro no export
Opportunity Mesmo método Verifique as contagens de Open + Closed separadamente
Task Use o console do desenvolvedor do Salesforce: SELECT COUNT() FROM Task O export deve corresponder
Event Mesma query de console O export deve corresponder

Processo de verificação por amostra:

Escolha 20 registros de Contact aleatórios do seu export. Para cada um:

  1. Abra o registro no Salesforce
  2. Verifique se os campos principais correspondem à linha do CSV
  3. Verifique se Account.Name está preenchido
  4. Verifique se pelo menos uma Task ou Event aparece na timeline de atividades relacionadas
  5. Se algum registro falhar, investigue antes de continuar

Completude dos campos personalizados:

Obtenha a lista de campos da sua organização em Configuração > Object Manager > [Objeto] > Campos e Relacionamentos. Compare-a com os cabeçalhos de coluna do seu export. Colunas ausentes significam que você precisará re-exportar com campos adicionais na sua query SOQL.


O Checklist de Export do Salesforce

Use este antes de aprovar o export:

  • Todos os objetos necessários identificados e listados
  • A ordem de export segue Account > Contact > Lead > Opportunity > OpportunityContactRole > Task > Event
  • Cada campo de lookup inclui o nome legível do registro relacionado ao lado do ID do Salesforce
  • Campos WhoId e WhatId nas Tasks e Events incluem .Name e .Type
  • Contagens de linhas validadas contra Relatórios do Salesforce ou queries no console do desenvolvedor
  • 20 registros aleatórios verificados por objeto
  • Campos personalizados verificados contra a lista de campos do objeto
  • Histórico de atividades filtrado para um intervalo de datas apropriado
  • Arquivos de export armazenados em um local controlado com acesso limitado à equipe de migração

Armadilhas Comuns

Exportar apenas Contacts e perder Accounts. Contacts referenciam Accounts. Sem Accounts, cada Contato perde a associação com a empresa na importação. Sempre exporte Accounts primeiro.

Perder os valores dos campos de fórmula. Os campos de fórmula do Salesforce calculam dinamicamente: eles não armazenam um valor. Quando você os exporta, obtém o valor calculado no momento do export. Se a fórmula referenciar outro objeto que muda, o valor exportado não vai se atualizar. Exporte os campos de fórmula como estão e note quais campos são esses no seu mapa de campos.

Esquecer os RecordTypes. Se sua organização usa RecordTypes (diferentes layouts de página e valores de picklist para diferentes categorias de registros), o campo RecordType.Name deve estar no seu export. As distinções de RecordType frequentemente afetam como os registros devem ser categorizados no CRM de destino.

Atingir limites de rate de API no meio do export. O Data Loader faz chamadas de API em lotes. Um export grande, digamos, 2 milhões de Tasks, pode esgotar a alocação diária de API da sua organização. Monitore o progresso dos lotes e exporte objetos grandes durante a madrugada se necessário.

Não exportar registros deletados. Se você precisar migrar registros que foram soft-deletados (na Lixeira), você precisa de uma query separada usando ALL ROWS no SOQL. A maioria das equipes não precisa disso, mas vale confirmar com as partes interessadas antes do export. As diretrizes do NIST sobre integridade de dados fornecem um framework útil para definir quais registros devem ser preservados durante transições de sistemas. Os registros que você não migrar mas ainda precisar manter pertencem a um arquivo de longo prazo dos dados legados do seu CRM, não ao sistema de destino e nem simplesmente esquecidos.


O Que Fazer a Seguir

Seu export validado é a matéria-prima para tudo que vem depois. Mas os arquivos de export brutos não estão prontos para importação: eles precisam ser limpos, deduplicados e com campos mapeados antes de tocar no CRM de destino.

O próximo passo é limpeza de dados: deduplicação, normalização e enriquecimento. Rode seus CSVs exportados por esse processo antes de abrir a ferramenta de importação no seu novo sistema. Um relatório da McKinsey sobre estratégia de dados descobriu que empresas com forte disciplina de governança de dados registram taxas 23x maiores de aquisição de clientes. Começar a migração com exports limpos e validados é a base dessa disciplina.

Se você ainda estiver trabalhando a partir de um mapeamento de campos não finalizado, mapeamento de campos entre sistemas legados e novos cobre as decisões que você precisa tomar antes de começar a limpeza.

E se você ainda não decidiu o que fazer com todas aquelas Tasks e Events, preparando seus dados antes de migrar qualquer coisa cobre as decisões estratégicas que moldam cada decisão de export e importação mais adiante.


Saiba Mais