O formulário não apareceu ou o lead não chegou
Correções sintoma por sintoma: formulário não aparece ou aparece uma vez, falha no Instagram, Google Forms em branco, botão cinza, lead ausente.

Encontre o seu sintoma abaixo. Cada item traz a causa que a CodeQR conhece, a correção e onde ler mais. Termos: "formulário da plataforma" é um formulário de Página da CodeQR; "formulário externo" é um Google Forms, Typeform, Tally ou outra URL exibida no modal.
O formulário não aparece — o link vai direto ao destino
Confira nesta ordem:
- Você já o viu neste navegador na última hora. Depois de um envio ou de um pulo, a CodeQR grava um cookie
skipFormpor uma hora naquele link. Abra uma janela anônima ou outro navegador. É o relato mais comum. - O link ou QR Code foi aberto por um robô ou uma prévia de link. WhatsApp, Slack, Facebook, Google e outros crawlers recebem o destino diretamente. Teste com um navegador de verdade ou com
curl -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X)": a resposta precisa ser200comx-pathname: /<domínio>/pre-redirection/<chave>/link. - O QR Code é estático. Só QR Codes dinâmicos mostram o formulário; o editor desabilita o botão em códigos estáticos ("Pre-redirection pages are only available for dynamic QR codes"). A API aceita os campos num código estático, mas o código impresso codifica o destino e nada roda. Crie um QR Code dinâmico.
- O workspace caiu abaixo de Business. O formulário é um recurso Business; em Free, Starter ou Pro o botão mostra o selo Business e os links continuam redirecionando sem formulário.
- O botão está ligado, mas nenhuma página foi selecionada (
preRedirection: truecompageUrlvazio, possível pela API). Selecione uma página ou cole a URL externa e salve. - O link está camuflado, expirado ou protegido por senha: isso roda antes. Corrija o próprio link.
O formulário aparece na primeira vez e nunca mais
O mesmo cookie skipForm de uma hora. Pular conta tanto quanto enviar. Para testes repetidos use janelas anônimas; para um visitante real, o formulário volta depois de uma hora.
O formulário não carrega dentro do Instagram, do Facebook ou do TikTok
QR Codes escaneados pela câmera abrem o navegador de verdade do celular e funcionam. O mesmo link tocado dentro de um app social abre o navegador interno do app, onde cookies de terceiros, login no Google, upload de arquivos e alguns scripts são bloqueados ou quebram — Typeform e Jotform já relataram formulários falhando ali, e a correção dependeu da Meta. O que você pode fazer:
- Prefira um formulário da plataforma (mesma origem, sem cookies de terceiros, sem login) a um externo para tráfego de redes sociais.
- Diga aos visitantes para abrir o link no navegador (menu "⋯" → "Abrir no navegador") quando souber que o tráfego vem de um link na bio.
- Mantenha o formulário curto; uploads e login no Google não funcionam em navegadores internos.
O modal abre com uma caixa em branco (formulário externo)
O provedor do formulário não permite a página dele dentro de outro site (X-Frame-Options, CSP frame-ancestors), ou o navegador do visitante bloqueou (Safari com configuração estrita de cookies, um bloqueador de anúncios). A requisição devolve 200, a caixa fica vazia. Só o dono do formulário pode permitir a incorporação; senão, use um formulário da plataforma. Veja Use um Google Forms ou Typeform antes do redirecionamento.
O Google Forms pede para o visitante fazer login
O formulário tem pergunta de upload de arquivo, "Limitar a 1 resposta" ou coleta de e-mail verificada. Desligue isso no Google Forms ou mova o formulário para uma Página da CodeQR.
O botão de envio fica cinza
O visitante não marcou Li e concordo. O consentimento é exigido em todo formulário da plataforma e não pode ser desligado. Se o botão está cinza com a caixa marcada, um campo obrigatório está vazio — o navegador o marca quando o visitante tenta enviar.
O visitante enviou e nada aconteceu, ou "Muitos envios"
Muitos envios. Tente novamente em instantes.— mais de 10 envios em um minuto do mesmo endereço IP naquela página (uma rede compartilhada num evento pode bater nisso). Espere um minuto.Aceite o termo de consentimento para continuar.— a caixa de consentimento estava desmarcada quando a requisição chegou ao servidor.Alguns campos estão inválidos. Revise e tente novamente.— um valor falhou na validação do campo (padrão, tamanho, mín./máx.). Afrouxe a validação em Campos do Formulário se visitantes legítimos estão esbarrando nela.- Formulário externo: o visitante vê a confirmação da própria ferramenta e precisa fechar o modal para continuar. A CodeQR não é avisada do envio.
O visitante fechou o modal e chegou à página sem preencher
O formulário é opcional, ou é um formulário externo. Marque Preenchimento obrigatório? numa página da plataforma: Torne o formulário obrigatório ou deixe o visitante pular.
A resposta está em Respostas, mas o lead não está em Eventos, na Análise ou no Zapier
O botão Monitoramento de conversão da página está desligado. Com ele desligado, os leads vão para Respostas, Clientes, o e-mail e os conectores de CRM — não para Eventos nem para webhooks lead.created. Ligue-o em Páginas → sua página → Conteúdo do Formulário e salve; vale a partir do próximo envio. O Monitoramento de conversão exige Pro ou superior. Tabela completa: Para onde vão os leads.
O lead está no Google Sheets, mas não no HubSpot, no RD Station ou no Kommo
Cada conector recebe o lead separadamente. Os CRMs desduplicam por e-mail: um endereço repetido atualiza o contato existente e responde "já existe" — o lead está lá, no registro antigo. Se o contato nunca existiu, confira o mapeamento de campos do conector em Configurações → Integrações e o log da própria ferramenta.
Nenhum e-mail chegou para um novo lead
Receber novos leads por e-mail está desligado naquela página, ou você é membro e não proprietário (os e-mails vão para proprietários), ou caiu no spam. Os e-mails são enviados só para envios concluídos; não existe notificação push para leads.
O mesmo lead aparece duas vezes na minha automação
O seu endpoint respondeu devagar e a entrega foi repetida, ou duas assinaturas escutam lead.created. Desduplique pelo id do cliente e responda 200 antes de processar. A própria CodeQR registra no máximo 5 leads por hora para o mesmo e-mail e evento.
Os parâmetros UTM faltam no destino depois do formulário
Por desenho, hoje: depois do formulário, o visitante é enviado pelo link curto sem a query string original. Os valores de UTM ficam gravados com a resposta (exportação CSV, customFields no webhook), não repassados. Se a sua landing page precisa recebê-los, acrescente-os à URL de destino com o UTM Builder no construtor de links.
O formulário está no idioma errado, ou mistura idiomas
O formulário em si aparece no idioma dos textos da página (seus títulos, rótulos e texto de consentimento). A moldura em volta — denunciar abuso, termos — está em português para todo visitante hoje. Escreva os textos da página no idioma do seu público.
O card da página mostra 0 visualizações, 0 inícios, 0 concluídos, mas Respostas tem linhas
Os contadores de funil do card da página contam visitas à página avulsa. Envios feitos pelo modal de pré-redirecionamento aparecem em Respostas e contam em Eventos (com o Monitoramento de conversão ligado), não nesses três contadores.
O seletor não mostra a minha página
Só páginas do workspace atual são listadas. Troque de workspace ou crie a página aqui.
Leads de spam ou lixo
A CodeQR aplica um campo honeypot oculto (robôs que preenchem todo campo são descartados), um limite de 10 envios por minuto por IP e página e validação de todo campo no servidor. Para ir além: marque o e-mail como obrigatório com o padrão e-mail, evite campos de texto livre desnecessários e exporte com frequência para notar picos. Não há CAPTCHA no formulário.
A API recusa a minha requisição
Pre-redirection page URL missing— Correção: enviepageUrl(o servidor não o deriva depageId)Invalid pre-redirection page URL— Correção:pageUrlprecisa ser uma URLhttp(s)absolutaCodeQR page required for form submission— Correção:isFormMandatory: trueexigepageId; formulários externos não podem ser obrigatóriosPage not found— Correção: opageIdnão existeYou can only use pre-redirection on a Business plan and above…— Correção: faça upgrade, ou enviepreRedirection: false