Marketing por e-mail: boas práticas e descadastro
Consentimento, o link e a página de descadastro, o descadastro com um clique, tópicos e os cuidados que mantêm suas campanhas e automações fora do spam.
#Transacional e marketing
E-mails transacionais respondem a uma ação da pessoa: confirmação de pedido, redefinição de senha, aviso de entrega. Eles saem por POST /emails ou SMTP e não consultam a audiência. E-mails de marketing são os que você decide mandar: newsletters, promoções, sequências de boas-vindas. Para eles, use campanhas e automações: a Postal respeita o descadastro, filtra a lista de supressão e coloca o link e os cabeçalhos de descadastro em cada mensagem.
Descadastro e POST /emails
O descadastro de um contato (unsubscribed) vale para campanhas e para os envios das automações, não para POST /emails. Se você mandar marketing por ali, consulte o contato antes e respeite a escolha dele: o webhook contact.updated avisa quando ela muda.
#Consentimento
- Mande marketing só para quem pediu: quem se inscreveu num formulário, marcou a opção no cadastro ou é cliente e foi avisado. Listas compradas, alugadas ou raspadas da internet não são permitidas pela Política de Uso Aceitável e destroem a reputação do domínio.
- Ligue o double opt-in nos formulários públicos: a pessoa confirma o endereço antes de entrar na audiência, o que evita endereços digitados errado e inscrições de robôs.
- Guarde de onde veio cada contato (uma propriedade como
source) e quando ele se inscreveu. Pela LGPD, você precisa conseguir mostrar a base legal do envio. - Quem só recebeu um e-mail transacional seu não aceitou receber marketing. Esses endereços entram sozinhos na audiência como contatos não confirmados e ficam de fora de campanhas e automações até o dono ou um admin confirmar que as pessoas aceitaram, assumindo a responsabilidade por esse consentimento. Veja Audiência automática dos e-mails transacionais.
- Ao importar uma lista antiga, traga também os descadastros (a coluna
unsubscribedno mapeamento) e comece pelos contatos mais recentes e engajados.
#Link e página de descadastro
Cada e-mail de campanha ou de automação leva um link assinado, exclusivo do contato, para a página de preferências no host dos formulários:
https://forms.postal.so/preferencias/019a1e00-1a2b-7c3d-8e4f-5a6b7c8d9e0f?email=019a1b2c-4d5e-7f60-8a9b-0c1d2e3f4a5b&signature=5d1c9a…
Na página, que usa o nome do seu time, a pessoa pode:
- sair de tudo: o contato fica com
unsubscribed: truee não recebe mais campanhas nem e-mails de automações; - voltar a receber, se mudar de ideia;
- escolher os tópicos: aparecem os tópicos públicos do time, com a inscrição atual marcada.
O link não expira, para que e-mails antigos continuem funcionando, e só vale para aquele contato: alterado, ele mostra “Link inválido” (“Invalid link”, em inglês). Cada mudança dispara o webhook contact.updated. Numa campanha, o link já está no rodapé automático; para colocá-lo onde quiser, use {{{POSTAL_UNSUBSCRIBE_URL}}} no HTML (e, nas automações, no template).
Idioma do rodapé e da página
O rodapé automático e a página de preferências (com os avisos que ela mostra) falam o idioma de quem recebe, pt-BR ou en. A Postal escolhe para cada destinatário, usando o primeiro que existir:
- o
languageda campanha (pt-BRouen); - a propriedade
languagedo contato, comopt-BRouen-US(vale o idioma antes do hífen; outros idiomas são ignorados); - a propriedade
localedo contato, da mesma forma; - o idioma que o dono do time escolheu no painel;
- português do Brasil, quando nada diz qual é o idioma.
A página de preferências usa a mesma ordem. A campanha que vale é a do e-mail em que a pessoa clicou (o link leva o ID do e-mail); links de automações e links antigos, sem o e-mail da campanha, começam pelo contato. O Accept-Language do navegador não conta nessas páginas. A página de link inválido (link alterado, ou de um contato que não existe) escolhe assim: o idioma do contato citado no link (o das propriedades ou, sem ele, o do time), depois o Accept-Language do navegador (pt-BR ou en) e, por fim, português do Brasil.
Para fixar o idioma de uma campanha, envie language ao criá-la ou atualizá-la. A Postal não traduz o seu conteúdo (assunto, HTML, texto): só o que ela mesma acrescenta.
#Descadastro com um clique
Todos os e-mails de campanha e de automação trazem os cabeçalhos do descadastro com um clique (RFC 8058), que os grandes provedores de caixa de entrada exigem de quem envia em volume e usam para mostrar o botão “Cancelar inscrição” ao lado do remetente:
List-Unsubscribe: <https://forms.postal.so/preferencias/019a1e00-1a2b-7c3d-8e4f-5a6b7c8d9e0f?email=019a1b2c-4d5e-7f60-8a9b-0c1d2e3f4a5b&signature=5d1c9a…>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
O provedor faz um POST no link com List-Unsubscribe=One-Click e a Postal responde 200, sem pedir confirmação. O efeito depende da origem:
| O que o clique faz | |
|---|---|
Campanha com topic_id | Tira o contato só daquele tópico (opt_out). Ele continua recebendo os outros assuntos. |
| Campanha sem tópico | Descadastra o contato de tudo (unsubscribed: true). |
| E-mail de automação | Descadastra o contato de tudo. |
Nas campanhas, cada descadastro conta uma vez em stats.unsubscribed e na métrica unsubscribed de GET /emails/metrics.
#Use tópicos
Quem só tem a opção “sair de tudo” sai de tudo. Com tópicos (“Novidades”, “Promoções”, “Conteúdo”), a pessoa pode deixar de receber promoções e continuar lendo a newsletter.
- Crie os tópicos como
publicpara que apareçam na página de preferências. - Envie cada campanha com o
topic_iddo assunto: só recebe quem está inscrito, e o clique único tira a pessoa só daquele tópico. - Escolha o padrão com cuidado:
opt_ininclui quem nunca escolheu nada;opt_outsó inclui quem pediu, o ideal para assuntos mais frequentes.
#Reputação e entregabilidade
- Use um domínio verificado e um remetente estável, como
novidades@. Separar marketing num subdomínio (por exemplo,news.lojaexemplo.com.br) protege a entrega dos e-mails transacionais. Veja Domínios e DNS. - Cresça aos poucos. Num domínio novo, comece pelos segmentos mais engajados e aumente o volume ao longo de dias. Envios grandes também pausam sozinhos quando a cota acaba e continuam quando ela renova.
- Cuide da lista. Bounces permanentes e reclamações de spam vão para a lista de supressão e saem dos próximos envios. Contatos que não abrem há meses merecem uma campanha de reengajamento ou a remoção.
- Acompanhe as taxas. A Postal pausa os envios do time quando os bounces permanentes passam do limite do nível da reputação da conta (de 3% a 5%) ou as reclamações passam de 0,3%. Uma taxa de descadastro alta numa campanha indica que o assunto ou a frequência não combinam com aquele segmento. Os avisos antes da pausa e como detectá-la estão em Limites; uma campanha em andamento fica
paused(veja os status) e só continua depois que os envios voltam. - Teste antes. Confira a prévia com um contato real, mande um teste, escreva um
preheadere mantenha uma versão em texto. - Seja reconhecível. Diga no rodapé quem está enviando e por que a pessoa recebe (“Você recebe porque se inscreveu em lojaexemplo.com.br”).
#Meça e reaja
- Compare campanhas.
GET /emails/metricscomdimensions=broadcasttraz entrega, abertura, clique e descadastro de cada campanha no período, e a própria campanha trazstats. Veja Métricas e webhooks. - Teste uma coisa de cada vez. O passo
experimentde uma automação divide os contatos entre 2 e 4 variantes (assuntos, conteúdos, esperas), mede aberturas, cliques, respostas e conversões e deixa você declarar a vencedora. Depende do plano. - Escute as respostas. Com
detect_replies, a Postal registra cada resposta (o webhookemail.replied) e continua encaminhando para o seureply_to. Veja Detectar respostas. - Reaja ao que a pessoa faz. Uma automação pode começar quando o contato abre ou clica num e-mail (
email.opened,email.clicked), recebe uma etiqueta ou muda uma propriedade, e o passowait_forespera a ação por um prazo antes de seguir por outro caminho.
#Sincronize com o seu sistema
Se o seu produto também guarda a preferência de e-mail, mantenha os dois lados iguais:
- Assine o webhook
contact.updatede atualize o seu cadastro quandounsubscribedou os tópicos mudarem. - Quando a pessoa mudar a preferência no seu produto, use
PATCH /contacts/{id}comunsubscribed, ouPATCH /contacts/{id}/topics. - Quem volta a se inscrever por um formulário volta a receber, mesmo que tenha se descadastrado antes.