Documentation menu

Contatos e envio pelo MailInApp

Além de exportar HTML para o seu ESP, você pode enviar e-mails finalizados diretamente pelo painel — para um único contato, uma seleção, ou uma lista inteira. A entrega continua passando pelo seu próprio relay de SMTP, então seu domínio de envio e sua reputação continuam sendo seus.

Listas de contatos

A aba Contatos guarda suas listas. Toda lista tem uma coluna email (é isso que a torna enviável) além de quantas outras colunas você quiser — nome, plano, cidade — e cada coluna também funciona como uma tag de personalização {{field}} no estúdio.

Uma lista de contatos é uma fonte de dados como qualquer outra. Conecte-a no painel Dados do estúdio com a função Público, e ela passa a definir tanto para quem o e-mail é enviado quanto de onde as tags de personalização {{field}} simples obtêm seus valores por destinatário — a tela pré-visualiza com dados reais de contatos. Veja Fontes de dados e tags de personalização.

Importar um CSV

Já tem seus contatos em outro lugar? Importar CSV (na aba Contatos, ou dentro de uma lista para adicionar a ela) aceita os arquivos que ESPs e planilhas exportam: separados por vírgula, ponto e vírgula ou tabulação, com uma linha de cabeçalho. Valores entre aspas, BOMs do Excel e escapes "" são tratados corretamente.

Os nomes de cabeçalho se tornam suas colunas. Se nenhuma coluna se chamar email, a importação procura a coluna que realmente contém endereços (por exemplo, "E-Mail Address") e a usa como a coluna de e-mail. Nada é armazenado até você clicar em salvar, então você pode revisar — e corrigir — a tabela antes.

Exportar um CSV

Baixar CSV em uma lista (e no painel de supressão) oferece um backup instantâneo a qualquer momento — útil antes de um grande envio filtrado, ou apenas para manter uma cópia fora da plataforma. Ele funciona perfeitamente com o mesmo importador acima.

Configure o envio uma vez

Envios diretos precisam de um método de envio configurado em Configurações, de uma de duas formas:

  • Ainda sem ESP? Verifique seu próprio domínio e o MailInApp envia em seu nome — sem credenciais de SMTP para gerar ou rotacionar. Essa é a opção padrão recomendada se você ainda não tem um provedor com suporte a SMTP.
  • Já tem um ESP? Aponte o MailInApp para o relay de SMTP dele — SendGrid, Brevo, Mailgun, Amazon SES, até mesmo uma senha de aplicativo do Gmail para testes pequenos. Qualquer provedor com um endpoint de SMTP funciona. Use Testar e salvar para verificar a conexão antes do seu primeiro envio. Sua senha de SMTP é uma credencial: ela é armazenada apenas no servidor e retorna mascarada em todo lugar.

Ambos os métodos alimentam o mesmo pipeline de envio — envios manuais, envios agendados e tudo o mais nesta página se comportam de forma idêntica em qualquer um dos casos.

Envie um teste primeiro

Antes de enviar para sua lista, use Enviar teste para mandar a si mesmo (ou a qualquer pessoa) uma cópia totalmente renderizada. Ele vem pré-preenchido com o e-mail da sua conta, com o prefixo [Test] no assunto, e carrega um link de visualização ao vivo real e funcional, para que os blocos interativos sejam de fato testáveis. Um envio de teste não toca na sua fonte de dados, não conta contra o limite de 200 destinatários, e não aparece no histórico de envios.

Enviar

No cartão de um e-mail no painel, clique em Enviar:

  1. Os destinatários vêm do público do e-mail — a lista de contatos conectada com a função Público no painel Dados do estúdio. Ainda sem lista vinculada? Escolha uma ali mesmo.
  2. Escolha todos, ou marque contatos individuais — enviar para um único contato é apenas uma seleção de uma linha. Linhas para as quais você já enviou são identificadas com a data do último envio, para que você não perca de vista quem já foi alcançado (isso é apenas informativo — não altera sua seleção por você).
  3. Defina o assunto (tags de personalização também funcionam ali, e ✨ Sugerir gera algumas opções com IA — veja Redação assistida por IA) e envie.

Cada destinatário recebe seu próprio e-mail compilado: tags de personalização resolvidas a partir da linha dele, e um link de visualização ao vivo pessoal e assinado. Os blocos interativos são renderizados em seu nível de fallback estático, com interações baseadas em link. As opções de enquete e as avaliações são links que confirmam antes de registrar; formulários e carrosséis abrem a visualização ao vivo hospedada. O e-mail funciona em todo cliente, e nada é jamais registrado a partir de uma pré-busca simples de link.

Teste A/B

Adicione até 4 variantes extras (2 a 5 no total) para fazer um teste dividido de um envio. Cada variante pode mudar o assunto, a identidade de remetente, ou, ao apontar para um projeto diferente, todo o conteúdo do e-mail. Cada destinatário recebe uma variante de forma determinística com base no próprio endereço de e-mail, então novas tentativas e reenvios nunca embaralham quem viu qual variante.

Opcionalmente, ative Escolher um vencedor automaticamente para enviar apenas para uma amostra primeiro e deixar o MailInApp enviar a variante com melhor desempenho para todos os demais quando houver dados suficientes. Veja A/B testing & automatic winners. Envios recorrentes permanecem de variante única por enquanto; não há seletor de variantes no formulário de agendamento.

Segmente seu público

Acima da lista de destinatários, o Filtro de público constrói uma regra (por exemplo, ticket_status = Resolved e resolved_date dentro dos últimos 7 dias) contra os campos da sua fonte de dados, e então Aplicar filtro à seleção define sua seleção como tudo o que corresponde atualmente — um segmento contínuo em vez de uma escolha manual pontual. Combine regras com E/OU da mesma forma que você já faz para as condições de visibilidade de um bloco no estúdio.

Lançamento suave de um envio

Lançamento suave seleciona uma fatia aleatória da sua seleção atual — defina uma porcentagem e clique em Amostrar para enviar primeiro para essa fração. Quando estiver satisfeito com os resultados, Selecionar restantes (ainda não enviados) pega todo mundo na lista que ainda não recebeu esse e-mail, para que a onda de acompanhamento nunca envie em duplicidade para a amostra.

Oferta de desconto

Assim que a lista de contatos de um público tiver uma loja Shopify ou WooCommerce conectada, a paleta de blocos do estúdio oferece um bloco de Desconto para E-commerce — o complemento de um segmento de Histórico de compras: encontre compradores anteriores e então lhes dê algo de fato. Coloque-o em qualquer lugar do e-mail como qualquer outro bloco; ele fica invisível na paleta até que uma loja seja conectada.

Defina uma porcentagem ou um valor fixo de desconto, quantos dias o código permanece válido, quantos dias esperar antes de oferecer outro ao mesmo contato e, opcionalmente, um Escopo — um seletor pesquisável sobre seu catálogo de produtos sincronizado — para restringi-lo a um produto em vez da loja inteira. Pouco antes de renderizar o e-mail de cada destinatário correspondente, o MailInApp gera um código de desconto real, de uso único, na sua própria loja conectada (um código de desconto do Shopify ou um cupom do WooCommerce, restrito ao e-mail daquele cliente específico) e constrói a exibição do código e o botão "Comprar agora" do próprio bloco em torno dele — não há tag de personalização para posicionar manualmente. Ativar Mostrar contagem regressiva de validade adiciona uma imagem de contagem regressiva ao vivo ao mesmo cartão, cronometrada de acordo com a validade do próprio código.

Algumas coisas que vale a pena saber:

  • O resgate acontece inteiramente no checkout da sua própria loja — não no checkout do próprio bloco de produto do MailInApp. Isso é deliberado: um público segmentado a partir de compras reais na loja já compra ali, então o desconto reaproveita o estoque, os impostos e as regras de preço já existentes da loja, em vez de um segundo ponto de venda.
  • Cada bloco gera códigos e entra em período de espera de forma independente, vinculado a esse bloco — colocar mais de um bloco de desconto no mesmo e-mail (ou reutilizar o bloco em vários projetos) nunca bloqueia o código de outro.
  • O pedido de um destinatário ainda é atribuído de volta à campanha que enviou o código, da mesma forma que qualquer outro clique na loja — veja Rastreando pedidos, checkouts e receita do Shopify.
  • Se a geração do código falhar para um destinatário (uma loja não está conectada, ou um token precisa ser reconectado), o e-mail desse destinatário ainda é enviado — apenas com o rótulo de fallback simples do bloco em vez de um código real. Nada em um bloco de desconto pode bloquear um envio.
  • Agendamentos recorrentes aproveitam isso da mesma forma que um envio manual, gerando um código novo em cada execução — um agendamento de janela contínua nunca entrega um código obsoleto de uma execução anterior.
  • Para um desconto vinculado a um produto específico, sem nenhum filtro de público, o bloco de produto tem seu próprio alternador independente de Desconto por produto — veja Descontos nativos da loja para saber como os dois se comparam, e Códigos de desconto de produto do Shopify / Códigos de desconto de produto do WooCommerce para um passo a passo.

Envios recorrentes

Alguns públicos mudam com o tempo — "resolvido há 3–7 dias" corresponde a linhas diferentes todos os dias. Um Envio recorrente reavalia seu filtro de público contra as linhas atuais da fonte de dados vinculada, em um agendamento (diário ou semanal, em uma hora UTC que você escolhe). Ele envia apenas para correspondências que ainda não receberam esse e-mail, retomando de onde a última execução parou. Cada execução grava um registro normal no histórico de envios, igual a um envio manual. Um agendamento cujo relay falha para todos os destinatários por três execuções consecutivas se desativa automaticamente, em vez de consumir silenciosamente sua lista.

Um agendamento também pode ser Uma vez (em uma data) em vez de uma cadência recorrente — um envio único que dispara em uma data específica do calendário e depois se desativa, em vez de se repetir. Esse é o mesmo mecanismo que o botão Agendar este envio do Calendário de campanhas de 12 meses usa por baixo dos panos: escolha uma data no calendário, e ele cria um agendamento único direcionado a esse projeto para aquele dia exato, para que você não precise voltar e enviá-lo manualmente quando a data chegar.

Envie contatos do seu helpdesk ou CRM

Em vez de reexportar um CSV antes de cada envio, uma lista de contatos pode aceitar envios (push) diretamente. Gere uma chave de API para a lista em suas configurações na aba Contatos, e então faça seu próprio sistema (uma automação de helpdesk, um fluxo de CRM) chamar:

POST /api/datasources/<datasourceId>/rows
Authorization: Bearer <apiKey>
Content-Type: application/json

{ "rows": [{ "email": "[email protected]", "ticket_status": "Resolved" }] }

As linhas são inseridas ou atualizadas (upsert) com base no e-mail em minúsculas — um endereço já conhecido é atualizado no lugar, um novo é adicionado ao final — e as linhas existentes nunca são reordenadas ou excluídas, já que a atribuição de respostas é posicional (row:<n>) e reordenar quebraria junções históricas. Lotes são limitados a 500 linhas e têm limite de taxa por chave. A chave é exibida uma vez quando gerada (ou regenerada) e mascarada em todo lugar depois disso, como toda outra credencial no MailInApp; Revogar desativa a integração sem alterar as linhas existentes.

Histórico de envios

Todo envio real (não os envios de teste) é registrado e exibido acima do seletor de destinatários — data, assunto e quantos foram enviados, falharam ou foram ignorados. Nada é jamais excluído no lado do cliente ao recarregar a página; o histórico é a fonte da verdade sobre o que realmente foi enviado.

Cancelamento de inscrição e supressão

O modelo pronto de Rodapé inclui uma tag de personalização {{unsubscribe_url}} que resolve para uma página de cancelamento de inscrição de um clique para aquele destinatário específico. O cancelamento de inscrição é válido para toda a conta: ele suprime o endereço de todo projeto do qual você envia, não apenas daquele em que o destinatário clicou — então um destinatário nunca precisa cancelar a inscrição separadamente em cada campanha.

Endereços que o seu relay de SMTP rejeita de forma síncrona no momento do envio (caixa de e-mail inválida, recusa do relay) são suprimidos da mesma forma, para que um endereço morto não seja tentado novamente em todo envio futuro. (Um relay que aceita uma mensagem e a devolve depois, de forma assíncrona, não é observável sem um webhook específico do ESP — isso está fora do escopo hoje.)

Endereços suprimidos mostram um selo de devolvido ou cancelado na aba Contatos. Ambos podem ser reinscritos — uma caixa de entrada cheia ou um clique acidental não é necessariamente permanente — e as linhas suprimidas são automaticamente ignoradas (e reportadas separadamente das falhas) em envios futuros.

Depois do envio

Exatamente como um envio por ESP: as interações fluem para as respostas, agrupadas por contato, e seu webhook dispara por evento, se você tiver configurado um.

Limites

  • Até 200 destinatários por envio (uma lista, uma execução de um agendamento recorrente). Para públicos maiores, use o fluxo de exportação e ESP; um envio recorrente também simplesmente alcança quem sobrou na próxima execução.
  • Linhas sem um endereço de e-mail válido são ignoradas e reportadas após o envio.
  • Importar um CSV descarta linhas cujo endereço de e-mail já apareceu antes no mesmo arquivo, então reimportar uma exportação sobreposta não cria envios duplicados — você verá um aviso "N e-mail(s) duplicado(s) ignorado(s)".
  • A API de envio de contatos limita cada lote a 500 linhas.