Pular para o conteúdo principal

JSONLogic

JSONLogic permite avaliar condicoes sem escrever codigo imperativo.

Onde aplicar

  • Condition Node para decisao binaria
  • Switch Node para roteamento multiplo
  • Validacao de criterios antes de integrar com API externa

Exemplo simples

{
">": [{"var": "score"}, 80]
}

Use em Condition Node e Switch Node para roteamento por regra.

Operadores comuns

  • Comparacao: >, >=, <, <=, ===, !==
  • Logica: and, or, !
  • Texto/lista: in
  • Controle: if

Exemplo de roteamento por confianca

{
"if": [
{">=": [{"var": "intentScore"}, 0.8]},
"rota-automatica",
"fila-humana"
]
}

Exemplo de criterio combinado

{
"and": [
{"===": [{"var": "canal"}, "whatsapp"]},
{">": [{"var": "tempoEsperaMin"}, 5]}
]
}

Cenario avancado: decisao com fallback operacional

Objetivo: automatizar somente quando houver confianca alta e integracao disponivel.

{
"if": [
{
"and": [
{">=": [{"var": "intentScore"}, 0.8]},
{"===": [{"var": "integration.crm.status"}, "up"]},
{"===": [{"var": "trigger.channel"}, "whatsapp"]}
]
},
"rota_automatica",
"rota_fallback_humano"
]
}

Preview no FlowBuilder

Este exemplo abre direto no FlowBuilder embedado. A visualizacao em Fluxo/JSON, simulacao e operacoes do flow ficam dentro do proprio editor.

Nao foi possivel carregar o preview embedado automaticamente.

Cenario de degradacao controlada

Se a API externa estiver instavel, preserve experiencia do cliente:

{
"if": [
{"!==": [{"var": "integration.crm.status"}, "up"]},
"mensagem_padrao_e_handoff",
"seguir_fluxo_normal"
]
}

Como testar regra antes de publicar

Teste no minimo 3 payloads:

  1. Confianca alta + integracao ok (deve ir para automacao)
  2. Confianca baixa (deve ir para fallback)
  3. Integracao fora do ar (deve ir para fallback)

Erros frequentes

  • Caminho de variavel inexistente no contexto
  • Comparar numero com texto
  • Regra extensa sem fallback

Boas praticas

  • Quebre regras muito grandes em etapas.
  • Use valores padrao para campos opcionais.
  • Teste a regra com 2 ou 3 payloads diferentes.
  • Em regra critica, prefira fallback seguro ao inves de bloqueio total.

Proximo passo

Depois das regras, revise Fluxo de Execucao para validar impacto no comportamento geral do flow.