Passos prontos: e-mail, HTTP, Transformar, IA e Arquivos
Alguns passos são tão comuns que escrever um script para eles é desperdício: enviar um e-mail, chamar uma API, filtrar uma lista. O flow já traz esses passos prontos. Você configura cada um no painel lateral, liga os valores como as entradas de qualquer outro passo, e ele roda dentro do próprio worker — com acesso à rede e com credenciais que nunca passam pelo seu código.
- Enviar um template publicado do Email Studio para uma lista de destinatários
- Chamar uma API com Requisição HTTP, com ou sem uma conexão API (HTTP)
- Filtrar, ordenar, resumir ou combinar uma lista com Transformar
- Classificar ou resumir texto com o passo de IA, recebendo campos com nome
- Ler um arquivo CSV, Excel ou JSON em linhas, e gravar linhas num arquivo
Passos sem código
Abra o + entre dois passos (ou arraste da paleta). Além das linguagens de script e dos nós de controle, o menu traz Enviar e-mail e um grupo Apps e dados com Requisição HTTP e Transformar. Um passo pronto entra na hora; todo o resto — conexão, endereço, regras — é escolhido no painel lateral.
Eles diferem de um passo de script em dois pontos importantes. Rodam no processo do worker, não no sandbox de scripts, então o passo HTTP alcança a internet enquanto seus scripts não alcançam. E pegam os segredos de uma conexão ou de uma variável secreta, que a execução registra como ••• — uma senha nunca fica no flow em texto aberto. O resto é igual: as entradas usam os quatro modos de vínculo (bindings), a saída alimenta os passos seguintes, e eles aceitam as configurações de execução (novas tentativas, tempo limite, pular, cache…).
Enviar e-mail
O passo Enviar e-mail envia um template do Email Studio por uma das conexões de e-mail do projeto.
- Escolha a conexão e o template
Conexão vem como Conexão padrão, o remetente padrão do projeto. Em Template, escolha um; o passo sempre envia a versão publicada do template, e avisa quando ele tem mudanças não publicadas.
- Ligue os destinatários
Destinatários recebe um endereço, vários separados por vírgula, ou uma lista de um passo anterior — por exemplo o
emailde cada linha dentro de um loop. - Preencha os valores do template
Valores do template lista cada valor que o template usa, cada um uma linha de vínculo. Uma lista ligada continua lista, então o template pode percorrê-la. Assunto é opcional: vazio usa o assunto do próprio template, e pode usar os valores dele, como
{{name}}. - Anexe arquivos e veja a prévia
Adicionar anexo liga um arquivo produzido por um passo anterior — até 10 MB no total. Ver e-mail monta a mensagem como será enviada; valores que só existem na execução são indicados, não inventados.
{
"ok": true,
"historyId": "7c1e…",
"to": [
"ana@example.com"
],
"subject": "Your weekly report"
}Requisição HTTP
Requisição HTTP chama qualquer API e entrega a resposta ao passo seguinte. Em Conexão, escolha uma conexão API (HTTP) ou deixe Sem conexão. Com conexão o endereço pode ser relativo — o painel mostra Relativo a https://api.example.com — e o login é acrescentado para você.
- Requisição: o método (GET, POST, PUT, PATCH, DELETE ou HEAD) e o endereço. Query e Headers são linhas de nome/valor; cada valor é uma linha de vínculo.
- Body: Nenhum, JSON, Formulário, Texto ou Arquivo (um arquivo de um passo anterior).
- Resposta: Ler a resposta como Automático, JSON, Texto ou Arquivo; Falhar o passo quando a resposta for um erro (4xx/5xx) vem ligado.
- Paginação: desligada, Próxima URL na resposta, Header Link ou Número da página, com Os itens estão em e No máximo esta quantidade de páginas. Os itens de todas as páginas viram uma única lista.
A saída é {status, headers, body}; com paginação, body é a lista unida e pages conta as páginas lidas. Um passo seguinte liga output.body.items, output.status e assim por diante.
{
"status": 200,
"headers": {
"content-type": "application/json"
},
"body": {
"items": [
{
"sku": "A-1",
"stock": 4
}
]
}
}Importar um comando cURL
Importar cURL recebe um comando copiado da documentação de uma API ou da aba de rede do navegador e preenche o método, o endereço, a query, os headers e o body. Um token ou senha encontrado aparece em Segredos encontrados e é guardado como variável secreta do projeto (Guardar como define o nome), então nunca fica no flow em texto aberto. Digitar algo com cara de segredo num header mostra a mesma oferta: Guardar como variável.
Transformar
Transformar remodela uma lista sem código. Ligue Entrada a uma lista (o retorno de um script, o body de um HTTP, as linhas de um passo SQL) e escolha o que Fazer:
| Fazer | O que você define |
|---|---|
| Filtrar | Manter os itens que atendem a todas / qualquer uma das condições: regras como é igual a, é pelo menos, contém, está vazio — ou Escrever uma expressão, em que item é cada elemento. |
| Ordenar | Ordenar por um ou mais campos, A→Z ou Z→A. Valores vazios ficam por último. |
| Limitar | Manter os primeiros N, opcionalmente depois de pular M. |
| Remover duplicados | Duplicados por uma lista de campos; o primeiro é mantido. |
| Definir campos | Definir, renomear, remover ou manter só alguns campos de cada item. |
| Resumir | Agrupar por um campo (ou nenhum) e calcular contagem, soma, média, menor, maior ou uma lista. |
| Combinar | Combinar com uma segunda lista: só os que combinam, todos os itens desta lista, ou uma lista depois da outra. |
Um campo que o item não tem conta como vazio, nunca como erro. Uma entrada que não é lista faz o passo falhar com transform_not_a_list. A aba Prévia roda o passo com a última entrada real, como uma execução fará, e mostra Manteve 2 de 3; antes da primeira execução você pode colar uma lista de exemplo.
Passo de IA
O Passo de IA faz uma pergunta a uma das conexões de IA do projeto e entrega a resposta. Escolha a Conexão de IA e um Modelo (Padrão da conexão usa o que a conexão roda), escreva as Instruções e ligue o Prompt — {{ nome }} no texto é preenchido com os outros vínculos do passo.
Resposta é Texto (saída {text, usage}) ou JSON com campos que você declara — nome, tipo, obrigatório. O passo confere a resposta: um campo obrigatório que falta ou um tipo errado faz o passo falhar com ai_answer_invalid. Os campos declarados podem ser ligados pelos passos seguintes antes da primeira execução, então uma condição já pode decidir por output.urgency.
{
"category": "billing",
"urgency": "high",
"usage": {
"model": "gpt-4o-mini",
"tokensIn": 212,
"tokensOut": 14
}
}Arquivo
Arquivo transforma um arquivo em linhas, ou linhas num arquivo. Ler um arquivo liga um arquivo de um passo anterior (uma resposta HTTP lida como arquivo, um download do Google Drive) e lê CSV, Excel (XLSX) ou JSON — Automático pelo nome e pelo conteúdo. As opções de CSV definem o separador, a codificação (UTF-8 ou Latin-1) e se a primeira linha é o cabeçalho; um arquivo Excel lê a primeira aba, a menos que você escolha outra.
{
"rows": [
{
"order": 1041,
"date": "2026-10-01",
"total": 89.9
}
],
"count": 1,
"columns": [
"order",
"date",
"total"
],
"sheets": [
"Orders"
]
}Gravar um arquivo liga Linhas a uma lista e grava CSV, XLSX ou JSON com o Nome do arquivo que você der. A saída é um arquivo com link de download, que um passo Enviar e-mail pode anexar e o Google Drive pode enviar.
Testando um passo
Requisição HTTP, IA, Arquivo, Google Sheets e Google Drive têm uma aba Rodar teste. Na Requisição HTTP, ela roda a requisição agora, sozinha, com as constantes e os Valores para este teste que você digita (ou os valores da última execução), e mostra a Resposta. O caminho é o mesmo do worker numa execução real, então o que você vê é o que o flow vai receber.
Limites e códigos de erro
- Uma resposta com status 400 ou mais faz o passo falhar com
http_status_error(status e o começo do body registrados), a menos que a opção esteja desligada; oRetry-Afterde um 429 é respeitado pela nova tentativa do passo. - Uma requisição tem 60 segundos por padrão (o tempo limite do passo substitui esse valor), segue no máximo 5 redirecionamentos e lê no máximo 50 MB (
http_response_too_large). Uma falha de rede éhttp_request_failed. - Endereços privados e internos são recusados em cada salto (
host_not_allowed); uma resposta acima de 5 MB fica guardada como arquivo que o passo seguinte pode ler. A paginação lê no máximo 100 páginas. - Um passo de e-mail cujo template nunca foi publicado falha com
template_not_published; os anexos têm limite de 10 MB no total. - Um passo Arquivo lê no máximo 50 MB (
file_too_large); um arquivo que não dá para ler no formato escolhido falha comfile_parse_failed, e um nome de aba que não está na pasta de trabalho comfile_sheet_not_found. Uma falha do provedor de IA éai_step_failed. - Uma configuração que não dá para usar (endereço vazio, endereço relativo sem conexão) falha com
invalid_node_config, indicando o passo e o campo.