Resumo
Gerenciar contatos em várias plataformas pode ser demorado. Com a integração do Salesforce, a Wati mantém automaticamente seus Contatos e Oportunidades atualizados sem necessidade de importações manuais.
Este guia o levará pelo processo de configuração da sincronização em tempo real entre o Salesforce e a Wati, importação de registros existentes e configuração de mapeamentos de campos para que suas equipes sempre tenham acesso às informações de cliente mais recentes.
Instruções
O que há de novo na integração do Salesforce?
A integração do Salesforce agora inclui várias melhorias:
Sincronização de contatos em tempo real do Salesforce para a Wati
Seleção de campos configurável para Contatos e Oportunidades
Mapeamento de campos personalizado entre o Salesforce e a Wati
Importação única de Contatos e Oportunidades existentes do Salesforce
Anteriormente, os usuários tinham que selecionar Importar do Salesforce para sincronizar os dados. A nova integração usa eventos do Salesforce para atualizar automaticamente os contatos na Wati sempre que um Contato ou Oportunidade é criado ou atualizado.
Antes de começar
Certifique-se de que você tem:
Uma conta Wati no plano Business
Uma conta do Salesforce já conectada à Wati through OAuth
Acesso de administrador do Salesforce
A URL da Webhook e Segredo de Autenticação da Webhook gerados pela Wati
Nota: A configuração do lado do Salesforce requer acesso de administrador. Os usuários padrão do Salesforce não podem concluir a configuração.
Como funciona a integração
O processo de configuração consiste em duas partes:
Configurar as configurações de sincronização do Salesforce na Wati
Configurar o Salesforce para enviar atualizações para a Wati
Parte 1: Configurar configurações de sincronização na Wati
Etapa 1: Abrir a integração do Salesforce
Na Wati, vá para Conectores > Integrações > Salesforce.
Confirme que a etapa de Autenticação exibe um marca de verificação verde.
Verifique se a URL da organização do Salesforce é exibida.
Copie os seguintes valores:
URL da Webhook
Segredo de Autenticação da Webhook
Esses valores serão necessários durante a configuração do Salesforce.
Etapa 2: Selecionar os campos para sincronizar
Escolha os campos do Salesforce que devem ser sincronizados com a Wati.
Campos de Contato padrão
Telefone Comercial
ID do Contato*
E-mail
Nome
Sobrenome
ID do Proprietário
Campos de Oportunidade padrão
E-mail
Nome
Sobrenome
ID da Oportunidade*
ID do Proprietário
Telefone
Status
Nota: * Campos obrigatórios não podem ser removidos.
Para sincronizar campos adicionais:
Clique no seletor de campos.
Escolha campos padrão adicionais do Salesforce.
Etapa 3: Mapear campos do Salesforce para campos da Wati
Os campos do Salesforce selecionados são automaticamente mapeados para os campos de contato correspondentes da Wati por padrão.
Verifique os mapeamentos e faça alterações apenas se você desejar que um campo do Salesforce seja sincronizado com um campo de contato diferente da Wati.
Verifique todos os mapeamentos cuidadosamente antes de prosseguir.
Etapa 4: Ativar sincronização automática
Ative o toggle de Sincronização automática de dados (Sincronização bidirecional).
Quando a Sincronização automática de dados (Sincronização bidirecional) estiver habilitada, as alterações serão sincronizadas entre o Salesforce e a Wati em ambos os sentidos. Isso ajuda a manter as informações do cliente atualizadas em ambas as plataformas sem necessidade de atualizações manuais.
Etapa 5: Importar registros existentes do Salesforce
Execute o processo de importação única para trazer seus Contatos e Oportunidades existentes do Salesforce para a Wati.
Essa importação só precisa ser realizada uma vez durante a configuração inicial.
Parte 2: Configurar o Salesforce
É necessário acesso de administrador do Salesforce para as etapas seguintes.
Etapa 1: Criar um Site Remoto
Vá para Configuração > Segurança > Configurações do Site Remoto.
Selecione Novo Site Remoto.
Insira a URL do Site Remoto usando apenas o formato de domínio:
https://<nome do host>
Selecione Ativo.
Clique em Salvar.
Importante: Não inclua /api/v1/salesforce/processWebhook na URL do Site Remoto. Adicionar o caminho causará a falha da integração.
Etapa 2: Criar Rótulos Personalizados
Vá para: Configuração > Código Personalizado > Rótulos Personalizados
Crie os seguintes rótulos exatamente como mostrado:
Nome do Rótulo | Valor |
WATI_Webhook_Endpoint | URL da Webhook completa da Wati |
WATI_Webhook_Secret | Segredo de Autenticação da Webhook da Wati |
Importante: Os nomes dos rótulos devem corresponder exatamente. Qualquer variação impedirá que a integração funcione.
Etapa 3: Implantar a classe Apex
Vá para Configuração > Console do Desenvolvedor.
Crie uma nova classe Apex.
Nomeie a classe:
WatiSalesforceWebhookSender
Cole o código Apex fornecido pela Wati.
Salve e compile a classe.
Essa classe cria a ação do Salesforce:
Notificar a WATI sobre alterações de registro
Essa ação será usada pelos Flows do Salesforce.
Etapa 4: Criar Flows acionados por registro
Crie dois Flows separados:
Flow de Contato
Flow de Oportunidade
Navegue até: Configuração > Automação de Processos > Flows > Novo Flow
Configure ambos os Flows usando as seguintes configurações:
Configuração | Valor |
Tipo de acionador | Flow acionado por registro |
Objeto | Contato ou Oportunidade |
Evento de acionador | Criado ou Atualizado |
Modo de execução | Assíncrono (após salvar) |
Tipo de ação | Apex |
Ação | Notificar a WATI sobre alterações de registro |
Ative ambos os Flows após a criação.
Importante: Sempre use modo assíncrono. A execução síncrona pode causar atrasos e erros de tempo limite de transação no Salesforce.
Etapa 5: Configurar o endpoint e o segredo usando Rótulos Personalizados
Crie os Rótulos Personalizados WATI_Webhook_Endpoint e WATI_Webhook_Secret usando a URL da Webhook e o Segredo de Autenticação da Webhook gerados pela Wati.
Em sua classe Apex, faça referência a esses valores usando System.Label.WATI_Webhook_Endpoint e System.Label.WATI_Webhook_Secret.
public class WatiSalesforceWebhookSender {
private static String getEndpoint() {
return System.Label.WATI_Webhook_Endpoint;
}
private static String getWebhookSecret() {
return System.Label.WATI_Webhook_Secret;
}
private static final String PHONE_FIELD_DEFAULT = 'Phone';
@InvocableMethod(
label = 'Notificar a WATI sobre alterações de registro',
description = 'POST alterações de Contato/Oportunidade para a WATI'
)
public static void sendRecords(List<Id> recordIds) {
if (recordIds == null || recordIds.isEmpty()) {
return;
}
String objectType = recordIds[0].getSObjectType().getDescribe().getName();
String baseUrl = Url.getOrgDomainUrl().toExternalForm();
String orgId = UserInfo.getOrganizationId();
String userId = UserInfo.getUserId();
String fullIdentityId = baseUrl + '/id/' + orgId + '/' + userId;
List<Map<String, Object>> events = new List<Map<String, Object>>();
for (Id rid : new Set<Id>(recordIds)) {
if (rid == null) {
continue;
}
events.add(new Map<String, Object>{
'salesForceOrgId' => fullIdentityId,
'recordId' => String.valueOf(rid),
'objectType' => objectType,
'eventType' => 'update',
'phoneField' => PHONE_FIELD_DEFAULT
});
}
if (!events.isEmpty()) {
makeCallout(JSON.serialize(events));
}
}
@future(callout = true)
private static void makeCallout(String jsonBody) {
HttpRequest req = new HttpRequest();
req.setEndpoint(getEndpoint());
req.setMethod('POST');
req.setHeader('Content-Type', 'application/json;charset=UTF-8');
req.setHeader('X-Wati-Salesforce-Webhook-Key', getWebhookSecret());
req.setBody(jsonBody);
try {
HttpResponse res = new Http().send(req);
System.debug(LoggingLevel.INFO, 'Status da WATI: ' + res.getStatusCode());
} catch (Exception e) {
System.debug(LoggingLevel.ERROR, 'Erro da WATI: ' + e.getMessage());
}
}
}salesForceOrgId deve conter a URL de identidade do Salesforce. Isso é normalmente construído usando Url.getOrgDomainUrl(), seguido por /id/, o ID da Organização do Salesforce e o ID do Usuário.
A Wati usa o ID da Organização do Salesforce dentro dessa URL de identidade para identificar sua organização do Salesforce conectada. O nome do host não precisa corresponder ao usado durante a autenticação OAuth. Por exemplo, tanto login.salesforce.com quanto o Meu Domínio (*.my.salesforce.com) são suportados, desde que o ID da Organização seja o mesmo.
Alternativamente, você pode fornecer o ID da Organização do Salesforce de 15 ou 18 caracteres diretamente se ele corresponder à organização conectada.
O serviço de integração da Wati armazena esse segmento de org no momento da conexão e pode normalizar as cargas de trabalho da Webhook de saída antes que elas atinjam a Wati.
O que acontece após a configuração?
Depois que a configuração estiver concluída:
Um Contato ou Oportunidade é criado ou atualizado no Salesforce.
O Salesforce aciona o Flow.
O Flow chama a ação Apex.
A ação Apex envia a atualização para a Wati.
A Wati cria ou atualiza automaticamente o contato.
Nenhum trabalho agendado ou importação manual é necessário.
Dedupicação de contatos
A Wati usa números de telefone para identificar contatos existentes.
Se um número de telefone correspondente já existir, o contato é atualizado.
Se nenhum número de telefone correspondente for encontrado, um novo contato é criado.
Notas importantes
Status da conexão do Salesforce
O indicador verde Conectado confirma apenas a autenticação OAuth.
Ele não verifica:
Configuração do Site Remoto
Implantação da classe Apex
Rótulos Personalizados
Flows do Salesforce
Sempre teste a integração após a configuração, atualizando um Contato ou Oportunidade.
Campos suportados
Campos padrão do Salesforce são suportados.
Campos personalizados do Salesforce que terminam com
__csão suportados.
Exclusão de registros
Excluir um Contato ou Oportunidade no Salesforce não exclui o contato correspondente na Wati.
A relação do Salesforce é removida, mas o contato da Wati permanece.
Formatação de número de telefone
Use um formato de número de telefone consistente em todo o registro do Salesforce.
Uma formatação inconsistente pode criar contatos duplicados na Wati em vez de atualizar registros existentes.
Sincronização da Wati para o Salesforce
Sim, está disponível para todos os clientes do plano Business da Wati.
Solução de problemas
Se os contatos ou oportunidades do Salesforce não estiverem sincronizando corretamente, revise os sintomas abaixo para identificar a causa provável e a resolução recomendada.
Sintoma | Causa possível | Resolução |
Erro HTTP 401 nos logs do Apex | Segredo de autenticação da Webhook incorreto | Copie o segredo de autenticação mais recente da Wati e atualize o Rótulo Personalizado WATI_Webhook_Secret. |
Erro HTTP 404 nos logs do Apex | URL da Webhook incorreta | Copie a URL da Webhook mais recente da Wati e atualize o Rótulo Personalizado WATI_Webhook_Endpoint. |
Erro de endpoint ou exceção de chamada nos logs do Apex | Site Remoto ausente ou configurado incorretamente | Verifique se a URL do Site Remoto contém apenas |
Nenhum log de depuração gerado | Flow do Salesforce não está sendo acionado | Verifique se: • O Flow está ativo • As condições de entrada são atendidas • O Flow está configurado para executar no Modo Assíncrono |
Contatos não estão sincronizando, mas o Salesforce mostra Conectado | Configuração do lado do Salesforce está incompleta | Verifique se todas as etapas de configuração do Salesforce foram concluídas e ambos os Flows estão ativos. Se a sincronização funcionava anteriormente e parou, contate o Suporte da Wati. |
Sincronização parou de funcionar após funcionar anteriormente | Token de autenticação OAuth do Salesforce expirou ou um Flow foi desativado | Verifique se ambos os Flows estão ativos. Se o problema persistir, desconecte e reconecte o Salesforce na Wati. |
Contatos duplicados estão sendo criados | Formatação de número de telefone difere entre o Salesforce e a Wati | Certifique-se de que os números de telefone usem um formato consistente no Salesforce e na Wati. |
Como exibir logs de depuração do Salesforce
Para exibir logs do Salesforce:
Vá para Configuração > Ambientes > Logs > Logs de Depuração.
Habilite a depuração para o seu usuário do Salesforce.
Atualize um Contato ou Oportunidade para gerar entradas de log.
Perguntas frequentes (FAQs)
Visão geral da integração
1. O que a integração do Salesforce faz?
A integração do Salesforce sincroniza automaticamente Contatos e Oportunidades do Salesforce com a Wati. Ela oferece suporte à sincronização em tempo real, seleção de campos configurável, mapeamento de campos personalizado e importação única de registros existentes do Salesforce.
2. O que é necessário antes de configurar a integração do Salesforce?
Antes de configurar a integração, você precisa:
Uma conta Wati do plano Business
Uma conta do Salesforce conectada à Wati through OAuth
Acesso de administrador do Salesforce
A URL da Webhook e o Segredo de Autenticação da Webhook gerados pela Wati
O acesso de administrador do Salesforce é necessário porque parte da configuração deve ser concluída no Salesforce.
3. A integração do Salesforce sincroniza automaticamente as atualizações de contatos?
Sim. Depois que a configuração estiver concluída e a sincronização automática estiver habilitada, o Salesforce envia automaticamente atualizações de Contatos e Oportunidades para a Wati sempre que um registro for criado ou atualizado. As importações manuais não são mais necessárias para a sincronização contínua.
Sincronização e mapeamento de dados
4. Como os campos do Salesforce são mapeados para os campos da Wati?
Os campos do Salesforce selecionados são mapeados automaticamente para os campos de contato correspondentes da Wati por padrão. Você pode revisar e modificar os mapeamentos se desejar que um campo do Salesforce seja sincronizado com um campo de contato diferente da Wati.
5. Como a Wati evita contatos duplicados durante a sincronização?
A Wati usa números de telefone para identificar contatos existentes. Se um número de telefone correspondente já existir, o contato existente é atualizado. Se nenhum número de telefone correspondente for encontrado, a Wati cria um novo contato.
6. Campos personalizados do Salesforce são suportados?
Sim. A integração suporta campos padrão e personalizados do Salesforce que terminam com _c.
Limitações
7. O que acontece se eu excluir um Contato ou Oportunidade no Salesforce?
Excluir um Contato ou Oportunidade no Salesforce não exclui o contato correspondente na Wati. A relação do Salesforce é removida, mas o contato da Wati permanece.
8. O status Conectado do Salesforce confirma que a integração está totalmente configurada?
Não. O status Conectado confirma apenas que a autenticação OAuth foi bem-sucedida. Ele não verifica a configuração do lado do Salesforce, incluindo o Site Remoto, a classe Apex, os Rótulos Personalizados ou os Flows do Salesforce.
9. A sincronização da Wati de volta para o Salesforce é suportada?
Sim, está disponível para todos os clientes do plano Business da Wati.












