VendaloBlog › Leads e tráfego
Leads e tráfego

Como integrar o formulário do site ao CRM (com UTMs e origem do lead)

Blog do Vendalo · atualizado em 26/07/2026

Integrar o formulário ao CRM significa capturar o lead com contexto, não só com nome e e-mail

Conectar o formulário do site ao CRM é passar automaticamente cada novo lead para o funil de vendas, já com a origem, a campanha e o canal que trouxeram aquela pessoa. Sem isso, você recebe o contato mas não sabe se veio do Google Ads, do Instagram orgânico ou de um parceiro, e o vendedor aborda todo mundo do mesmo jeito. O resultado é previsível: taxa de conversão baixa e verba de mídia mal alocada.

Este guia mostra como montar essa integração do zero, capturar os parâmetros UTM corretamente e garantir que a origem chegue limpa no CRM, sem depender de planilha nem de memória do time.

Por que a maioria das integrações falha antes de começar

O erro mais comum é conectar o formulário ao CRM e achar que o trabalho acabou. O lead chega, mas o campo "origem" fica em branco, ou pior, vem preenchido com "Direto" para todo mundo porque ninguém configurou o repasse de UTMs.

Outros problemas frequentes:

Pré-requisitos antes de tocar no código

1. Defina a estrutura de UTMs da sua empresa

Antes de capturar qualquer parâmetro, padronize o que você vai usar. Uma sugestão prática:

Parâmetro O que representa Exemplo
utm_source Canal de origem google, meta, linkedin
utm_medium Tipo de mídia cpc, email, organic
utm_campaign Nome da campanha fundo-funil-jul25
utm_content Variação do criativo banner-verde, headline-a
utm_term Palavra-chave (Search) crm-para-vendas

Defina isso antes de criar as campanhas. Mudar a nomenclatura no meio do caminho quebra os relatórios históricos.

2. Escolha onde guardar as UTMs na sessão do usuário

Use sessionStorage para manter a UTM da sessão atual e localStorage para preservar o primeiro toque, mesmo que o usuário volte depois. A estratégia mais comum é gravar no primeiro acesso e nunca sobrescrever, assim você atribui o lead à mídia que gerou o interesse original.

Passo a passo da integração

Passo 1: Script para capturar e salvar as UTMs

Cole este script no <head> de todas as páginas do site, antes de qualquer formulário:


(function() {
  var params = new URLSearchParams(window.location.search);
  var utmKeys = ['utm_source','utm_medium','utm_campaign','utm_content','utm_term'];
  utmKeys.forEach(function(key) {
    var val = params.get(key);
    if (val && !localStorage.getItem(key)) {
      localStorage.setItem(key, val);
    }
  });
})();

A lógica !localStorage.getItem(key) garante que o primeiro toque nunca seja sobrescrito por visitas orgânicas posteriores.

Passo 2: Adicionar campos ocultos no formulário

No HTML do formulário, adicione um campo oculto para cada UTM:


<input type="hidden" name="utm_source" id="f_utm_source">
<input type="hidden" name="utm_medium" id="f_utm_medium">
<input type="hidden" name="utm_campaign" id="f_utm_campaign">
<input type="hidden" name="utm_content" id="f_utm_content">
<input type="hidden" name="utm_term" id="f_utm_term">
<input type="hidden" name="landing_page" id="f_landing_page">

O campo landing_page captura a URL exata da página onde o lead converteu, útil para saber qual conteúdo converte mais.

Passo 3: Preencher os campos ocultos com JavaScript

Logo antes do fechamento do </body>:


document.addEventListener('DOMContentLoaded', function() {
  var utmKeys = ['utm_source','utm_medium','utm_campaign','utm_content','utm_term'];
  utmKeys.forEach(function(key) {
    var el = document.getElementById('f_' + key);
    if (el) el.value = localStorage.getItem(key) || '';
  });
  var lp = document.getElementById('f_landing_page');
  if (lp) lp.value = window.location.href;
});

Passo 4: Enviar para o CRM via webhook ou API

A maioria dos CRMs aceita leads por webhook (POST com JSON) ou por integração nativa. O payload mínimo que você deve enviar:


{
  "nome": "Maria Souza",
  "email": "maria@empresa.com.br",
  "telefone": "11999990000",
  "origem": "google",
  "utm_source": "google",
  "utm_medium": "cpc",
  "utm_campaign": "fundo-funil-jul25",
  "utm_content": "banner-verde",
  "utm_term": "crm-para-vendas",
  "landing_page": "https://seusite.com.br/lp/crm-vendas"
}

No Vendalo, o campo "origem" do lead alimenta diretamente os relatórios por canal e permite que o rodízio de leads distribua contatos de origens específicas para equipes diferentes, algo útil quando você tem um time dedicado ao Google Ads e outro ao Meta.

Passo 5: Tratar erros e confirmar o recebimento

Configure o formulário para capturar a resposta do webhook. Se o CRM retornar qualquer código diferente de 200 ou 201, guarde o payload em fila (localStorage ou banco próprio) e tente reenviar. Um lead perdido por falha técnica é dinheiro jogado fora, especialmente quando você já pagou pelo clique.

Como testar se a integração está funcionando

  1. Acesse uma página com formulário adicionando UTMs manualmente na URL: ?utm_source=teste&utm_medium=cpc&utm_campaign=validacao
  2. Abra o console do navegador e digite localStorage.getItem('utm_source'). O retorno deve ser "teste".
  3. Preencha e envie o formulário.
  4. Vá ao CRM e confirme que o lead chegou com os campos de UTM preenchidos.
  5. Repita o teste abrindo a URL sem UTMs (simula visita orgânica posterior). As UTMs já gravadas no localStorage não devem ser substituídas.

Integração com ferramentas de formulário sem código

Se você usa RD Station Forms, Typeform, HubSpot Forms ou similar, o processo muda um pouco:

Em todos os casos, o destino final ainda precisa ser um webhook ou integração nativa com o CRM. Use Zapier ou Make se não houver integração direta, mas monitore falhas, essas ferramentas têm limites de tarefa e podem silenciosamente parar de funcionar.

O que fazer com a origem depois que o lead chega no CRM

Capturar a UTM é só metade do trabalho. O valor real aparece quando você cruza origem com resultado de vendas:

Com esses dados você para de otimizar para custo por lead e começa a otimizar para custo por cliente, que é o número que realmente importa para o negócio.

O Vendalo permite exportar conversões offline (negócios fechados no CRM) de volta para o Google Ads, fechando o loop entre o clique pago e a venda real. O algoritmo do Google passa a aprender com vendas, não com formulários preenchidos, o que tende a melhorar significativamente o CPA real das campanhas.

Erros que vão aparecer em produção (e como resolver)

Erro Causa provável Solução
UTM vem em branco Script não está no head ou o formulário está em iframe Mova o script para o head, tire o formulário do iframe
Todos os leads vêm como "Direto" Cookie/localStorage sendo sobrescrito Revise a lógica de não-sobrescrita no script
Lead não chega no CRM Webhook com erro 4xx ou 5xx Adicione log de resposta e alerta por e-mail ou Slack
UTM com caracteres estranhos URL não foi codificada corretamente Use encodeURIComponent ao montar links de campanha
Duplicata de lead no CRM Usuário enviou o formulário duas vezes Configure deduplicação por e-mail ou telefone no CRM

Resumo do fluxo completo

  1. Usuário clica no anúncio com UTMs na URL.
  2. Script no head grava as UTMs no localStorage (apenas no primeiro acesso).
  3. Usuário preenche o formulário; campos ocultos são preenchidos pelo script.
  4. Formulário envia dados mais UTMs para o CRM via webhook.
  5. CRM cria o lead com origem, canal e campanha já preenchidos.
  6. Vendedor aborda o lead sabendo exatamente o contexto do interesse.
  7. Ao fechar o negócio, a conversão é exportada para o Google Ads como evento offline.

Montar isso uma vez e manter funcionando poupa horas de investigação toda vez que o dono da empresa pergunta "de onde vieram os clientes desse mês?". A resposta vai estar no CRM, com dados precisos, sem depender de memória de ninguém.

Veja isso funcionando na sua operação

O Vendalo é o CRM com SDR de IA no WhatsApp oficial: atende, qualifica e agenda por você. A demonstração usa seu cenário real de vendas.

Quero uma demonstração

Leia também

Leads e tráfegoLead Ads do Facebook e Instagram: como receber e atender na horaLeads e tráfegoConversões offline no Google Ads: ensine o Google a achar quem compraLeads e tráfegoUTMs para vendas: saiba qual campanha traz receita, não só leads