Rastreamento e atribuição

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.

Leitura de 8 min · atualizado em 24/09/2026

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 FormsAdicione 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 FormsCampo 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, TallyUse 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=lead na entrada do formulário (não conta receita) e outro tipo=venda no 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

  1. Abra o site pelo link de rastreio.
  2. Inspecione o formulário: o campo click_id está preenchido.
  3. Envie o formulário e confira no CRM que o contato tem o valor.
  4. Dispare o postback (pelo CRM ou pelo Simulador) e veja a conversão em Conversões.

Esta página foi útil?

Leia também