Passar para o conteúdo principal

Como integrar o Salesforce ao Wati e sincronizar automaticamente contatos e leads

Resumo

Gerenciar contatos em várias plataformas pode ser demorado. Com a integração do Salesforce, o Wati mantém automaticamente seus Contatos e Leads atualizados, sem a necessidade de importações manuais.

Este guia orienta você na configuração da sincronização em tempo real entre Salesforce e Wati, importando registros existentes e configurando o mapeamento de campos para que suas equipes sempre tenham acesso às informações mais recentes do cliente.b

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 Wati

  • Seleção de campos configurável para Contatos e Leads

  • Mapeamento de campos personalizado entre Salesforce e Wati

  • Importação única de Contatos e Leads existentes do Salesforce

Anteriormente, os usuários precisavam selecionar manualmente Importar do Salesforce para sincronizar dados. A nova integração usa eventos do Salesforce para atualizar automaticamente os contatos no Wati sempre que um Contato ou Lead é criado ou atualizado.

Antes de começar

Certifique-se de ter:

  • Uma conta Wati no Plano Business

  • Uma conta Salesforce já conectada ao Wati via OAuth

  • Acesso de administrador do Salesforce

  • O Webhook URL e o Webhook Authentication Secret gerados pelo Wati

Observação: A configuração do lado do Salesforce requer acesso de administrador. Usuários padrão do Salesforce não podem concluir a configuração.

Como a integração funciona

O processo de configuração consiste em duas partes:

  1. Configure as configurações de sincronização do Salesforce no Wati

  2. Configure o Salesforce para enviar atualizações para o Wati

Parte 1: Configure as configurações de sincronização no Wati

Etapa 1: Abra a integração do Salesforce

  • No Wati, vá para Conectores > Integrações > Salesforce.

  • Confirme que a etapa de Autenticação exibe um visto verde.

  • Verifique se o URL da sua organização Salesforce está sendo exibido.

  • Copie os seguintes valores:

    • Webhook URL

    • Webhook Authentication Secret

Esses valores serão necessários durante a configuração do Salesforce.

Etapa 2: Selecione os campos para sincronizar

Escolha os campos do Salesforce que devem ser sincronizados com o Wati.

Campos de Contato padrão

  • Telefone Comercial

  • ID de Contato*

  • E-mail

  • Primeiro Nome

  • Sobrenome

  • ID do Proprietário

Campos de Lead padrão

  • E-mail

  • Primeiro Nome

  • Sobrenome

  • ID do Lead*

  • ID do Proprietário

  • Telefone

  • Status

Observação: * Campos obrigatórios não podem ser removidos.

Para sincronizar campos adicionais:

  1. Clique no seletor de campos.

  2. Escolha campos padrão adicionais do Salesforce.

Etapa 3: Mapeie os campos do Salesforce para os campos do Wati

Os campos selecionados do Salesforce são mapeados automaticamente para os campos de contato do Wati correspondentes por padrão.

Revise os mapeamentos e faça alterações apenas se desejar que um campo do Salesforce sincronize com um campo de contato do Wati diferente.

Revise todos os mapeamentos cuidadosamente antes de prosseguir.

Etapa 4: Habilite a sincronização automática

Ative o alternador Sincronização automática de dados (Sincronização Bidirecional).

Isso ativa a sincronização em tempo real do Salesforce para o Wati sempre que Contatos ou Leads são criados ou atualizados.

Etapa 5: Importe registros existentes do Salesforce

Execute o processo de importação única para trazer seus Contatos e Leads existentes do Salesforce para o Wati.

Esta importação só precisa ser realizada uma vez durante a configuração inicial.

Parte 2: Configure o Salesforce

O acesso de administrador do Salesforce é necessário para as etapas a seguir.

Etapa 1: Crie um Site Remoto

  • Vá para Configurar > Segurança > Configurações de Site Remoto.

  • Selecione Novo Site Remoto.

  • Digite o URL do Site Remoto usando apenas o formato de domínio:

https://<hostname>
  • Selecione Ativo.

  • Clique em Salvar.

Importante: Não inclua /api/v1/salesforce/processWebhook no URL do Site Remoto. Adicionar o caminho fará com que a integração falhe.

Etapa 2: Crie Rótulos Personalizados

Vá para: Configurar > Código Personalizado > Rótulos Personalizados

Crie os seguintes rótulos exatamente como mostrado:

Nome do Rótulo

Valor

WATI_Webhook_Endpoint

URL Completa do Webhook do Wati

WATI_Webhook_Secret

Segredo de Autenticação do Webhook do Wati

Importante: Os nomes dos rótulos devem corresponder exatamente. Qualquer variação impedirá que a integração funcione.

Etapa 3: Implante a classe Apex

  • Vá para Configurar > Console do Desenvolvedor.

  • Crie uma nova classe Apex.

  • Nomeie a classe:

WatiSalesforceWebhookSender
  • Cole o código Apex fornecido pelo Wati.

  • Salve e compile a classe.

Esta classe cria a ação do Salesforce:

Notificar WATI sobre Alterações de Registro

Esta ação será usada por Fluxos do Salesforce.

Etapa 4: Crie Fluxos Acionados por Registro

Crie dois Fluxos separados:

  • Fluxo de Contato

  • Fluxo de Lead

Navegue para: Configurar > Automação de Processo > Fluxos > Novo Fluxo

Configure ambos os Fluxos usando as seguintes configurações:

Configuração

Valor

Tipo de Gatilho

Fluxo Acionado por Registro

Objeto

Contato ou Lead

Evento de Gatilho

Criado ou Atualizado

Modo de Execução

Assincronamente (após salvar)

Tipo de Ação

Apex

Ação

Notificar WATI sobre Alterações de Registro

Ative ambos os Fluxos após a criação.

Importante: Sempre use o modo assíncrono. A execução síncrona pode causar atrasos na transação do Salesforce e erros de tempo limite.

Etapa 5: Configure o endpoint e o segredo usando Rótulos Personalizados

Crie os Rótulos Personalizados WATI_Webhook_Endpoint e WATI_Webhook_Secret usando o URL do Webhook e o Segredo de Autenticação do Webhook gerados pelo Wati.

Em sua classe Apex, refira-se 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 = 'Notify WATI of Record Changes',
description = 'POST Contact/Lead changes to 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, 'WATI status: ' + res.getStatusCode());
} catch (Exception e) {
System.debug(LoggingLevel.ERROR, 'WATI error: ' + e.getMessage());
}
}
}

salesForceOrgId deve conter o URL de identidade do seu Salesforce. Isso geralmente é construído usando Url.getOrgDomainUrl(), seguido por /id/, o ID da sua Organização Salesforce e o seu ID de Usuário.

O Wati usa o ID da Organização Salesforce dentro deste URL de identidade para identificar sua organização Salesforce conectada. O nome do host não precisa corresponder ao usado durante a autenticação OAuth. Por exemplo, tanto login.salesforce.com quanto seu My Domain (*.my.salesforce.com) são suportados, desde que o ID da Organização seja o mesmo.

Alternativamente, você pode fornecer diretamente o ID da Organização Salesforce de 15 ou 18 caracteres, se ele corresponder à organização conectada.

O serviço de integração do Wati armazena este segmento de org no momento da conexão e pode normalizar payloads de webhook de saída antes que cheguem ao Wati.

O que acontece após a configuração?

Após a conclusão da configuração:

  • Um Contato ou Lead é criado ou atualizado no Salesforce.

  • O Salesforce aciona o Fluxo.

  • O Fluxo chama a ação Apex.

  • A ação Apex envia a atualização para o Wati.

  • O Wati cria ou atualiza o contato automaticamente.

Nenhum trabalho agendado ou importação manual é necessário.

Desduplicação de contatos

O 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 existir, um novo contato é criado.

Notas importantes

Status da conexão do Salesforce

O indicador verde Conectado apenas confirma a autenticação OAuth.

Ele não verifica:

  • Configuração do Site Remoto

  • Implantação da classe Apex

  • Rótulos Personalizados

  • Fluxos do Salesforce

Sempre teste a integração após a configuração, atualizando um Contato ou Lead.

Campos suportados

Apenas campos padrão do Salesforce são suportados.

Campos personalizados do Salesforce que terminam em __c não podem ser sincronizados no momento.

Exclusão de registros

Excluir um Contato ou Lead no Salesforce não exclui o contato correspondente no Wati.

O relacionamento do Salesforce é removido, mas o contato no Wati permanece.

Formatação de número de telefone

Use um formato de número de telefone consistente em todos os registros do Salesforce.

Formatação inconsistente pode criar contatos duplicados no Wati em vez de atualizar registros existentes.

Sincronização Wati para Salesforce

A atualização de contatos no Wati e o envio dessas alterações de volta para o Salesforce não está disponível para todas as contas.

Entre em contato com seu gerente de conta para confirmar a elegibilidade.

Solução de problemas

Se os contatos ou leads 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 Apex

Segredo de autenticação do webhook incorreto

Copie o segredo de autenticação mais recente do Wati e atualize o Rótulo Personalizado WATI_Webhook_Secret.

Erro HTTP 404 nos logs Apex

URL do Webhook incorreto

Copie o URL do Webhook mais recente do Wati e atualize o Rótulo Personalizado WATI_Webhook_Endpoint.

Endpoint não autorizado ou exceção de chamada nos logs Apex

O Site Remoto está faltando ou configurado incorretamente

Verifique se o URL do Site Remoto contém apenas https://<hostname> e não inclui nenhum caminho de URL.

Nenhum log de depuração gerado

O Fluxo do Salesforce não está sendo acionado

Verifique se:

• O Fluxo está ativo

• As condições de entrada são atendidas

• O Fluxo está configurado para ser executado em modo Assíncrono

Os contatos não estão sincronizando, mas o Salesforce mostra Conectado

A configuração do lado do Salesforce está incompleta

Verifique se todas as etapas de configuração do Salesforce foram concluídas e se ambos os Fluxos estão ativos. Se a sincronização estava funcionando anteriormente e parou, entre em contato com o Suporte Wati.

A sincronização parou de funcionar depois de ter funcionado anteriormente

Token OAuth do Salesforce expirou ou um Fluxo foi desativado

Verifique se ambos os Fluxos estão ativos. Se o problema persistir, desconecte e reconecte o Salesforce no Wati.

Contatos duplicados estão sendo criados

A formatação do número de telefone difere entre Salesforce e Wati

Certifique-se de que os números de telefone usam um formato consistente entre Salesforce e Wati.

Como visualizar logs de depuração do Salesforce

Para visualizar os logs do Salesforce:

  • Vá para Configurar > Ambientes > Logs > Logs de Depuração.

  • Ative o registro para o seu usuário do Salesforce.

  • Atualize um Contato ou Lead 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 Leads do Salesforce com o Wati. Ela suporta sincronização em tempo real, seleção de campos configurável, mapeamento de campos personalizados e uma importação única de registros existentes do Salesforce.

2. O que preciso antes de configurar a integração do Salesforce?

Antes de configurar a integração, você precisa de:

>

  • Uma conta Wati Plano Business

  • Uma conta Salesforce conectada ao Wati via OAuth

  • Acesso de administrador do Salesforce

  • O URL do Webhook e o Segredo de Autenticação do Webhook gerados pelo 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. Após a conclusão da configuração e a habilitação da sincronização automática, o Salesforce envia automaticamente atualizações de Contatos e Leads para o Wati sempre que um registro é criado ou atualizado. Importações manuais não são mais necessárias para sincronização contínua.

Sincronização e mapeamento de dados

4. Como os campos do Salesforce são mapeados para os campos do Wati?

Os campos selecionados do Salesforce são mapeados automaticamente para os campos de contato do Wati correspondentes por padrão. Você pode revisar e modificar os mapeamentos se desejar que um campo do Salesforce sincronize com um campo de contato do Wati diferente.

5. Como o Wati evita contatos duplicados durante a sincronização?

O Wati usa números de telefone para identificar contatos existentes. Se um número de telefone correspondente já existir, o contato existente será atualizado. Se nenhum número de telefone correspondente for encontrado, o Wati criará um novo contato.

6. Campos personalizados do Salesforce são suportados?

Não. A integração atualmente suporta apenas campos padrão do Salesforce. Campos personalizados do Salesforce que terminam com __c não podem ser sincronizados.

Limitações

7. O que acontece se eu excluir um Contato ou Lead no Salesforce?

Excluir um Contato ou Lead no Salesforce não exclui o contato correspondente no Wati. O relacionamento do Salesforce é removido, mas o contato no Wati permanece.

8. O status Conectado do Salesforce confirma que a integração está totalmente configurada?

Não. O status Conectado apenas confirma que a autenticação OAuth do Salesforce foi bem-sucedida. Ele não verifica a configuração do lado do Salesforce, incluindo o Site Remoto, classe Apex, Rótulos Personalizados ou Fluxos do Salesforce.

9. A sincronização do Wati de volta para o Salesforce é suportada?

A sincronização do Wati para o Salesforce não está disponível para todas as contas. Entre em contato com seu gerente de conta para confirmar se sua conta é elegível para essa funcionalidade.

Respondeu à sua pergunta?