Como corrigir a integração com Zoho/Salesforce no WPForms
O que é integração Zoho/Salesforce no WPForms?
A integração Zoho/Salesforce no WPForms usa os addons de CRM para enviar cada envio de formulário direto para o seu CRM, criando ou atualizando um registro como Lead, Contato ou Conta. O addon autentica via OAuth com um app conectado criado dentro do Salesforce ou do Zoho CRM, e depois você mapeia cada campo do formulário para um campo correspondente do objeto no CRM dentro do construtor de formulários.
A falha aparece quando esse fluxo quebra em um dos pontos: a conexão OAuth não autoriza, o formulário envia mas o registro nunca chega ao CRM, ou os dados chegam incompletos porque o mapeamento está errado. Segundo a documentação oficial do WPForms, o addon Salesforce exige a licença Elite, exige que o site carregue por SSL (HTTPS) e só funciona com edições do Salesforce que liberam acesso à API (Enterprise, Unlimited, Performance e Developer), o que explica boa parte dos casos em que a conexão nunca completa.
Como identificar
- O formulário é enviado normalmente e a entrada aparece em WPForms -> Entradas, mas nenhum Lead, Contato ou registro novo é criado no Salesforce ou no Zoho CRM.
- Ao clicar em Conectar ao Salesforce, a tela do CRM retorna a mensagem ‘error=invalid_client_id&error_description=client identifier invalid’ e a conexão não é concluída.
- Em WPForms -> Configurações -> Integrações o status da conta de CRM aparece como desconectado ou some depois de salvo.
- No construtor, a aba Marketing -> Salesforce (ou Zoho) não lista os objetos ou campos do CRM no menu de mapeamento.
- O registro chega ao CRM, mas com campos vazios ou trocados porque o mapeamento de campos do formulário para o objeto está incorreto.
Como prevenir
- Mantenha a licença Elite ativa e o addon de CRM sempre atualizado, já que mudanças de versão podem exigir reautorizar a conexão OAuth.
- Garanta SSL permanente no site e renove o certificado antes do vencimento, pois a queda do HTTPS interrompe o callback de autenticação do CRM.
- Documente a Callback URL, os escopos de OAuth e a edição do CRM usada, para recriar o Connected App rápido se alguém o apagar.
- Sempre mapeie os campos obrigatórios do objeto no CRM e faça um envio de teste após qualquer alteração no formulário ou no CRM.
Causa
- A licença ativa do WPForms é inferior à Elite: o addon Salesforce exige o plano Elite e não é instalado nem autentica em licenças Basic, Plus ou Pro.
- O site não carrega por HTTPS: a documentação do addon Salesforce exige SSL ativo, e sem ele o fluxo de OAuth do CRM não completa a autorização de retorno (callback).
- A edição do Salesforce não libera acesso à API: o addon só funciona com Enterprise, Unlimited, Performance e Developer; edições Professional exigem o complemento de API pago e sem ele a conexão falha.
- O Connected App do CRM está mal configurado: a Callback URL não bate com a fornecida pelo WPForms, faltam os escopos de OAuth (api e refresh_token), ou a opção 'Require Proof Key for Code Exchange (PKCE)' ficou marcada, gerando o erro invalid_client_id.
- A conexão foi tentada antes do período de espera de 10 minutos que o Salesforce leva para propagar o novo Connected App, ou o Consumer Key/Consumer Secret foi colado com espaço ou caractere a mais.
- O mapeamento de campos no construtor não casa com os campos obrigatórios do objeto no CRM (por exemplo, criar um Lead sem mapear o campo Sobrenome, que é obrigatório no Salesforce), então o CRM rejeita o registro.
Como resolver
- Confirme a licença Elite e o SSL do site: O addon Salesforce do WPForms exige a licença Elite e que o site carregue por HTTPS. Verifique o plano em Configurações e garanta o cadeado de SSL antes de qualquer ajuste, pois sem isso a conexão com o CRM nunca completa.
Painel WP -> WPForms -> Configurações -> verifique se a licença é Elite Painel WP -> WPForms -> Addons -> instale e ative o addon Salesforce Confirme que o site abre em https:// com certificado válido (cadeado no navegador) - Recrie o Connected App no Salesforce em Lightning Experience: O Salesforce não permite mais criar apps conectados no Classic Experience. Use o Lightning Experience e habilite o OAuth com os escopos corretos. A Callback URL deve ser exatamente a que o WPForms exibe ao adicionar a conta.
Salesforce -> ícone de engrenagem -> Setup (em Lightning Experience) Apps -> External Client Apps -> Settings -> New Connected App, habilite OAuth Settings Cole a Callback URL de WPForms -> Configurações -> Integrações -> Salesforce -> Add New Account Adicione os escopos 'Manage user data via APIs (api)' e 'Perform requests at any time (refresh_token, offline_access)' Desmarque 'Require Proof Key for Code Exchange (PKCE) Extension' e salve - Aguarde 10 minutos e cole as credenciais no WPForms: Após salvar o Connected App, o Salesforce leva cerca de 10 minutos para propagar. Conectar antes desse prazo é a causa direta do erro invalid_client_id. Espere, copie o Consumer Key e o Consumer Secret em Manage Consumer Details e cole no WPForms sem espaços extras.
Aguarde os 10 minutos sem fechar a aba do navegador Salesforce -> seu Connected App -> Manage Consumer Details -> copie Consumer Key e Consumer Secret WPForms -> Configurações -> Integrações -> Salesforce -> cole Consumer Key e Consumer Secret Clique em Connect to Salesforce, faça login e clique em Allow - Revise o mapeamento de campos no construtor: Abra o formulário e confira a conexão do CRM. Mapeie todos os campos obrigatórios do objeto escolhido, como o Sobrenome ao criar um Lead no Salesforce. Campo obrigatório sem origem no formulário faz o CRM rejeitar o registro silenciosamente.
WPForms -> abra o formulário -> Marketing -> Salesforce (ou Zoho) -> Add New Connection Selecione a conta conectada e o objeto (Lead, Contato, Conta) Mapeie cada campo obrigatório do objeto a um campo do formulário e salve - Teste o envio e reenvie as entradas que falharam: Envie um teste pela prévia do formulário e confirme o registro no CRM. Se um envio anterior não chegou ao Salesforce, o WPForms permite reenviar a entrada já capturada sem perder o dado do lead.
WPForms -> Visualizar -> envie uma entrada de teste No Salesforce/Zoho, confirme o novo registro no objeto mapeado WPForms -> Entradas -> abra a entrada que falhou -> em Ações, clique em Resubmit to Salesforce
<?php
// Loga no error_log a resposta do CRM quando um envio falha na integração,
// para descobrir se o erro é de autenticação, de campo obrigatório ou de API.
add_action( 'wpforms_process_complete', 'full_log_crm_falha', 20, 4 );
function full_log_crm_falha( $fields, $entry, $form_data, $entry_id ) {
// Dispara só se houver uma conexão de CRM configurada no formulário.
if ( empty( $form_data['providers'] ) ) {
return;
}
foreach ( $form_data['providers'] as $provider => $conexoes ) {
if ( ! in_array( $provider, array( 'salesforce', 'zoho-crm' ), true ) ) {
continue;
}
error_log( sprintf(
'[WPForms CRM] entry %d via %s: revisar conexão, escopos OAuth e campos obrigatórios mapeados.',
(int) $entry_id,
$provider
) );
}
}














