Espere uma pessoa: etapas de aprovação
Alguns passos não devem acontecer antes de uma pessoa dizer sim: um reembolso acima de um limite, um e-mail em massa, um deploy. Uma etapa de Aprovação pausa o flow ali mesmo. A execução espera — sem ocupar nenhum worker — até alguém aprovar (a mesma execução continua, com os valores que a pessoa preencheu) ou rejeitar (a execução termina Rejeitada). Nesta lição você monta um desconto que um gerente aprova e pode alterar.
- Adicionar uma etapa de Aprovação com mensagem e campos que quem aprova preenche
- Escolher quem pode decidir, o prazo e o que acontece quando ele acaba
- Decidir na visualização da execução ou em Execuções → Esperando por você
- Usar a decisão nos passos seguintes por output.values
O que acontece numa aprovação
Quando uma execução chega a uma etapa de Aprovação, ela para e o status vira Aguardando aprovação. Nada depois da etapa roda, e nenhum worker fica ocupado enquanto ela espera — um flow pode esperar dois dias sem custo. A etapa mostra um cartão com a mensagem, os campos e quem pode decidir.
| Decisão | O que a execução faz |
|---|---|
| Aprovar | A mesma execução continua depois da etapa. Os passos já concluídos não rodam de novo; a versão do flow com que ela começou é mantida. |
| Rejeitar | A execução termina Rejeitada. É uma decisão, não uma falha: a etapa Em caso de erro do flow não roda. |
| O prazo acaba | O que Quando o prazo acabar define: Rejeitar (o padrão), Aprovar ou Falhar a execução. O cartão diz A aprovação expirou. |
Só a primeira decisão vale: se duas pessoas clicarem no mesmo instante, a segunda vê Já decidida por ….
Adicione uma etapa de Aprovação
- Insira
No canvas do flow, clique no + onde a pausa deve ficar e escolha Aprovação. Uma aprovação nova espera até 48 horas, rejeita quando o prazo acaba, deixa qualquer pessoa que pode executar o flow decidir e não envia e-mail.
- Escreva a mensagem
Mensagem é o que quem aprova vai ler. É uma entrada como qualquer outra, então pode ser um texto fixo ou ligada ao resultado de um passo anterior.
- Adicione campos
Em Campos que quem aprova preenche, clique em Adicionar campo: um Nome do campo, um Rótulo, o tipo — Texto, Número, Sim / não ou Opção (opções separadas por vírgula) — e Obrigatório. Sem campos, quem aprova só aprova ou rejeita.
- Quem, quanto tempo, avisar
Quem pode decidir: Quem pode executar este flow, ou Pessoas escolhidas entre os membros do projeto. Prazo em horas ou dias, e Quando o prazo acabar. Avisar por e-mail envia uma mensagem a quem aprova pela conexão de e-mail do projeto; o link abre a decisão no app e pede login.
Decidindo
Quem pode decidir encontra o pedido em três lugares: a execução no canvas do flow (o cartão de aprovação na etapa), o painel da execução da etapa, e a página Execuções, onde o filtro Esperando por você mostra só as execuções que aguardam a sua decisão, cada uma com Revisar. O cartão mostra a mensagem, Quem pode decidir · …, Expira em …, os campos, um Comentário opcional e Aprovar / Rejeitar.
Usando a decisão
Depois da aprovação, a saída da etapa é {approved, by, at, comment, values}. Os passos seguintes se ligam a ela como a qualquer passo: Os passos seguintes leem como output.values.<nome>.
{
"approved": true,
"by": "Ana Souza",
"at": "2026-10-16T14:02:11Z",
"comment": "ok, loyal customer",
"values": {
"discount": 15
}
}Decidindo por link
Ative Permitir decidir por link na seção Decisões por link da etapa, e um passo de script antes dela pode chamar waiso.resume_urls() (TypeScript/JavaScript await resumeUrls(), C waiso_resume_urls, C++ waiso::resume_urls()). Ela devolve {resume, cancel, approvalPage, approvalId, expiresAt}: um POST em resume aprova (o corpo JSON vira values), um POST em cancel rejeita, e approvalPage é uma página onde uma pessoa decide sem conta. Abrir um link no navegador só mostra uma confirmação, então um antivírus de e-mail nunca decide.
Regras e limites
- Fora de loops:
approval_in_loop— Uma aprovação não pode ficar dentro de um loop — adicione-a antes do loop. - Fora de ramos em paralelo:
approval_in_branch— um ramo esperando uma pessoa seguraria todos os outros. - Um subflow que espera faz o flow pai esperar também, e o cartão do pai indica o subflow; os dois continuam juntos.
- Uma chamada de API síncrona a um flow que chega numa aprovação responde
202com a execução na hora, em vez de segurar a chamada. - Os avisos por e-mail precisam da conexão de e-mail do projeto; sem ela, quem aprova encontra o pedido só no app.