Campanhas
Campanhas enviam jornadas de email guiadas pelo seu stream de eventos: um evento gatilho inicia uma jornada, os passos enviam emails após delays configuráveis, e um evento de saída a encerra mais cedo (“objetivo atingido”). Os eventos de entrega voltam para o seu analytics como eventos $email_*, então o funil de uma campanha é consultável como qualquer outro dado.
As jornadas hoje são lineares: gatilho → (delay → email) → (delay → email) → … Jornadas com ramificações, quiet hours e envio ciente de fuso horário estão no roadmap.
Anatomia de uma campanha
Seção intitulada “Anatomia de uma campanha”| Peça | O que faz |
|---|---|
| Evento gatilho | Um nome de evento que inicia uma jornada para a pessoa que o executou (ex.: cart_abandoned) |
| Filtros do gatilho | Condições opcionais sobre as propriedades do evento gatilho, combinadas com AND. Operadores: exact, icontains |
| Coorte de audiência | Coorte opcional: só membros podem entrar na jornada |
| Passos | Cada passo = delay + email (assunto + template de corpo). O delay do passo 1 conta a partir do gatilho |
| Evento de saída | Se a pessoa o executa antes de a jornada terminar, ela para (goal met) e nenhum outro email é enviado |
| Reentrada | never (uma jornada por pessoa, para sempre) ou after N days (pode reentrar quando a jornada anterior tiver terminado há ≥ N dias) |
| Frequency cap | Máximo de mensagens para uma pessoa dentro de uma janela móvel (em horas) — contado entre campanhas, então jornadas sobrepostas não se acumulam |
Regras de confiança para o disparo
Seção intitulada “Regras de confiança para o disparo”- Pessoas identificadas exigem eventos verificados para disparar uma jornada. Se a verificação de identidade não estiver passando para um usuário, seus eventos ainda entram no analytics, mas não iniciam campanhas — enviar email com base em um evento forjável é exatamente o modo de falha para o qual a verificação existe. Eventos anônimos podem disparar normalmente.
- Eventos de saída não exigem verificação. Sair é a direção segura: melhor perder um email do que enviar um constrangedor.
- Para gatilhos que precisam ser fatos (pagamento recebido, assinatura cancelada), envie o evento gatilho server-side com uma secret key.
Variáveis de template
Seção intitulada “Variáveis de template”Assuntos e corpos de email suportam dois namespaces de variáveis:
Hi {{person.first_name}},
you left {{event.item_count}} items in your cart.{{person.x}}— os traits da pessoa no momento do envio.{{event.y}}— propriedades do evento gatilho, congeladas no momento do disparo. Uma jornada lembra do evento que a iniciou, mesmo que os dados da pessoa tenham mudado desde então.
Os valores são escapados como HTML; variáveis não resolvidas renderizam como strings vazias. Não há lógica (nada de condicionais ou loops) — templates são apenas substituição.
Garantias de envio
Seção intitulada “Garantias de envio”- Exactly-once por passo. Todo envio reivindica um slot único
(journey, step)em um ledger de mensagens antes de falar com o provedor de email, e o envio em si carrega uma chave de idempotência. Retries, crashes e workers concorrentes não conseguem duplicar um email. - Lista de supressão. Hard bounces e reclamações de spam suprimem o endereço permanentemente, de forma automática (soft bounces suprimem no terceiro). Endereços suprimidos são pulados no momento do envio, e você pode adicionar supressões manuais no painel.
- Checagem de saída de última hora. Mesmo depois de um envio ser agendado, o dispatcher re-checa o estado da jornada antes de enviar — um evento de saída que chegou no meio do caminho ainda interrompe o email.
- Pausar para o relógio, não as jornadas. Pausar uma campanha interrompe novas entradas e congela o progresso; jornadas existentes mantêm seu estado. Reativar processa os passos atrasados imediatamente (com todas as checagens de saída/supressão). Pausar não cancela jornadas.
Eventos de email no seu analytics
Seção intitulada “Eventos de email no seu analytics”Os webhooks de entrega do provedor são convertidos em eventos atribuídos à mesma pessoa: $email_sent, $email_delivered, $email_opened, $email_clicked, $email_bounced, $email_complained — cada um marcado com a campanha, a jornada e o passo. A página de detalhe da campanha os usa no seu funil (enviado → entregue → aberto → clicado), e você pode usá-los em qualquer lugar: coortes de pessoas que clicaram, flags segmentadas para quem não abriu, e assim por diante.
Broadcasts
Seção intitulada “Broadcasts”Uma campanha com coorte de audiência também pode ser enviada como um broadcast único para a coorte inteira (respeitando regras de reentrada, supressão e frequency caps). As jornadas são criadas em massa e seguem pelos mesmos passos e garantias.
Envios de teste
Seção intitulada “Envios de teste”O editor de campanha pode enviar um único passo para um endereço à sua escolha sem criar uma jornada; envios de teste ficam de fora da contagem do frequency cap.