Gatilhos
Todo fluxo começa por um gatilho — o nó que define quando ele roda e que produz os primeiros items. Escolha o gatilho conforme o que dá a partida: uma pessoa clicando, um horário, um chamado de outro sistema ou um dado que apareceu.
Mais de um ponto de partida
Um fluxo pode ter mais de um gatilho — por exemplo, um agendamento para a rotina diária e um webhook para quando outro sistema precisar antecipá-la, os dois ligados aos mesmos passos.
Cada execução parte de um gatilho só: o que realmente disparou. O webhook parte do webhook, o agendamento parte do agendamento — os demais ficam parados naquela execução, e os passos seguintes rodam uma vez, com os itens de quem deu a partida.
Quando você manda executar na hora e o fluxo tem mais de um ponto de partida, o sistema pergunta Por onde começar? e você escolhe qual usar naquela execução. Com um gatilho só, não há o que perguntar e a execução segue direto.
Disparo manual
Inicia o fluxo sob demanda: pelo botão Executar agora da lista de fluxos, por Executar fluxo no editor ou por chamada de API. Ideal para rotinas que você dispara quando quer, e para montar e testar um fluxo novo.
O que você mandar no disparo vira o primeiro item. Se enviar uma lista no campo
items, cada elemento dela vira um item — vale também para o Webhook, a
Ferramenta MCP, a Ferramenta de IA e o Evento LBHM.
Agendamento
Dispara na hora que você marcar. São duas escolhas independentes: quando começa e como se repete.
| Hora da execução (1ª execução) | O que faz |
|---|---|
| Agora | Dispara assim que você ativa o fluxo |
| Executar em | Dispara na data e hora que você informar |
| Sob demanda | Não dispara sozinho — só manualmente, por webhook ou pela ferramenta MCP |
| Repetir a execução | O que faz |
|---|---|
| Não repetir | Roda uma vez só |
| A cada | A cada N minutos, horas, dias ou semanas |
| Toda semana, no(s) dia(s) | Nos dias da semana que você marcar, no horário escolhido |
| Todo mês, no dia | No dia do mês que você informar, no horário escolhido |
O fluxo precisa estar ativo para o agendamento valer. Na repetição semanal, marque ao menos um dia; em "Executar em", informe a data e a hora — sem isso o fluxo fica sem próximo disparo até você completar.
Os gatilhos TOTVS RM (polling), Data Lake (linhas novas) e Dimep — Novas marcações usam este mesmo controle de agendamento.
Webhook
Inicia o fluxo quando recebe um chamado externo (uma requisição HTTP) num
endereço próprio, no formato https://<sua-instância>/webhook/<endereço>. Serve
para integrar outro sistema: quando algo acontece lá, ele avisa o NEXUS Flow e o
fluxo roda.
O endereço já vem pronto quando você acrescenta o nó — não precisa inventar um.
Para trocá-lo, apague o campo e salve: a plataforma gera outro na hora. Se
preferir escrever o seu, use de 12 a 128 letras, números, _ ou -; o editor
avisa se outro fluxo já estiver usando aquele endereço, em vez de deixar os dois
disputarem a mesma URL.
O corpo recebido vira o item inicial. Se o corpo não for JSON, ele chega no
campo body; se não houver corpo, valem os parâmetros da URL.
Quem pode chamar este endereço
Cada gatilho de webhook decide isso na caixa Qualquer um pode chamar esta URL:
| A caixa | O que acontece |
|---|---|
| Desmarcada — como nascem os webhooks novos | Endereço fechado: só disparam os apps que você autorizou, apresentando a chave a cada chamada. Cada app tem o próprio teto de chamadas por minuto neste webhook. |
| Marcada | Endereço aberto: qualquer chamada dispara o fluxo, sem identificação. Informe em Chamadas por minuto quanto o endereço aceita — o teto vale para todas as chamadas somadas, identificadas ou não. |
Prefira deixar fechado. Com o endereço aberto, quem chegar à URL dispara o seu fluxo — e ela circula mais do que parece: fica no histórico do navegador de quem testou, no print do editor, no registro do sistema que chama. Fechado, a URL vira só um endereço: sem a chave, a chamada é recusada. E, como cada consumidor tem a chave dele, você sabe quem chamou, corta um sem parar os outros e dá a cada um o ritmo que ele merece.
Deixe aberto quando quem chama não consegue apresentar uma chave — o formulário de um site, um serviço que só aceita colar uma URL, um aviso automático de outra plataforma. Aí escolha um número de chamadas por minuto próximo do movimento esperado: é a proteção que resta, e ela evita que uma repetição descontrolada lá fora consuma a capacidade da sua instância.
Para fechar um webhook que hoje está aberto, siga esta ordem: primeiro autorize os apps que devem dispará-lo, depois desmarque a caixa. Assim a integração não para em nenhum momento.
Autorizando um app
Com a URL fechada, o painel Apps com acesso, logo abaixo do endereço no editor, mostra quem pode disparar. Escolha o app na lista, informe quantas chamadas por minuto ele pode fazer aqui e confirme no +; o × de cada linha tira o acesso. Vale na hora, sem precisar salvar o fluxo de novo.
Num nó recém-criado o painel pede que você salve o fluxo antes — o endereço ainda não existe para ser autorizado. E, se a URL estiver fechada sem nenhum app na lista, o painel avisa: ninguém consegue disparar o fluxo por ela.
O mesmo app pode ter 60 chamadas por minuto num webhook e 120 em outro — o teto é do app naquele webhook. Num endereço aberto esse número não é usado: lá vale o teto do gatilho, igual para todos. Autorizar um app num endereço aberto continua valendo a pena para reconhecê-lo no histórico de chamadas.
Cadastrar os apps, emitir e revogar chaves é assunto de Apps.
Chamando o webhook
A chave vai no cabeçalho Authorization, nunca na URL — endereço aparece em
registro de acesso, em histórico e em mensagem de erro; chave, não:
POST /webhook/8f3c2b1a9d7e4f60
Host: sua-instância.nexusflow.lbhm.com.br
Authorization: Bearer nxa_1a2b3c4d.<o restante da chave>
Content-Type: application/json
{ "pedido": 98213 }
A resposta sai na hora, com o número da execução — o fluxo roda em seguida, então quem chamou não recebe o resultado dele:
| Resposta | O que significa | O que fazer |
|---|---|---|
| 202 Aceito | A chamada entrou e a execução foi criada | Nada. Acompanhe em Execuções |
| 401 Não autorizado | Faltou a chave, ou ela está errada, revogada, vencida — ou o app está suspenso | Confira o cabeçalho Authorization e a situação do app; se preciso, emita uma chave nova |
| 403 Sem permissão | A chave é válida, mas este app não foi autorizado neste webhook | Autorize o app no painel Apps com acesso |
| 404 Não encontrado | O endereço não corresponde a nenhum webhook | Confira a URL — é a mesma resposta para endereço errado e webhook inexistente, de propósito |
| 409 Fluxo inativo | O webhook existe, mas o fluxo está desligado | Ative o fluxo |
| 429 Chamadas demais | Passou do teto por minuto | Espere o tempo indicado em Retry-After, espace as chamadas — ou aumente o teto daquele app neste webhook |
Toda chamada fica registrada, inclusive as recusadas e o motivo, no histórico do app. É o primeiro lugar a olhar quando um consumidor diz que "não está disparando".
Se o sistema de origem puder repetir a mesma chamada, envie o cabeçalho
Idempotency-Key com um identificador seu. Dentro de 24 horas, uma repetição
com a mesma chave devolve a execução original em vez de rodar de novo:
POST /webhook/8f3c2b1a9d7e4f60
Content-Type: application/json
Idempotency-Key: pedido-98213
{ "pedido": 98213 }
Ferramenta MCP
Publica o fluxo como uma ferramenta que um assistente de IA pode chamar. Use quando quiser que alguém peça a automação em linguagem natural, em vez de abrir o editor.
| Campo | Para que serve |
|---|---|
| Nome da ferramenta | Como o assistente chama o fluxo. Letras, números, _ e -, até 64 caracteres, e único entre os fluxos da sua instância |
| Descrição (para o agente) | Explique o que a ferramenta faz e quando usá-la — é o que o assistente lê para decidir |
| Parâmetros | Os argumentos que o assistente informa. Cada um tem um nome e uma descrição, e chega ao fluxo como um campo do item |
O fluxo precisa estar ativo para a ferramenta aparecer e ser chamada. O
assistente recebe a saída dos nós finais do fluxo. Se a execução demorar mais
que o tempo de espera, ele recebe o número da execução e busca o resultado
depois, pela ferramenta nexusflow_resultado.
Para conectar o assistente, aponte-o para o endereço /mcp da sua instância,
com o token dedicado às ferramentas. Fale com a LBHM para obtê-lo.
Ferramenta de IA
Publica o fluxo como ferramenta de um agente de IA da própria plataforma. Enquanto a Ferramenta MCP abre o fluxo para um assistente de fora, aqui quem o chama é um agente que você montou aqui dentro.
| Campo | Para que serve |
|---|---|
| Nome da ferramenta | Como o agente chama o fluxo. Minúsculas, números e _, começando por letra |
| Descrição (o modelo lê) | Diga o que a ferramenta faz e quando usá-la — é esta frase que decide se e quando o agente a escolhe. Escreva-a com cuidado: é o que mais muda o resultado |
| Parâmetros | Os argumentos que o agente informa. Cada um tem nome e descrição obrigatória — sem ela o agente preenche por adivinhação. Todo parâmetro declarado é exigido, então o que pode faltar, não declare |
| Tipos (opcional) | Um por linha, nome=tipo (string, number ou boolean). Sem declarar, o parâmetro é texto |
Os argumentos escolhidos pelo agente viram o primeiro item, como no Disparo manual.
Escolha o que volta ao agente com o nó Devolver ao agente: nele você recorta os campos que interessam ou escreve uma frase pronta por registro. Sem esse nó, volta a saída do último nó que rodou — o que num fluxo com ramificações depende de qual ramo terminou por último, e muda sem aviso quando você mexe no desenho.
TOTVS RM (polling)
Executa uma consulta no seu RM no intervalo configurado e emite cada linha do resultado como um item. Você informa a credencial do RM, o código da sentença, a coligada, o sistema e os parâmetros.
Este gatilho não lembra o que já leu: a cada disparo ele roda a sentença inteira de novo e reemite todas as linhas devolvidas. Se a sentença trouxer sempre o mesmo conjunto, os mesmos registros são processados a cada rodada — em duplicidade.
A saída é escrever a sentença de forma que ela devolva só o que ainda falta e fazer o fluxo marcar o registro no fim:
SELECT ID, VALOR
FROM MEUS_REGISTROS
WHERE PROCESSADO = 0
ou, quando houver data de alteração, filtre por ela (WHERE DATAALTERACAO > :ULTIMA_N) e mantenha a marca atualizada. Deixe também o destino preparado para
receber o mesmo registro duas vezes (atualizar em vez de duplicar).
Para varrer resultados grandes, ligue Paginar resultados e informe os parâmetros de página e de limite da sua sentença, o tamanho da página e a página inicial.
Data Lake (linhas novas)
Verifica um dataset do Data Lake no intervalo configurado e dispara apenas com as linhas que apareceram desde a última execução bem-sucedida — ele lembra onde parou. É a forma de um fluxo consumir o que outro fluxo gravou, cada um no seu ritmo.
Informe o Dataset e, se quiser, o Máx. de linhas por disparo.
Quando uma execução falha, ele não avança a marca de leitura: as mesmas linhas voltam na rodada seguinte, para você corrigir e reprocessar. Por isso, deixe o fluxo preparado para receber a mesma linha duas vezes — por exemplo, gravando por uma chave que identifique a linha, o que atualiza a que já existe, em vez de simplesmente acrescentar.
Dimep — Novas marcações
Consulta as marcações de acesso do Dimep no intervalo configurado (padrão a cada 5 minutos) e emite só as novas desde a última execução bem-sucedida, uma marcação por item, na ordem em que aconteceram. Usa uma credencial do Dimep; deixe Catraca (Pointer) em branco para acompanhar todas, e use Máx. de marcações por disparo para limitar o volume de cada rodada (padrão 500).
Na primeira execução ele não traz histórico: fixa o ponto de partida no momento atual e passa a emitir o que vier daí em diante. Como no Data Lake, uma execução que falha não avança a marca — as mesmas marcações voltam na rodada seguinte, então deixe o que vem depois preparado para receber a mesma marcação duas vezes (gravando com uma chave que a identifique, em vez de somar cegamente). Veja os demais nós em Dimep.
Erro (Error Trigger)
Dispara quando qualquer outro fluxo falha, recebendo as informações do erro como item — qual fluxo, qual execução e a mensagem. Serve para tratar a falha do seu jeito: avisar no Teams, abrir um chamado, reprocessar o registro.
Para simplesmente receber um e-mail quando um fluxo falhar, não é preciso montar fluxo nenhum: ligue o aviso em Configurações, que agrupa num único e-mail tudo o que falhou no intervalo. Use este gatilho quando a reação for mais do que avisar.
Evento LBHM
Dispara quando algo acontece em outro sistema da suíte LBHM. Escolha a
Aplicação, a Entidade e o Evento que interessam; deixe qualquer
nível em branco para aceitar tudo daquele nível. O fluxo roda com os dados do
acontecimento como item, mais um campo __evento com a origem.
A suíte publica o evento Tasks → Tarefa → Criada, vindo do LBHM Tasks. A lista de opções cresce conforme os sistemas passam a publicar novos eventos.
Diferente do Webhook, aqui o sistema de origem não precisa conhecer o seu fluxo: quem decide o que escutar é o próprio fluxo. Vários fluxos podem escutar o mesmo evento — cada um roda a sua execução. O fluxo precisa estar ativo para ser disparado.
Depois do gatilho, os nós de dados e lógica e os nós de ação fazem o trabalho.