Formulário do site que não chega ao CRM: como levar o lead do site ao CRM com a origem
Na reunião de segunda, o marketing mostra 60 formulários enviados no mês. O comercial abre o CRM e conta 41 leads. Dos 41, metade está com origem vazia, e três são o mesmo contato cadastrado duas vezes. O e-mail de aviso que deveria chegar ao vendedor foi para o spam em alguns dias e simplesmente não saiu em outros. Ninguém mentiu: o formulário, a integração e o CRM contam coisas diferentes, e ninguém confere o caminho entre eles. Este guia cobre os quatro caminhos para o lead ir do site ao CRM, os campos ocultos que carregam a origem (UTM, gclid, fbclid, página de entrada), o mapeamento de campos, a deduplicação, o e-mail de notificação que não chega, spam e robôs, o teste de ponta a ponta, o monitoramento e o que a LGPD pede.
O que é integrar o formulário do site ao CRM
Integrar o formulário ao CRM é fazer cada envio virar um registro no CRM, sem ninguém copiar e colar, e com a informação de onde a pessoa veio. O CRM (sistema de gestão de relacionamento com clientes, como RD Station, HubSpot, Pipedrive ou Salesforce) é onde o comercial trabalha. Se o lead não está lá, para o comercial ele não existe. E se está lá sem origem, ninguém consegue dizer qual canal vende, que é o assunto de CRM como origem do dado de receita.
Os quatro caminhos do formulário ao CRM
- Formulário do próprio CRM ou integração nativa. O CRM oferece um formulário para embutir no site, ou um código que lê os formulários que já existem. No HubSpot, os “formulários externos” (non-HubSpot forms) são capturados pelo código de rastreamento, mas só se o formulário for HTML estático dentro de
<form>, tiver campo de e-mail, não estiver em iframe nem em site de página única, e não tiver CAPTCHA; e a captura não lê campos ocultos, o que significa que UTM e gclid em campo oculto não chegam por esse caminho.[1] No Pipedrive, os formulários web fazem parte do complemento LeadBooster e criam lead ou negócio, conforme a configuração.[4] No Salesforce, o Web-to-Lead aceita até 500 leads em 24 horas nas edições Professional, Enterprise, Unlimited, Performance e Developer; o que passa disso vai por e-mail ao criador padrão e entra numa fila para o dia seguinte.[5] É o caminho mais simples. Em troca, você aceita o que o CRM sabe fazer com campo oculto e com origem. - Plugin do formulário. O formulário do site (no WordPress, por exemplo) tem uma extensão que envia o envio ao CRM. Rápido de montar e fácil de quebrar: atualização do plugin, troca de campo no formulário ou chave de API vencida param o envio sem aviso.
- Webhook ou API direta. O site faz uma chamada HTTP ao CRM a cada envio. No RD Station Marketing, a API 2.0 aceita dois tipos de autenticação; a chave de API (API Key) é a indicada para integrações de formulário e serve só para enviar eventos de conversão, que criam ou atualizam o contato.[2] É o caminho mais controlável, e o que exige alguém cuidando do código.
- Automação no meio (n8n, Make, Zapier). O formulário manda para um webhook da automação, que trata o dado e cria o lead. Serve quando o envio precisa passar por regras: separar por serviço, enriquecer, avisar no chat do time. No n8n, o nó Webhook tem duas URLs: a de teste, que só escuta quando você pede, e a de produção, que só vale com o fluxo publicado.[6] Formulário apontado para a URL de teste funciona na demonstração e para no dia seguinte.
Campos ocultos: como a origem viaja com o lead
A origem não está no formulário. Está na URL por onde a pessoa chegou, e some quando ela navega para outra página. Campo oculto (input type="hidden") é o campo que o visitante não vê e que um script preenche antes do envio. Os que valem capturar:
- UTM. Parâmetros que você coloca no link da campanha. O GA4 reconhece nove;
utm_source,utm_mediumeutm_campaigndevem estar sempre, e os valores diferenciam maiúscula de minúscula (googleeGooglesão duas origens).[9] Como montar o padrão de nomes está em UTM. - gclid. O identificador de clique do Google Ads, que aparece na URL com a marcação automática ligada. O Google indica guardar o gclid num campo oculto do formulário e gravá-lo junto com os dados do lead; o valor diferencia maiúsculas e o script de exemplo da documentação guarda o parâmetro no navegador por 90 dias, para ele sobreviver à navegação até o envio.[7] É o que permite depois devolver a venda ao Google Ads.
- fbclid. O identificador de clique da Meta, que vem na URL quando a pessoa clica num anúncio do Facebook ou do Instagram. A Meta avisa que o valor diferencia maiúsculas e não pode ser alterado; ele é a base do parâmetro
fbcda API de Conversões, no formatofb.1.<data em milissegundos>.<fbclid>.[8] - Página de entrada e referência. A primeira URL da visita e o site que mandou a pessoa (
document.referrer). Sem UTM, é o que sobra para saber se veio de busca, de um artigo ou de um parceiro. - Página do envio. Em que página o formulário foi preenchido. Diz qual conteúdo converte, o que a UTM não diz.
Um detalhe que decide o resultado: a origem precisa ser guardada na primeira página da visita (em cookie ou localStorage) e lida na hora do envio. Se o script só lê a URL da página do formulário, quem chegou pelo anúncio no blog e converteu na página de contato entra sem origem. A mesma lógica explica boa parte do tráfego “direto” que não é direto, em Tráfego direto no GA4.
Mapeamento de campos e deduplicação
Mapear é dizer ao CRM em qual propriedade cada campo do formulário entra: “utm_source” no campo de origem, “empresa” no nome da organização, “serviço de interesse” numa lista fechada. Campo não mapeado não dá erro. Ele só não aparece, e o lead chega com nome e e-mail e mais nada. No HubSpot, por exemplo, os formulários externos gravam só em propriedades de texto de linha única.[1]
Deduplicar é evitar que a mesma pessoa vire dois registros. O e-mail é a chave na maioria dos CRMs de marketing. No RD Station, o e-mail é obrigatório e identifica cada lead da base.[3] No HubSpot, os envios de formulário externo são deduplicados por e-mail e pelo cookie do navegador: envios do mesmo navegador vão para o mesmo contato, mesmo com e-mails diferentes.[1] Duas decisões ficam com você: o que acontece com a origem quando o contato já existe (sobrescrever apaga a primeira origem; o melhor é guardar primeira e última em campos separados) e se o segundo envio cria um negócio novo ou atualiza o aberto.
Como conferir se o formulário está chegando
O jeito de saber se a integração funciona não é olhar o formulário. É contar nas duas pontas. No site, o evento de envio bem-sucedido; o GA4 recomenda o nome generate_lead para o envio de formulário ou pedido de informação.[10] No CRM, os leads criados no mesmo período com origem no site.
Taxa de origem = leads com UTM, gclid ou fbclid preenchido / leads criados pelo site
| O que você vê | Onde está o buraco | O que olhar primeiro |
|---|---|---|
| Menos leads no CRM que envios no site | Caminho de envio | Log da integração, chave de API, URL do webhook, fluxo publicado |
| Mais leads no CRM que envios no site | Contagem ou robôs | Evento que dispara em recarga de página, spam passando, lead de outra origem marcado como site |
| Lead chega, origem vazia | Campos ocultos ou mapeamento | Script que preenche o campo, campo mapeado no CRM, cache da página |
| Lead chega duplicado | Deduplicação | Duas integrações ativas ao mesmo tempo, chave de deduplicação que não é o e-mail |
| Lead chega, vendedor não fica sabendo | Notificação | E-mail de aviso, SPF, DKIM e DMARC, regra de distribuição do CRM |
A regra prática: taxa de chegada abaixo de 100% sem explicação (spam barrado, teste interno) é defeito, não flutuação. Lead não evapora; ele para em algum lugar do caminho.
O e-mail de notificação que não chega
Muita empresa usa o e-mail de aviso como integração: o formulário manda um e-mail para o comercial, e alguém cadastra o lead à mão. É o caminho que mais perde, por dois motivos.
O site manda e-mail sem autenticação. O WordPress, por padrão, envia pela função wp_mail com o remetente wordpress@ do domínio, e a própria documentação avisa que um retorno “verdadeiro” não quer dizer que o e-mail chegou, só que o envio foi processado sem erro.[13] O formulário mostra “mensagem enviada” e o e-mail nunca chega. A correção é enviar por SMTP autenticado (um serviço de envio transacional ou o servidor de e-mail da empresa) com o domínio configurado.
As regras de remetente de 2024. Desde fevereiro de 2024, o Gmail exige de todo remetente SPF ou DKIM, DNS direto e reverso válidos, conexão TLS e taxa de spam abaixo de 0,3%; quem envia mais de 5.000 mensagens por dia a contas Gmail precisa de SPF e DKIM, DMARC publicado e o domínio do remetente alinhado com o do SPF ou do DKIM.[11] O Yahoo passou a aplicar regras equivalentes no mesmo período: SPF ou DKIM para todos, e SPF, DKIM e DMARC com política mínima p=none para remetentes em volume.[12] Três siglas, em uma linha cada: SPF diz quais servidores podem enviar em nome do domínio; DKIM assina a mensagem para provar que não foi alterada; DMARC diz o que fazer quando as duas falham.
Um erro clássico: configurar o formulário para enviar “de” o e-mail do visitante, para o vendedor clicar em responder. O domínio do visitante não autorizou o servidor do site, a autenticação falha e o alinhamento que o DMARC exige não fecha. O certo é enviar do seu domínio e colocar o e-mail do visitante no campo “responder para” (Reply-To).
Spam e robôs sem perder lead de verdade
Formulário aberto na internet recebe robô. Sem proteção, o CRM enche de lixo e o comercial para de confiar no canal. Com proteção mal feita, o lead real é barrado e ninguém vê. As três camadas:
- reCAPTCHA v3 (Google). Não mostra desafio: devolve uma nota de 0,0 (quase certamente robô) a 1,0 (quase certamente pessoa). O Google sugere começar com o corte em 0,5 e ajustar ao seu tráfego. O token vence em dois minutos e precisa ser conferido no servidor, incluindo o nome da ação.[14]
- Turnstile (Cloudflare). A validação no servidor é obrigatória, porque o token pode ser forjado. Ele vale 300 segundos e só pode ser validado uma vez; depois disso, a resposta é o erro
timeout-or-duplicate.[15] Formulário que fica aberto enquanto a pessoa pensa precisa renovar o token, ou o envio falha. - Honeypot. Um campo escondido do visitante que só o robô preenche. Se veio preenchido, descarte. Custa nada, não atrapalha ninguém e barra boa parte dos robôs simples. Cuidado para o nome desse campo não colidir com os campos ocultos de origem.
Dois cuidados. Validação só no navegador não protege nada: o robô chama o endpoint direto. E o CAPTCHA pode quebrar a captura do CRM: o HubSpot não captura formulários externos com CAPTCHA.[1] Registre quantos envios foram barrados, para saber se a proteção está cortando gente.
Limites e padrões oficiais
Não há estatística pública confiável de “quanto lead se perde entre o site e o CRM” no Brasil. O que existe com documento primário são os limites de cada plataforma, e é neles que a integração quebra.
| Item | Valor oficial | Documento |
|---|---|---|
| Salesforce Web-to-Lead | até 500 leads em 24 horas; o excedente vai por e-mail e entra em fila | Salesforce Help[5] |
| HubSpot, formulários externos | não captura formulário em iframe, em site de página única ou com CAPTCHA; não lê campo oculto; grava só em propriedade de texto de linha única | HubSpot Knowledge Base[1] |
| RD Station Marketing | e-mail obrigatório, identifica o lead; API Key só para eventos de conversão | RD Station[2][3] |
| Pipedrive, formulários web | parte do complemento LeadBooster; criam lead ou negócio; reCAPTCHA opcional | Pipedrive Support[4] |
| UTM no GA4 | nove parâmetros; utm_source, utm_medium e utm_campaign sempre; valores diferenciam maiúsculas | Google Analytics Help[9] |
| gclid e fbclid | diferenciam maiúsculas; não alterar o valor | Google Ads Help[7] · Meta for Developers[8] |
| Gmail, todos os remetentes | SPF ou DKIM, DNS direto e reverso, TLS, spam abaixo de 0,3% | Google Workspace Admin Help[11] |
| Gmail, mais de 5.000 mensagens/dia | SPF e DKIM, DMARC, alinhamento do remetente, descadastro em um clique para marketing | Google Workspace Admin Help[11] |
| Yahoo, remetentes em volume | SPF e DKIM, DMARC com no mínimo p=none, descadastro em um clique atendido em 2 dias | Yahoo Sender Hub[12] |
| Token do reCAPTCHA v3 | vence em 2 minutos; nota de 0,0 a 1,0; corte inicial sugerido 0,5 | Google for Developers[14] |
| Token do Turnstile | vale 300 segundos, uso único, validação no servidor obrigatória | Cloudflare Docs[15] |
| Consentimento na LGPD | manifestação livre, informada e inequívoca, para finalidade determinada; prova é do controlador | Lei 13.709/2018[16] |
LGPD: o que o formulário precisa ter
Formulário coleta dado pessoal, então precisa de uma base legal, que é a hipótese da lei que autoriza o tratamento. A LGPD lista dez no artigo 7º.[16] Para formulário de contato comercial, três costumam aparecer:
- Procedimentos preliminares de contrato, a pedido do titular (art. 7º, V): a pessoa pediu orçamento ou contato. Cobre responder ao pedido, não mandar newsletter.
- Consentimento (art. 7º, I): necessário para usos que a pessoa não pediu, como receber conteúdo e ofertas. A lei define consentimento como manifestação livre, informada e inequívoca, para finalidade determinada; ele pode ser revogado a qualquer momento, e cabe à empresa provar que o obteve.[16] Na prática: caixa desmarcada, texto que diz para quê, e o registro de quando e como a pessoa marcou gravado no CRM.
- Legítimo interesse (art. 7º, IX): possível para alguns usos, desde que não prevaleçam os direitos do titular, e com registro das operações, que a lei pede especialmente nesse caso (art. 37).[16]
Três pontos práticos. Peça só o que o comercial usa: a lei tem o princípio da necessidade (art. 6º, III).[16] Leve a base legal e o consentimento ao CRM como campos, porque é lá que a régua de e-mail decide para quem manda; o RD Station, por exemplo, trata bases legais de comunicação como campo do lead.[3] E não coloque dado pessoal na URL (nome e e-mail em parâmetro da página de obrigado): a URL vai para o histórico, para o GA4 e para qualquer script de terceiro da página. Este guia não é parecer jurídico; a escolha da base legal é do encarregado de dados da empresa.
Como implementar na prática
Onde os números costumam estar
generate_lead).
localStorage na primeira página.
Quem precisa entrar
- 1 Liste todos os formulários do site e para onde cada um envia hoje. É comum achar formulário antigo mandando para um e-mail que ninguém lê.
- 2 Escolha um caminho por formulário: integração nativa, plugin, webhook ou automação. Dois caminhos ativos no mesmo formulário duplicam lead.
- 3 Crie os campos ocultos (UTM, gclid, fbclid, página de entrada, página do envio) e o script que guarda a origem na primeira página da visita.
- 4 Crie as propriedades no CRM e mapeie campo a campo, com primeira e última origem separadas.
- 5 Defina a deduplicação: chave por e-mail, e o que acontece com negócio aberto quando o contato volta.
- 6 Proteja contra robô com honeypot e reCAPTCHA ou Turnstile validado no servidor.
-
7
Autentique o e-mail de aviso: SMTP do seu domínio, SPF, DKIM e DMARC, e o visitante no
Reply-To. - 8 Teste de ponta a ponta com uma URL de teste com UTM, gclid e fbclid fictícios, em celular e computador, e confira o lead no CRM campo a campo.
- 9 Ligue o alarme: se o site registrou envio e o CRM não recebeu lead em X horas úteis, alguém é avisado.
O teste de ponta a ponta, passo a passo
Abra uma janela anônima com uma URL como https://seusite.com.br/blog/artigo?utm_source=teste&utm_medium=teste&utm_campaign=teste-integracao&gclid=TESTE123. Navegue para outra página antes de preencher (é o que o visitante faz). Envie o formulário com um e-mail de teste identificável. Confira: o lead nasceu no CRM, a origem veio completa, o gclid está idêntico (com as maiúsculas), a página de entrada é o artigo e não a página de contato, o vendedor foi avisado, e o e-mail de aviso não caiu no spam. Repita no celular. Depois apague ou marque o lead de teste, para não sujar o relatório.
Monitoramento: o formulário quebra em silêncio
Integração de formulário não dá erro na tela do visitante. Ele vê “obrigado”, a integração falha no fundo, e o primeiro sinal é o comercial reclamando que “o site parou de gerar lead” semanas depois. Três alarmes resolvem a maior parte: volume zero (nenhum lead do site em um dia útil em que houve envio no GA4), descasamento (envios no site × leads no CRM fora da tolerância) e origem vazia (a proporção de leads sem origem subiu de repente, sinal de que um campo oculto quebrou). Automações como o n8n guardam o histórico de execuções com falha[6]: alguém precisa olhar, ou um alerta precisa avisar.
Armadilhas comuns
Os erros que mais encontro auditando o caminho entre o site e o CRM.
Página em cache que congela o campo oculto
A causa: o script de origem roda no servidor e o plugin de cache guarda a página pronta, com o valor do primeiro visitante. O sintoma: dezenas de leads com a mesma UTM, de uma campanha antiga. A correção: preencher os campos ocultos no navegador, com JavaScript, depois que a página carrega, e testar com o cache ligado.
Origem lida só na página do formulário
A causa: o script lê a UTM da URL atual, e a pessoa chegou por outra página. O sintoma: taxa de origem baixa em quem converte depois de navegar, e alta só em landing page. A correção: gravar a origem na primeira página da visita e ler na hora do envio, sem sobrescrever com visita sem parâmetro.
Redirecionamento que corta o parâmetro
A causa: o anúncio aponta para http:// ou para a URL sem barra no fim, o servidor redireciona e descarta a query string. O sintoma: gclid e UTM vazios em todos os leads pagos, e o Google Ads mostrando cliques normalmente. A correção: apontar o anúncio para a URL final exata e conferir que o redirecionamento preserva os parâmetros. Sem o gclid, a venda nunca volta ao Google Ads, como mostra Integração de CRM e Ads.
Duas integrações no mesmo formulário
A causa: o plugin envia ao CRM e o código de rastreamento do CRM também captura o mesmo formulário. O sintoma: contatos em dobro, ou o mesmo contato com duas conversões e origens diferentes. A correção: um caminho por formulário. No HubSpot, a captura de formulários externos se liga e desliga para a conta inteira[1]: se um formulário já tem integração própria, decida qual das duas fica.
Origem sobrescrita quando o contato volta
A causa: o contato já existia, preencheu de novo vindo de busca orgânica, e o campo de origem foi trocado. O sintoma: o canal que trouxe o lead pela primeira vez some do relatório, e o orgânico ganha crédito que não é dele. A correção: dois campos, primeira origem (grava uma vez, nunca sobrescreve) e última origem (atualiza sempre). Como ler as duas está em Atribuição.
Webhook apontado para a URL de teste
A causa: a automação foi montada com a URL de teste e ninguém trocou pela de produção, ou o fluxo foi despublicado numa edição. O sintoma: funcionou na homologação, parou no dia seguinte. A correção: usar a URL de produção com o fluxo publicado[6] e ter o alarme de volume zero.
Evento de envio que conta tentativa, não sucesso
A causa: o evento dispara no clique do botão, antes da validação e da resposta do servidor. O sintoma: o GA4 mostra mais envios que o CRM, e a diferença parece perda de integração quando é erro de medição. A correção: disparar só na resposta de sucesso. Como nomear e disparar eventos está em Event tracking, e a variante da página de obrigado, em Erros comuns no GA4.
Checklist de implementação
FAQ
Perguntas frequentes sobre formulário no CRM
As dúvidas que mais aparecem de quem precisa que o lead do site chegue inteiro ao comercial.
Saber no mesmo dia que o formulário parou
Montar o caminho certo resolve hoje; conferir todo dia é o que garante amanhã. O Incuca Intelligence junta o que o site registrou e o que chegou ao CRM, e mostra quando a medição quebra, antes de o comercial sentir falta dos leads. Se os campos de origem, o mapeamento ou o alarme ainda não existem, o time da Incuca monta.
Referências
- [1] HubSpot Knowledge Base. Use non-HubSpot forms (requisitos, limitações e deduplicação dos formulários externos). https://knowledge.hubspot.com/forms/use-non-hubspot-forms
- [2] RD Station Developers. RD Station Marketing: introdução e requisitos da API (OAuth2 e API Key). https://developers.rdstation.com/reference/introducao-rdsm
- [3] Central de Ajuda RD Station. Importação de Leads e Bases Legais. https://ajuda.rdstation.com/s/article/Importa%C3%A7%C3%A3o-de-Leads-e-Bases-Legais?language=pt_BR
- [4] Pipedrive Knowledge Base. Web Forms. https://support.pipedrive.com/en/article/web-forms
- [5] Salesforce Help. What if my company reaches the limit for web-generated leads? https://help.salesforce.com/s/articleView?id=sf.faq_leads_what_if_my_company.htm&language=en_US&type=5
- [6] n8n Docs. Webhook node (URLs de teste e de produção). https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/
- [7] Google Ads Help. Configurar conversões off-line usando o ID de clique do Google (GCLID). https://support.google.com/google-ads/answer/7012522
- [8] Meta for Developers. Conversions API: ClickID and the fbp and fbc parameters. https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc
- [9] Google Analytics Help. URL builders: collect campaign data with custom URLs. https://support.google.com/analytics/answer/10917952
- [10] Google Analytics Help. Recommended events (eventos de geração de lead). https://support.google.com/analytics/answer/9267735
- [11] Google Workspace Admin Help. Email sender guidelines (diretrizes para remetentes). https://support.google.com/a/answer/81126
- [12] Yahoo Sender Hub. Sender Best Practices (requisitos para remetentes). https://senders.yahooinc.com/best-practices/
- [13] WordPress Developer Resources. wp_mail(). https://developer.wordpress.org/reference/functions/wp_mail/
- [14] Google for Developers. reCAPTCHA v3. https://developers.google.com/recaptcha/docs/v3
- [15] Cloudflare Docs. Turnstile: server-side validation. https://developers.cloudflare.com/turnstile/get-started/server-side-validation/
- [16] Brasil. Lei nº 13.709, de 14 de agosto de 2018 (Lei Geral de Proteção de Dados Pessoais), arts. 5º, 7º, 8º e 37. https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2018/lei/l13709.htm