Como criar uma condição com IA no seu fluxo: o “se” que entende linguagem natural

Uma condição com IA troca o if com regex por um "se" que entende a intenção da frase: em vez de procurar a palavra "reembolso", o modelo julga se o cliente pediu o dinheiro de volta. No n8n isso vira o Text Classifier, na Langdock o nó Condition em modo Prompt AI, no Claude Code um hook do tipo prompt e na Claude API uma chamada com structured outputs. O segredo é escrever uma descrição clara do que conta, forçar saída em JSON com um motivo e criar um ramo próprio para o caso ambíguo, sem tratar dúvida como "não"
Fala aí, beleza? Seu if com regex procura "reembolso" na mensagem e tá tudo lindo… até o cliente escrever "quero meu dinheiro de volta" 😛
Aí a regra simplesmente não dispara, e ninguém fica sabendo
A ideia deste post é trocar essa regra rígida por uma condição com IA: um "se" que entende a intenção da frase, não só as palavras que estão nela
E, MUITO mais importante, desenhar o que o fluxo faz quando a resposta vem falsa ou ambígua, que é justamente a parte que costuma ficar esquecida
Bora ver na prática?
Por que if e regex não dão conta de linguagem natural
Pega o exemplo do reembolso
A regra literal é algo como "se a mensagem contém reembolso, manda pro financeiro"
Parece ok, né? Só que ela erra em pelo menos três situações bem comuns:
- Sinônimos: "quero meu dinheiro de volta", "dá pra estornar?", "cancela e devolve o valor" (nenhuma tem a palavra mágica)
- Negação: "não quero reembolso, quero troca" tem a palavra, então a regra dispara errado
- Frase indireta: "fui cobrado duas vezes e não reconheço essa compra" é um pedido de reembolso sem dizer reembolso
Tu até pode ir remendando a regex com mais palavras e mais exceções
Mas aí vira aquele monstro que ninguém tem coragem de mexer haha
Lógica escrita x julgamento
Formação Agentes de IA
Domine a criação de Agentes de IA e Venda para Empresas
- 402 aulas
- 32 projetos
- 38h 19min
O problema é de natureza, não de capricho
Regex e if são lógica escrita: você descreve exatamente o padrão e a máquina confere se o texto bate
Uma condição com IA é julgamento: você descreve o que quer dizer e o modelo decide se a frase significa aquilo
Se você conhece o Ctrl+F, a regex é bem semelhante: acha a palavra, mas não sabe o que ela quer dizer
Já a condição avaliada por IA é como pedir pra um colega ler o email e te dizer "esse cliente quer o dinheiro de volta, sim ou não?"
Um bom exemplo do modelo antigo é o nó If/else do OpenAI Agent Builder: ele usa expressões CEL (Common Expression Language), ou seja, lógica escrita, não avaliação em linguagem natural
E se liga: a OpenAI está descontinuando o Agent Builder, que será desligado em 30 de novembro de 2026, com migração recomendada para o Agents SDK ou para os ChatGPT Workspace Agents
Quando o if tradicional ainda é melhor
Nem tudo precisa de IA, beleza?
O if comum continua imbatível quando:
- A regra é determinística (sempre a mesma resposta pra mesma entrada)
- O dado já vem em campo estruturado, tipo status do pedido igual a "pago"
- A comparação é numérica, tipo valor acima de um limite
Usar IA pra ler um campo que já diz "pago" é só deixar o fluxo mais lento e menos previsível 🙂
Onde montar uma condição com IA: n8n, Langdock, Claude Code e Claude API
Cada ferramenta resolve isso de um jeito, e o detalhe que mais muda entre elas é o que acontece quando nada bate
| Ferramenta | Componente | Como a condição é escrita | Formato da resposta | Quando nada bate |
|---|---|---|---|---|
| n8n | Text Classifier | Categorias com nome e descrição; aceita uma classe ou várias por item; system prompt customizável com o placeholder {categories} | O item sai pelo ramo da categoria escolhida | Descartado (padrão) ou enviado ao ramo "Other" com a opção "Output on Extra, Other Branch" |
| Langdock | Nó Condition | Modo Manual (sem IA) ou modo Prompt AI, com instruções em linguagem natural e modelo selecionável | Cada condição é avaliada como verdadeira ou falsa, como um if-then-else | Com "Force Select Branch" desligado (padrão), pode não escolher ramo nenhum; ligado, a IA faz a melhor escolha possível |
| Claude Code | Hook do tipo prompt | Prompt enviado a um modelo Claude para avaliação de turno único; o placeholder $ARGUMENTS injeta o JSON de entrada do hook | JSON com os campos ok, reason e impossible | Você trata pelos campos ok e impossible, com a explicação em reason |
| Claude API | Structured outputs | Você define um JSON Schema em output_config.format; em tools, strict: true | JSON válido seguindo o schema que você definiu | Depende do schema: você cria o campo para o caso ambíguo |
Repara que só a Claude API não tem um "ramo de sobra" pronto
Lá, o caso ambíguo existe só se tu desenhar ele no schema (já já a gente faz isso)
O que você precisa antes de começar
Antes de abrir qualquer ferramenta, separa isso aqui:
- A regra atual escrita em uma frase, tipo "o cliente pediu reembolso?"
- Exemplos reais de mensagens pra conferir o resultado: alguns claramente positivos, alguns claramente negativos e alguns ambíguos
- Uma das ferramentas da tabela que você já usa no seu fluxo
- O destino de cada ramo decidido antes: pra onde vai o verdadeiro, pra onde vai o falso e pra onde vai o ambíguo

VPS Hostinger para seu sistema
10% OFF extraVPS com SSD NVMe e backups semanais. O cupom MATHEUSHORADECODAR é aplicado automaticamente pelo link.
Ver planos com 10% OFF →Esse último item parece burocracia, mas é ele que evita mensagem sumindo no meio do caminho…
Passo a passo: transformando a regra em condição avaliada por IA
Agora sim, bora transformar aquele if frágil numa condição com IA de verdade
- Reescreva a regra como pergunta ou categoria com descrição clara
O modelo não adivinha o que você tem na cabeça
No Text Classifier do n8n, cada categoria tem um nome e uma descrição, e a descrição explica ao modelo o que ela significa, o que faz MUITA diferença quando o significado não é óbvio
Então diz o que conta e o que NÃO conta:
Categoria: reembolso
Descrição: o cliente quer o dinheiro de volta (reembolso, estorno, cancelamento com devolução do valor, cobrança que ele não reconhece). NÃO conta: pedido de troca de produto, dúvida sobre prazo sem pedir o dinheiro de volta
Bateu a dúvida se dá pra escrever essa descrição em português? A lógica é parecida com a de escrever o pedido no seu idioma: o que pesa é a clareza do que você quer
Erro comum: criar a categoria só com o nome ("reembolso") e deixar o modelo inferir o resto
- Escolha o componente
Depende de onde o seu fluxo já vive: Text Classifier no n8n, nó Condition em modo Prompt AI na Langdock, hook do tipo prompt no Claude Code ou uma chamada à API com structured output
Na Langdock, lembra que o modo Manual não usa IA, e o modelo escolhido vale só pras condições em Prompt AI
Erro comum: usar IA onde um campo estruturado resolveria (se o sistema já marca o ticket como "reembolso", um if comum dá conta)
- Feche o formato da resposta
Pedir "responda sim ou não" e torcer pro modelo obedecer é receita pra dor de cabeça
As structured outputs da Claude API obrigam a resposta a seguir um JSON Schema, o que garante uma saída válida e fácil de processar nas etapas seguintes
Um schema enxuto, com o booleano, um marcador de ambíguo e o motivo:
{
"type": "object",
"properties": {
"pediu_reembolso": { "type": "boolean" },
"ambiguo": { "type": "boolean" },
"motivo": { "type": "string" }
},
"required": ["pediu_reembolso", "ambiguo", "motivo"],
"additionalProperties": false
}
Na API, esse schema vai em output_config.format (se tu viu output_format em exemplo antigo, é o nome anterior do parâmetro)
No Agent SDK, a opção é outputFormat (ou output_format), e o JSON Schema pode ser gerado a partir de Zod ou Pydantic
Erro comum: pedir texto livre e tentar interpretar depois com… regex 😅
- Defina se é uma classe só ou várias por item
O Text Classifier pode aceitar várias classes verdadeiras por item ou só uma
Se precisar ajustar o comportamento, dá pra personalizar o system prompt com um template que usa o placeholder {categories}
Erro comum: deixar várias classes ligadas quando o fluxo só aceita um caminho (a mensagem "quero trocar, senão me devolve o dinheiro" cai em dois ramos ao mesmo tempo)
- Rode os exemplos reais e leia o motivo
Passa as mensagens que você separou e compara o resultado com o que você esperava
Quando errar, lê o motivo devolvido: ele quase sempre aponta qual parte da descrição ficou vaga, e aí você ajusta o texto da categoria ou da condição
Rodar a mesma mensagem mais de uma vez também ajuda a ver se a resposta é estável, no mesmo espírito de um teste com prompts repetidos
Como tratar condição falsa ou ambígua no fluxo
Essa é a parte que separa uma automação massa de uma que perde cliente sem ninguém perceber
Porque a condição com IA não vai acertar 100% das vezes, e tudo bem, desde que o fluxo saiba o que fazer com a dúvida

Crie sistemas com IA para vender
Prompts, modelos e checklists para criar e publicar seu sistema com IA e preparar a oferta para o primeiro cliente.
Quero o e-book gratuito Receba o livro e os bônus no seu e-mail.- Separe três estados: sim, não e não dá pra decidir
Isso não é invenção minha, as próprias ferramentas da Anthropic pensam assim
O hook do tipo prompt do Claude Code responde neste formato:
{"ok": false, "reason": "explicação da decisão", "impossible": false}
E o avaliador do /goal devolve um de três veredictos, cada um com um motivo curto: "Not yet met", "Met" ou "Impossible"
Dois estados não bastam: o mundo real tem o "talvez"
- No n8n, ligue o ramo "Other"
No Text Classifier, quando não há correspondência clara, o item é descartado por padrão
Ativando "Output on Extra, Other Branch", ele vai pra um ramo extra "Other" em vez de sumir
Erro comum: esquecer que o padrão é descartar (já pensou o cliente pedindo reembolso de um jeito estranho e a mensagem simplesmente evaporando?)
- Na Langdock, decida de forma consciente sobre o "Force Select Branch"
Desligado (o padrão), a IA pode não escolher nenhum ramo se nenhuma condição bater
Ligado, ela é obrigada a escolher pelo menos um ramo, fazendo a melhor escolha possível
Desligado faz sentido quando existe triagem humana pra pegar o que sobrou
Ligado faz sentido quando o fluxo não pode parar de jeito nenhum, mas aí você aceita que a IA vai "chutar" o melhor caminho nos casos duvidosos
- Mande o ambíguo pra revisão humana ou pra uma pergunta de esclarecimento
O caso duvidoso vai pra uma fila de atendimento ou dispara uma resposta tipo "você quer trocar o produto ou receber o valor de volta?"
E leva junto o motivo que a IA devolveu, assim quem pega o caso já sabe onde ela travou
- Registre o reason pra auditoria
Guarda o motivo de cada decisão, junto com a mensagem original
Quando alguém perguntar "por que esse cliente caiu no financeiro?", tu tem a resposta, e ainda ganha material pra melhorar a descrição da condição
Erro comum: tratar ambíguo como falso, o que na prática é o mesmo bug da regex, só que com mais passos haha
Exemplos de condições com IA que valem a pena
Alguns use cases onde o julgamento faz MUITO mais sentido que a regra escrita:
- Triagem de atendimento: separar reembolso, troca, reclamação e dúvida, com descrição clara de cada categoria e ramo "Other" ligado
- Aprovação de conteúdo antes de publicar: uma condição que avalia se o texto segue as regras do seu guia, com o motivo registrado quando reprova
- Roteamento de leads por intenção: quem quer comprar agora, quem está pesquisando e quem só quer suporte, cada um pro seu caminho
- Condição de conclusão no Claude Code: o comando /goal define uma condição de conclusão, e o Claude segue trabalhando até cumpri-la, com um avaliador separado (o modelo pequeno e rápido configurado) checando a condição depois de cada turno
- Hooks do tipo prompt no Claude Code: a documentação indica esse tipo pra decisões que pedem julgamento em vez de regra determinística
Se liga num detalhe do /goal: o avaliador julga a condição pelo que aparece na conversa
Ele não roda comandos nem lê arquivos por conta própria
Então "os testes passam" só funciona como condição se a saída do Claude mostrar os testes passando, beleza? Escreve a condição pensando no que dá pra demonstrar na conversa
Próximo passo: troque um if do seu fluxo hoje
Não precisa refazer a automação inteira, pega UMA regra frágil, aquela que vive quebrando com sinônimo e negação
Reescreve ela como condição com uma descrição clara do que conta e do que não conta
Força a saída estruturada, com o booleano e o motivo
E cria o ramo do ambíguo antes de qualquer outra coisa (ramo "Other" no n8n, decisão consciente sobre o "Force Select Branch" na Langdock, campo próprio no schema da API)
O que for regra determinística, campo estruturado ou valor numérico continua no if comum, que segue sendo rápido e previsível 🙂
Até o próximo post!
Perguntas frequentes
O que é uma condição com IA e em que ela difere de um if comum?
Uma condição com IA avalia o significado da frase, não um padrão de texto fixo como regex. Em vez de comparar palavras, o modelo julga se a mensagem corresponde à intenção descrita por você. Por isso ela pega sinônimos, negações e frases indiretas que um if tradicional deixaria passar.
Como o Text Classifier do n8n cria essa condição?
Você define categorias com nome e descrição, e é a descrição que explica ao modelo o que a categoria significa. O nó aceita uma classe só ou várias classes por item, e dá pra personalizar o system prompt com o placeholder {categories}. O item sai pelo ramo da categoria que bateu.
Dá pra montar uma condição com IA no Claude Code?
Dá, usando um hook do tipo prompt: em vez de rodar um comando shell, o Claude Code manda o prompt e os dados do hook pra um modelo Claude avaliar em turno único. O placeholder $ARGUMENTS injeta o JSON de entrada do hook nesse prompt. A resposta volta em JSON com os campos ok, reason e impossible.
O que acontece quando a condição com IA fica ambígua e nada bate?
Depende da ferramenta. No Text Classifier do n8n o item é descartado por padrão, a menos que você ligue a opção Output on Extra, Other Branch pra mandar pra um ramo Other. Já no nó Condition da Langdock, com Force Select Branch desligado (o padrão), a IA pode simplesmente não escolher nenhum ramo.
É possível escolher qual modelo de IA avalia a condição no Langdock?
Sim, mas só no modo Prompt AI do nó Condition, que é onde a IA entra em cena. No modo Manual não tem IA envolvida, então não existe modelo pra selecionar ali.
Quando faz mais sentido usar if tradicional em vez de condição com IA?
Quando a regra é determinística, ou seja, sempre dá a mesma resposta pra mesma entrada. Também vale quando o dado já chega estruturado, como um status de pedido igual a pago, ou quando a comparação é numérica, tipo valor acima de um limite. Nesses casos, usar IA só deixa o fluxo mais lento e menos previsível.
Formações
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 48min
Blog | Mais populares

Guia completo do Grok 4: Tudo sobre funcionalidades, versões e preços
Descubra neste guia completo do Grok 4 tudo o que você precisa saber para escolher, contratar e aproveitar o máximo dessa IA inovadora! Confira funcionalidades, […]

Como criar slides no NotebookLM: fontes, prompts e revisão
Para criar slides no NotebookLM, adicione suas fontes e escolha Slide Deck no painel Studio. Defina público, idioma, tamanho e objetivo da apresentação. Revise fatos […]

Planos: n8n preço para 2026 | Qual vale a pena?
O n8n oferece uma Community Edition para hospedar por conta própria e planos pagos. A edição comunitária não elimina gastos com servidor, backups e manutenção. […]
