Como Integrar Webhooks para CRM em Landing Pages
Captar um lead e processá-lo de forma eficiente é o coração de qualquer operação digital B2B. A maneira tradicional de fazer isso envolve plugins pesados do WordPress ou iframes de terceiros que destroem a performance (Core Web Vitals) da página.
A solução moderna para alta performance e segurança é a integração assíncrona via Webhooks e Vanilla JavaScript.
1. O que é um Webhook?
Um webhook é, em essência, uma URL para onde o seu formulário envia um pacote de dados (geralmente em formato JSON) via requisição POST no momento em que um evento ocorre (como o clique no botão “Enviar”). O CRM receptor (como HubSpot, Pipedrive, ou ferramentas como Make/Zapier) “escuta” essa URL, processa o JSON e cria o card do lead na hora.
2. Abordagem Vanilla JS: Rápido e Assíncrono
Abandonamos o tradicional <form action="..."> que recarrega a página. Usamos fetch() em JavaScript.
document.getElementById('leadForm').addEventListener('submit', async (e) => {
e.preventDefault(); // Evita o recarregamento da página
// Captura dos dados
const formData = new FormData(e.target);
const data = Object.fromEntries(formData.entries());
// Webhook gerado pelo seu CRM ou Make.com
const webhookURL = 'https://hook.us1.make.com/SEU_ID_AQUI';
try {
// Envio assíncrono
const response = await fetch(webhookURL, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
});
if (response.ok) {
alert('Lead capturado com sucesso!');
// Mostrar modal de sucesso, redirecionar, etc.
}
} catch (error) {
console.error('Erro na integração:', error);
}
});
3. Segurança e Prevenção de Spam (Honeypot)
Como não estamos usando reCAPTCHAs pesados do Google, implementamos a técnica de Honeypot. Criamos um campo de formulário oculto via CSS. Robôs de spam (bots) preencherão todos os campos cegamente, incluindo o oculto. Humanos não verão o campo e o deixarão vazio.
No HTML:
<div class="hidden-field" style="display: none; visibility: hidden; position: absolute; left: -9999px;">
<label for="website_url">Não preencha isto se você for humano:</label>
<input type="text" id="website_url" name="website_url" tabindex="-1" autocomplete="off">
</div>
No JavaScript:
// Antes do fetch
if (data.website_url && data.website_url !== '') {
console.warn('Bot detectado.');
return; // Aborta silenciosamente
}
4. Formatação de Dados (Payload)
Seus campos no HTML devem ter o atributo name compatível com as propriedades esperadas pelo CRM.
Por exemplo, se o CRM espera firstname e company_size:
<input type="text" name="firstname" required>
<select name="company_size">
<option value="1-10">1-10 funcionários</option>
</select>
Conclusão
Substituir formulários engessados e pesados por integrações assíncronas em Webhooks não apenas zera o tempo de bloqueio (blocking time) na sua página, garantindo o “100/100” no Lighthouse, como também oferece liberdade total de design, mascaramento de campos (como CPF e Telefone) e integração impecável. Em landing pages focadas em CRO, essa infraestrutura invisível é ouro.
Quer acelerar o site da sua empresa?
Construímos landing pages de altíssima performance para maximizar seu tráfego pago e SEO orgânico.



