Dados e conexõesGuia

Email: provedores, templates e envios

O e-mail no Waiso tem três partes: um provedor — a sua própria conta que entrega a mensagem de verdade — um template escrito em HTML com {{ valores }}, e o passo E-mail de um flow, que preenche o template e envia. Todo envio fica registrado, com o status e a mensagem exata que saiu.

O que você vai aprender
  • Ligar o Email e conectar um provedor
  • Escrever um template com valores, ver a prévia e publicar
  • Enviar pelo passo E-mail de um flow, e pelo código por meio de um flow
  • Ler os envios de um template e reenviar um deles

Como um envio acontece

O Waiso não entrega e-mail sozinho. Ele monta o template com os valores da execução, entrega o resultado ao provedor que você conectou — por SMTP ou pela API do próprio provedor — e registra a tentativa. Como o provedor é a sua conta, o endereço de envio, a entregabilidade e a conta a pagar são seus.

O passo E-mail no fim do flow preenche um template publicado com valores dos passos acima dele.

O Email é um serviço do projeto. Ligue em Integrações → Adicionar integração → Email (“Envie e-mails a partir de scripts e flows.”); o card dele passa a abrir a página Email, com a lista de templates à esquerda, o template aberto no meio e Provedores ao lado.

Conecte um provedor

  1. Adicione o provedor

    Na página Email, em Provedores, clique em Adicionar e escolha o serviço e, quando houver opção, o método.

  2. Preencha os campos e confirme as variáveis

    Cada método pede o que aquele serviço precisa, com um texto de ajuda dizendo onde encontrar. Salvar lista Variáveis que esse provedor cria: um provedor chamado Transactional com chave de API guarda a chave como EMAIL_TRANSACTIONAL_API_KEY.

  3. Envie um teste

    Enviar email de teste pede um Email do destinatário e envia pelo provedor real. Com vários provedores, Definir como padrão marca o que os passos usam quando não escolhem um.

ProvedorMétodosVariável secreta
Custom SMTPUsername / Password (host, porta 587 · 465 · 25)…_PASSWORD
GmailApp Password (SMTP) · Gmail REST API (um access token)…_PASSWORD ou o token
Outlook / Microsoft 365App Password (SMTP) · Microsoft Graph API (um access token)…_PASSWORD ou o token
SendGrid · ResendAPI Key…_API_KEY
Mailgun · BrevoAPI Key · SMTP…_API_KEY ou …_PASSWORD
Amazon SESSMTP · AWS Access Key (SES API)…_PASSWORD, ou …_ACCESS_KEY_ID + …_SECRET_ACCESS_KEY
PostmarkServer Token…_SERVER_TOKEN
Zoho MailApp Password…_PASSWORD

Escreva um template

Novo Template pergunta como começar — Usar exemplo (uma amostra preenchida) ou Começar do zero — e a Biblioteca de Templates oferece prontos para Importar. O editor tem as abas HTML e CSS, uma linha de Assunto e uma Visualizar ao vivo que alterna entre Desktop, Tablet e Celular.

Valores no template

Os templates usam a sintaxe Jinja. {{ name }} insere um valor, {{ user.name }} um campo dele, {{ items[0] }} um item de uma lista; {% if %} e {% for %} decidem e repetem. Todo valor que o HTML ou o assunto usam aparece sozinho em Variáveis do template, com uma caixa para testar na prévia.

Saída esperadaA aba HTML de um template com três valores
<h1>Welcome, {{ name }}!</h1>
<p>Your workspace <strong>{{ workspace }}</strong> is ready.</p>
{% if trial_days %}
  <p>Your trial ends in {{ trial_days }} days.</p>
{% endif %}

Salve, depois publique

Salvar guarda o seu trabalho; Publicar transforma o template na versão que os flows enviam. Um selo diz em que pé está — Nunca publicado, Alterações não publicadas ou Publicado — e Enviar teste sempre usa o que está aberto no editor. A aba Histórico lista cada salvamento, publicação e restauração.

Envie por um flow

Adicione um passo Enviar e-mail (o passo E-mail) a um flow e preencha o painel dele:

  • Conexão — um provedor, ou Conexão padrão.
  • Template — Escolha um template. O flow envia a versão publicada; o painel avisa quando ele nunca foi publicado ou tem mudanças não publicadas.
  • Destinatários — um endereço, vários separados por vírgula, ou uma lista de um passo anterior.
  • Assunto — deixe vazio para usar o do template; ele pode usar os valores do template.
  • Valores do template — um binding por valor que o template usa, como qualquer entrada de passo (Bindings).
  • Anexos — um arquivo de um passo anterior, até 10 MB no total.

Ver e-mail mostra O e-mail como será enviado; valores que só existem na execução aparecem listados como tal. Depois da execução, a saída do passo diz o que saiu:

Saída esperadaSucessoA saída do passo E-mail
{
  "ok": true,
  "historyId": "9b2f6c1e-4d7a-4e0b-9a61-3f2d8c5e7a10",
  "to": [
    "ana@example.com"
  ],
  "subject": "Welcome, Ana!"
}

Por um script

Os scripts não têm rede, então não falam com um provedor sozinhos. Para enviar pelo código, rode um flow cujo passo E-mail faça isso — o run_flow do SDK espera e devolve como terminou:

welcome_new_user.py
from waiso import run_flow

def main(email: str, name: str = "Ana"):
    result = run_flow("notify/welcome", {"email": email, "name": name})
    return {"status": result.status, "flowRunId": result.flow_run_id}

Com um loop sobre um passo SQL, um flow envia um e-mail por linha — a receita completa está em Relatório SQL por e-mail.

Envios e reenvio

A aba Envios de um template lista toda mensagem enviada com ele — testes incluídos — com Para, Assunto, Provedor, Status e Enviado Em, filtrada por Todos, Enviados, Com falha ou Pendentes. Um envio com falha mostra Detalhes do erro: a resposta do próprio provedor.

Reenviar abre o diálogo de envio preenchido com os valores daquele e-mail — nada sai até você clicar em Enviar, então dá para corrigir um endereço antes.

Limites e cuidados

  • Um flow só envia um template publicado; um que nunca foi publicado é recusado (template_not_published).
  • Excluir um template faz falhar todo passo de flow que o envia.
  • Um host SMTP próprio precisa ser um endereço público; um privado é recusado com host_not_allowed.
  • Os anexos somam até 10 MB por mensagem.