castomFLOW

Gatilhos & ações

O que o inicia, o que faz, como decide

Três perguntas, e cada fluxo de trabalho nesta plataforma é uma resposta a elas. Esta página é o vocabulário: as formas como uma execução pode começar, as coisas que um passo pode fazer e as peças que moldam o caminho entre as duas.

Gatilhos

Quatro formas de uma execução começar

Um agendamento

A cada dez minutos, todas as segundas-feiras às sete, no primeiro dia útil do mês. Expresso num fuso horário que escolhes, para que a mudança de hora não seja um incidente.

Um webhook

A tua loja, o teu CRM, o teu sistema de faturação, qualquer coisa que possa fazer um pedido HTTP. A verificação de assinatura está ativada por predefinição e o payload é guardado com a execução.

Um evento do mundo

Um concerto anunciado, um jogo agendado, um sismo, um aviso de cheia, um limiar de qualidade do ar ultrapassado, uma interrupção de um fornecedor. Mais de 175 fontes, atualizadas a cada dez a vinte minutos.

Uma sondagem, ou uma pessoa

Observa um endpoint, uma caixa de correio ou uma pasta e arranca quando algo muda. Ou arranca-o à mão, a partir da consola, porque às vezes essa é a resposta honesta.

Uma execução por coisa. Um gatilho que dispara duas vezes para o mesmo evento subjacente — um webhook reenviado pelo remetente, uma sondagem que volta a ver a mesma linha — inicia uma execução, não duas. A desduplicação usa como chave aquilo que identifica a coisa, e podes definir essa chave tu próprio quando a ideia de id do remetente for pior do que a tua.

Ações

Passos que fazem algo

Uma ação altera algo fora da execução: escreve, envia, cobra, reserva, busca ou arquiva. Há dois tipos, e a diferença está em saber se um modelo está envolvido.

Ações determinísticas

Chamar um endpoint HTTP. Ler e escrever nos teus próprios sistemas. Remodelar um payload. Consultar algo em dados de referência. Enviar um e-mail, um SMS, uma notificação push ou uma carta impressa. Oferecer um horário de marcação. Receber um pagamento. Criar um link curto. Buscar uma imagem com a licença anexada. Escrever uma linha, um ficheiro, um registo.

Mesma entrada, mesma saída. Não custam nada a executar, e é por isso que o conselho honesto é usá-las para tudo o que não precisa genuinamente de juízo.

Ações de IA

Classificar esta mensagem. Redigir aquela resposta. Resumir um fio em três pontos. Extrair campos de um documento não estruturado. Escolher entre opções dado um critério que escreveste em prosa. Traduzir, mantendo o tom.

Cada passo de IA declara a forma do que devolve, e o resultado é validado contra essa forma antes de a execução continuar. Se um modelo produz algo malformado, o passo falha de forma limpa em vez de envenenar os doze passos seguintes.

Algo acontece. Depois acontece a coisa certa a seguir.

Fluxo: os passos que só pensam sobre a execução

Condições ramificam com base num valor. Ambos os caminhos estão definidos, sempre — uma condição com um ramo else indefinido é a forma mais comum de uma automação perder registos em silêncio, por isso não é possível deixar um pendente aqui.

Esperas mantêm uma execução à espera de um momento ou de um evento. Uma espera é um wake_at escrito na própria execução, não uma linha numa fila, e é por isso que um fluxo de trabalho pode manter dez mil pessoas à espera três semanas sem que isso custe nada ou alguém repare.

Horas de silêncio impedem que mensagens enviadas cheguem às três da manhã. Uma execução que chega a um passo de envio dentro da janela de silêncio espera que a janela feche. A gravidade pode sobrepor-se a isso, deliberadamente, para os alertas que devem acordar as pessoas.

Divisões enviam uma parte das execuções pelo caminho A e o resto pelo caminho B, para poderes comparar dois assuntos, duas esperas ou duas ordenações entre si em tráfego real.

Objetivos marcam a coisa para a qual o fluxo de trabalho existia. Quando uma execução atinge o seu objetivo, para aí, independentemente do que restava a jusante — o cliente que comprou não recebe o terceiro lembrete para comprar.

Carrinho abandonadoMeta alcançada
  • ⚡GatilhoCarrinho inativo há 40 minutos. Desduplicado pelo id do carrinho.
  • ?CondiçãoCarrinho acima de 150 zł? Sim — seguir o caminho mais longo.
  • ⏸EsperarUm wake_at na execução. Sem linha numa fila, sem custo.
  • ADividir50/50 no assunto. Esta execução ficou com a variante A.
  • ✉EnviarE-mail com um link curto, redirecionamentos contados por destinatário.
  • ★MetaEncomenda feita. A execução para aqui; o segundo lembrete nunca é enviado.

Passos que chamaram um modelo: 1Passos que não custaram nada: 5

Os erros fazem parte do fluxo, não são uma exceção a ele

Um passo que falha tem para onde ir. Repetir com um backoff e um limite de tentativas. Tomar um caminho alternativo. Parar a execução e arquivá-la onde uma pessoa a verá. Continuar na mesma, porque esse passo era opcional e preferes ter a maior parte do resultado a não ter nada.

O comportamento predefinido para um passo que fala com o sistema de outra pessoa é repetir algumas vezes e depois parar — porque um sistema que está em baixo às 09:14 normalmente está de pé às 09:19, e porque uma execução parada é mais fácil de raciocinar do que uma execução meio acontecida.

O que não podes fazer: um passo não pode voltar a um passo anterior. Um fluxo de trabalho é um caminho dirigido, não um programa com uma instrução de salto. Se o teu trabalho precisa genuinamente de um ciclo, itera sobre uma lista dentro de um único passo, ou inicia uma execução por item — ambos são suportados, e ambos são mais fáceis de ler depois do que um ciclo seria.