Bloco Enquete
Uma pergunta de pesquisa de um toque: cada opção é ao mesmo tempo um controle real dentro do e-mail e um link simples. Votar funciona em qualquer lugar, do Gmail web ao cliente mais simples só de texto, sem pedir ao destinatário que saia da caixa de entrada na maioria dos casos.
Como funciona
Toda opção de enquete é renderizada com duas representações ao mesmo tempo, não uma escolhida no momento da criação. Onde quer que um cliente suporte envios de formulário dentro do e-mail (Gmail web/Android, Yahoo, entre outros), cada opção é um <form method="post"> real, enviado diretamente ao endpoint público de interações do MailInApp, então tocar nela registra o voto sem sair da caixa de entrada. Esse formulário fica envolvido em um nível apenas cinético e emparelhado com uma regra CSS que esconde a segunda representação: um link <a href> simples para /v/[token]/act, que confirma e registra o mesmo voto em uma página hospedada.
Onde quer que essa regra CSS não seja respeitada (Outlook, ou qualquer cliente que não consiga enviar um formulário dentro do e-mail), esse link escondido passa a ficar visível e faz o trabalho. Um link simples é o único elemento universal que todo cliente de e-mail consegue renderizar e seguir. Os dois caminhos são enviados pelo mesmo endpoint de registro e produzem um evento idêntico, então os resultados nunca se dividem conforme o cliente usado pelo destinatário.
Um voto é registrado assim que a confirmação acontece na página ao vivo (ou imediatamente em um envio dentro do e-mail) — nunca em uma simples busca de link. Isso importa porque scanners corporativos e ferramentas de segurança de caixa de entrada pré-buscam todo link de um e-mail assim que ele chega; se um GET simples contasse, os resultados da enquete se encheriam de bots antes mesmo de um humano abrir a mensagem. A confirmação acontece por meio de um envio de formulário mesmo no caminho do link, e é por isso que /v/[token]/act é uma confirmação-e-registro em duas etapas, em vez de um redirecionamento-e-registro direto.
O próprio voto de um destinatário é deduplicado. Clicar de novo no próprio link (um duplo toque apressado, um recarregamento de página repetido) não tem efeito, em vez de gerar uma segunda linha — isso é garantido por um id de documento determinístico no Firestore, associado à campanha, ao bloco e ao destinatário. Votos anônimos (sem token de destinatário — por exemplo, um vindo de um arquivo HTML exportado e colado em um ESP de terceiros) não são deduplicados por pessoa; não há pessoa para associar. Em vez disso, eles têm limite de taxa por IP, por campanha, por minuto, já que o id de uma campanha é visível no próprio código-fonte do e-mail, e nada mais impede um script de enviar votos arbitrários.
Campos configuráveis:
- Pergunta — o texto da pergunta da enquete, além de cor e tamanho de fonte próprios.
- Cor de fundo, preenchimento interno, borda e raio da borda no cartão.
- Cor do texto da opção e cor de fundo da opção — uma substituição de estilo compartilhada, aplicada a todos os chips de opção.
Cada opção da enquete é um nó filho com um único campo de rótulo — adicione, remova ou reordene opções livremente na árvore.
Se o projeto tiver uma data de encerramento ou um limite de respostas configurado (veja ciclo de vida da pesquisa) e ele já tiver sido atingido, a visualização ao vivo troca os chips interativos por equivalentes inertes e cinzas, com um aviso "Esta pesquisa está fechada para novas respostas". O HTML enviado por e-mail nunca mostra esse estado — ele é estático no momento do envio, e a verificação só acontece quando a página é aberta, não quando o e-mail é enviado.
Exemplos
Subject
Quick one: what should we build next?
Uma enquete de pergunta única ("Qual recurso devemos construir a seguir?") inserida em uma newsletter de produto dá uma leitura direta do interesse sem a sobrecarga de um formulário completo. Veja Pesquisas e feedback NPS para o padrão mais amplo de coletar feedback estruturado direto da caixa de entrada. Um e-mail de resumo de evento pode perguntar "Você viria a outro?" com opções Sim/Não/Talvez, alimentando diretamente o planejamento do próximo. Times indecisos em um teste A/B podem usar uma enquete como uma votação interna leve ("Logo A ou Logo B?") enviada às partes interessadas, com os resultados visíveis em tempo real na página de resultados conforme chegam.
Como é o fallback estático
<div id="em-poll-1" style="margin:12px 0;background-color:transparent">
<p style="margin:0 0 10px;font-weight:600;font-size:16px;color:#111827">Which do you prefer?</p>
<div>
<span class="kn-fallback">
<a href="https://mailinapp.com/v/eyJhbGci.../act?blockId=poll-1&blockType=poll&action=vote&option=Option+A"
style="display:inline-block;margin:0 6px 6px 0;padding:8px 14px;border:1px solid #d1d5db;border-radius:6px;background-color:#ffffff;color:#111827;font-size:14px;text-decoration:none">
Option A
</a>
</span>
</div>
</div>
Este é o caminho do link de nível 2: um <a> simples para /v/[token]/act, estilizado para parecer com o mesmo chip que o formulário dentro do e-mail renderiza — visível apenas quando o formulário cinético está escondido por CSS.