Exemplo: uma falha que avisa você
Um alerta só é útil se a primeira linha dele for útil. Quando um script falha de propósito com uma mensagem precisa — qual registro, o que estava errado —, o alerta leva essa frase até o seu canal, e quem lê já sabe o que corrigir antes de abrir a execução. Este exemplo monta as duas metades e acompanha uma falha e uma recuperação.
- Fazer uma execução falhar de propósito com uma mensagem que vale a pena ler
- Mandar essa falha, e a recuperação, para um canal
O erro vira o alerta
Uma mensagem de alerta leva o item, a primeira linha do erro, o passo que falhou num flow, o que iniciou a execução e um link para ela — nunca as entradas, saídas ou variáveis da execução. Então o erro que você lança é a manchete. Um KeyError: 'amount' solto diz pouco; order 2 has no amount diz tudo.
O script
DEFAULT = [{"id": 1, "amount": 10}, {"id": 2, "value": 5}]
def main(orders: list[dict] = DEFAULT):
for o in orders:
if "amount" not in o:
raise ValueError(f"order {o.get('id')} has no amount")
total = sum(o["amount"] for o in orders)
return {"orders": len(orders), "total": total}- Adicione um canal
Em Alertas → Canais, adicione um canal de e-mail ou Slack e clique em Enviar teste.
- Crie a regra
Nova regra → O quê: Itens escolhidos, este script → Quando: Falhou e Voltou a funcionar → Onde: o seu canal → Salvar regra.
- Falhe, depois recupere
Rode o script com os pedidos padrão; depois troque o campo do pedido 2 para
amountna entrada e rode de novo.
Em produção
Para um script agendado, escolha Só o que roda sozinho: execuções que uma pessoa inicia no editor ficam quietas. As repetições são agrupadas, então um agendamento que falha a cada minuto vira uma mensagem e um aviso por janela, não centenas. Lance erros para os casos em que uma pessoa precisa agir, e trate os casos esperados no código — um alerta que dispara em situações normais logo deixa de ser lido.