Formulários, campos ocultos e envio do click_id ao CRM
Como a tag preenche campos de formulário, como levar o click_id até o CRM ou a planilha, e como o CRM devolve a conversão — com exemplos para HTML, Elementor, RD Station e webhooks.
Para uma venda que fecha por telefone ou por proposta, o caminho é: o formulário grava o click_id junto com o lead, o CRM guarda o valor no contato, e quando o negócio fecha o CRM manda o postback. Este artigo cobre a primeira metade.
O campo que a tag preenche
A tag procura, em todas as páginas, elementos com um destes seletores e coloca neles o click_id atual:
<input type="hidden" name="click_id">
<input type="hidden" name="cid">
<input type="hidden" data-af-clickid>
Basta adicionar um campo oculto com name="click_id" ao formulário. A tag preenche no carregamento e continua observando o DOM — formulários abertos em pop-up ou carregados depois também são preenchidos.
O valor tem 22 caracteres alfanuméricos. Se o formulário valida tamanho, permita pelo menos 32.
Ferramentas de formulário
| Ferramenta | Como adicionar o campo |
|---|---|
| Elementor Forms | Adicione um campo do tipo Hidden, defina o ID do campo como click_id (o name do input vira form_fields[click_id] — nesse caso use data-af-clickid via Atributos personalizados do campo, ou renomeie com o filtro do Elementor). |
| Contact Form 7 | [hidden click_id] no formulário. |
| WPForms / Gravity Forms | Campo Hidden com nome/parâmetro click_id. |
| RD Station, HubSpot (embed) | Crie uma propriedade click_id no CRM e adicione o campo oculto correspondente ao formulário incorporado. Os embeds costumam renderizar <input name="click_id"> a partir da propriedade. |
| Typeform, Tally | Use campos ocultos e passe o valor pela URL: ?click_id= — leia window.af.clickId e monte o link. |
| HTML próprio | <input type="hidden" name="click_id">. |
Quando não é possível controlar o name, o atributo data-af-clickid em qualquer elemento (inclusive um <input> com outro nome) resolve.
Lendo pelo JavaScript
window.af.clickId devolve o identificador resolvido. Ele só existe depois que o servidor responde à tag; leia no momento do envio:
form.addEventListener('submit', () => {
const cid = window.af && window.af.clickId;
if (cid) form.querySelector('[name=click_id]').value = cid;
});
Do formulário ao CRM
O lead precisa chegar ao CRM com o click_id guardado num campo. Crie uma propriedade personalizada (click_id, texto) no CRM e mapeie o campo do formulário para ela. Sem isso, o identificador morre no e-mail de notificação.
Se o formulário só manda e-mail, um caminho simples é o CRM de leads do próprio painel: o lead pode ser criado pela API (POST /api/leads com name, phone, email, value, click_id) por uma automação, ou manualmente, e movido no kanban até Vendido. Veja CRM de leads.
Do CRM à conversão
Quando o negócio fecha, o CRM (ou a automação) chama a URL de postback com o click_id guardado:
https://app.affilitrack.com.br/pb?token=SEU_TOKEN&click_id={click_id}&tipo=venda&payout={valor}&txid={id_do_negocio}
- Etapa "lead": muitas operações disparam um postback
tipo=leadna entrada do formulário (não conta receita) e outrotipo=vendano fechamento (conta receita). Os dois convivem porque são tipos diferentes. txid: use o ID do negócio no CRM. Ele garante que reprocessar o webhook não duplique a conversão.
Webhooks de CRM (RD Station, HubSpot, Pipedrive, Kommo) podem chamar a URL diretamente ao mudar a etapa; quando o CRM só manda JSON com nomes próprios, um Merchant traduz os parâmetros. Veja CRM e webhooks genéricos.
Verificar de ponta a ponta
- Abra o site pelo link de rastreio.
- Inspecione o formulário: o campo
click_idestá preenchido. - Envie o formulário e confira no CRM que o contato tem o valor.
- Dispare o postback (pelo CRM ou pelo Simulador) e veja a conversão em Conversões.