Condições são filtros que decidem se a automação realmente vai executar quando o gatilho dispara. Sem condições, a automação roda em toda ocorrência do gatilho — o que pode causar disparos demais ou executar quando não deveria.
Esse artigo mostra como configurar condições, os campos suportados e exemplos práticos.
Por que usar condições
Sem condições
- Gatilho
message_receiveddispara automação a cada mensagem que chega — incluindo spam, mensagens curtas tipo "ok", "obrigado". - Resultado: automação executa centenas de vezes por dia. Custos altos. Ações irrelevantes.
Com condições
- Gatilho
message_received+ condiçãomessage_body contains "preço". - Dispara só quando cliente menciona "preço" — relevante.
- Resultado: poucas execuções, todas significativas.
Configurar condições
No formulário da automação, após escolher gatilho:
- Localize a seção Condições (ou Filtros).
- Clique em Adicionar condição.
- Cada condição tem 3 partes:
- Campo: o que comparar.
- Operador: como comparar.
- Valor: referência da comparação.
- Adicione múltiplas condições se necessário.
- Salve.
Campos disponíveis
message_body
Texto da mensagem recebida (apenas no gatilho message_received).
Operadores:
- contains — texto contém X (case insensitive).
- not_contains — não contém.
- equals — exatamente igual.
- starts_with — começa com.
Exemplos:
message_body contains "orçamento"— só quando cliente pede orçamento.message_body contains "boleto"— só quando perguntam por boleto.message_body starts_with "/cancelar"— comando especial.message_body not_contains "obrigado"— ignora agradecimentos.
lead_source
Origem do lead (Lead.source).
Operadores:
- equals — origem é X.
- not_equals — origem é diferente de X.
Valores comuns: manual, facebook, google, instagram, whatsapp, site, indicacao, outro.
Exemplos:
lead_source equals "whatsapp"— só pra leads vindos do WhatsApp.lead_source equals "facebook"— só pra Lead Ads do Facebook.lead_source not_equals "manual"— exclui leads cadastrados manualmente.
lead_tag
Tags do lead.
Operadores:
- contains — lead tem essa tag.
- not_contains — não tem.
Exemplos:
lead_tag contains "vip"— só pra clientes VIP.lead_tag contains "b2b"— só pra B2B.lead_tag not_contains "cancelado"— exclui cancelados.
conversation_tag
Tags da conversa (não do lead).
Operadores: contains, not_contains.
Exemplos:
conversation_tag contains "reclamacao"— só conversas marcadas como reclamação.conversation_tag contains "urgente"— só urgentes.
Combinando condições (AND)
Quando você adiciona múltiplas condições, elas são combinadas com AND — todas precisam passar.
Exemplo:
Condição 1: message_body contains "preço"
Condição 2: lead_source equals "whatsapp"
Condição 3: lead_tag contains "interesse-alto"
Automação dispara apenas se as 3 forem verdadeiras simultaneamente.
⚠️ Atenção: não há OR explícito hoje. Pra cenário "ou A ou B", crie 2 automações separadas (uma com condição A, outra com B).
Exemplos práticos
1. Bot só responde sobre pricing
Gatilho: message_received
Condição 1: message_body contains "preço"
Ações:
- send_whatsapp_message: "Tabela de preços:..."
2. Boas-vindas só pra novos clientes B2B
Gatilho: lead_created
Condição 1: lead_source equals "whatsapp"
Condição 2: lead_tag contains "b2b"
Ações:
- send_whatsapp_message: "Olá! Especialista B2B já vai te atender."
- assign_to_user: vendedor B2B
3. Notificar VIP perdido pra gerente
Gatilho: lead_lost
Condição 1: lead_tag contains "vip"
Ações:
- send_whatsapp_notification: pra gerente
- create_task: investigar motivo
4. Pular automação pra leads de teste
Gatilho: lead_created
Condição 1: lead_tag not_contains "teste"
Ações:
-... (todas as ações de produção)
5. Resposta automática para pedidos de cancelamento
Gatilho: message_received
Condição 1: message_body contains "cancelar"
Ações:
- transfer_to_department: Retenção
- add_tag_conversation: "potencial-churn"
- send_whatsapp_message: "Vou te transferir pra equipe especializada."
Condições e variáveis
Operadores como contains e equals são case-insensitive (não diferenciam maiúsculas/minúsculas).
message_body contains "preço" pega:
- "qual o preço?" ✅
- "PREÇO" ✅
- "Preço, por favor" ✅
- "valor" ❌ (não contém a palavra "preço")
💡 Dica: pra cobrir sinônimos, considere múltiplas automações ou use a condição com palavra mais comum + LLM no agente IA pra interpretar contexto.
Múltiplas palavras na mesma condição
contains aceita uma string, não múltiplas. Pra detectar várias palavras:
Opção 1 — Múltiplas condições com OR (impossível hoje)
Não há OR. Você criaria 2 automações:
Automação A: message_body contains "preço"
Automação B: message_body contains "valor"
Automação C: message_body contains "orçamento"
3 automações com mesma ação. Funciona, mas duplica setup.
Opção 2 — Frase exata como string
contains "qual preço" — pega qualquer mensagem contendo essa frase exata.
Opção 3 — Condição + agente IA
- Condição filtra grosso (
contains "preço"). - Ação atribui agente IA.
- Agente IA decide com inteligência o que fazer.
Performance e escala
Cada vez que o gatilho dispara, sistema avalia condições antes de executar ações:
- Condições simples (4 campos suportados): avaliação rápida.
- Sem condições: avaliação trivial (sempre passa).
- Múltiplas condições: linear (3 condições = 3 verificações).
Não há impacto perceptível de performance, mesmo com muitas condições.
Sem condições disponíveis (limitações)
Hoje a UI não suporta condições em todos os campos. Algumas limitações:
- Não há condição em campos personalizados (custom fields).
- Não há condição em valor (
lead.value > 1000). - Não há condição em data (
lead.created_at > 7 dias atrás). - Não há condição em tipo de mensagem (texto vs imagem).
- Sem operadores numéricos (
>,<).
Pra cenários assim, use:
- Tags como proxy: aplique tag manual ou via outra automação, depois filtre por tag.
- Etapas como proxy: mova lead pra etapa específica conforme critério.
- Webhook → sistema externo: que processa lógica complexa fora.
Sem condições explícitas pra trigger
Alguns gatilhos têm filtro implícito na configuração (não chamado de "condição"):
lead_createdtem trigger_config:source,pipeline_id.lead_stage_changedtem trigger_config:stage_id,pipeline_id.message_receivedtem trigger_config:channel,whatsapp_instance_id.
Esses são filtros do gatilho, não condições. Funcionam similar mas estão no nível do trigger.
Boas práticas
1. Sempre teste
Antes de ativar pra produção:
- Crie automação inativa.
- Faça evento manual que satisfaça gatilho + condições.
- Verifique se executou (timeline do lead).
- Só depois ative.
2. Comece restritivo, relaxe depois
Comece com muitas condições restritivas e relaxe se notar que nunca dispara. Mais seguro que disparar demais por engano.
3. Use tags pra encadear
Pra fluxos complexos, use tags como estado:
- Automação A adiciona tag
processado. - Automação B (com condição
tag contains processado) só dispara após A.
Permite encadear comportamentos.
4. Documente automações complexas
Em vez de colocar tudo numa automação só, divida em várias com nomes claros:
- "Boas-vindas WhatsApp B2B" vs.
- "Boas-vindas WhatsApp Geral" vs.
- "Boas-vindas Site".
Mais fácil de manter.
5. Revise periodicamente
Mensalmente, abra a lista de automações e veja run_count:
run_count = 0há semanas → automação nunca dispara. Investigue.run_countmuito alto e sem conversão → talvez dispara em casos errados.
Próximos passos
- Pra entender ações específicas, veja Ações principais.
- Pra ver execuções e diagnosticar, veja Histórico de execuções.