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.
- 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 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
- 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.
- 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. - 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.
| Provedor | Métodos | Variável secreta |
|---|---|---|
| Custom SMTP | Username / Password (host, porta 587 · 465 · 25) | …_PASSWORD |
| Gmail | App Password (SMTP) · Gmail REST API (um access token) | …_PASSWORD ou o token |
| Outlook / Microsoft 365 | App Password (SMTP) · Microsoft Graph API (um access token) | …_PASSWORD ou o token |
| SendGrid · Resend | API Key | …_API_KEY |
| Mailgun · Brevo | API Key · SMTP | …_API_KEY ou …_PASSWORD |
| Amazon SES | SMTP · AWS Access Key (SES API) | …_PASSWORD, ou …_ACCESS_KEY_ID + …_SECRET_ACCESS_KEY |
| Postmark | Server Token | …_SERVER_TOKEN |
| Zoho Mail | App 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.
<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:
{
"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:
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.