Tema
Tabela de decisão · decision_table
Referência do nó
Kind
decision_tableCategoriaDadosPara que serve
A Tabela de decisão funciona como uma planilha de critérios. Você escreve as regras em ordem, cada uma com as condições que precisam ser verdadeiras, e cada regra aponta para um desfecho. O nó lê as regras de cima para baixo, usa a primeira que bater e devolve os valores daquele desfecho, como mensagem, etapa e classificação.
Quando usar
- Classificar o cliente combinando várias respostas (ex.: etapa + situação de trabalho)
- Definir mensagem, etapa e classificação a partir da mesma combinação de dados
- Substituir uma sequência longa de condições encadeadas por uma lista de regras
Tabela ou Condição?
| Use a Tabela de decisão quando | Use a Condição (se/senão) quando |
|---|---|
| Várias combinações levam a poucos resultados | Você precisa desviar o caminho do fluxo |
| Cada resultado precisa de vários valores (mensagem, etapa, classificação) | Cada caminho tem ações diferentes (enviar mensagem, transferir, aguardar) |
Atenção
A Tabela de decisão não desvia o fluxo. Ela tem uma saída só e devolve valores. Se o fluxo precisa seguir caminhos diferentes, coloque um nó Se/Senão (condição) depois dela, olhando uma das colunas (por exemplo, etapa).
Passo a passo
- Arraste o nó **Tabela de decisão** para o canvas e conecte-o ao ponto do fluxo em que os dados já estão disponíveis.
- Defina as **Colunas**: os valores que o nó vai devolver.
- Cadastre os **Desfechos**: um por resultado possível, com o valor de cada coluna.
- Crie as **Regras**: as condições de cada uma e o desfecho que ela aponta. Ordene as regras do jeito que deve valer.
- Escolha o **Desfecho padrão**, usado quando nenhuma regra bate (opcional).
- Salve. As saídas ficam disponíveis como
{{tabela_de_decisao.stage}},{{tabela_de_decisao.message}}e assim por diante, sempre com o nome do seu nó no lugar detabela_de_decisao.
As três partes
1. Colunas
Cada coluna é um valor que o nó devolve. Defina um nome e um tipo:
| Tipo | Exemplo de uso |
|---|---|
| Texto | Mensagem, etapa, classificação |
| Número | Pontuação, quantidade de dias |
| Sim/não | Indica se o cliente deve ser atendido por uma pessoa |
O nome usa só letras minúsculas, números e _, e começa com letra (por exemplo, etapa ou dias_restantes). Os nomes matched, outcome, outcome_label e rule são reservados para as saídas fixas do nó.
2. Desfechos
Cada desfecho é cadastrado uma vez, com o valor de cada coluna. Os campos aceitam variáveis, como {{pergunta_situacao.resposta}}, então a mensagem pode mudar conforme o cliente.
3. Regras
Cada regra tem:
- Condições: as mesmas da Condição (se/senão), com operadores como igual, contém e maior que. Combine-as com E (todas precisam ser verdadeiras) ou OU (basta uma).
- Desfecho: o desfecho que a regra devolve quando bate.
Atenção
A ordem das regras importa. Vale a primeira regra que bater; as demais são ignoradas. Para mudar a prioridade, arraste a regra para cima ou para baixo.
Desfecho padrão
O desfecho padrão é usado quando nenhuma regra bate. Assim o nó sempre devolve algum valor.
Se você não definir um desfecho padrão e nenhuma regra bater, o nó não altera nada. Isso é útil para montar uma tabela de "ajuste" que roda depois de outra: ela só mexe nos casos que a primeira deixou pendentes.
Saídas
| Saída | O que traz |
|---|---|
matched | true se alguma regra bateu, false se caiu no desfecho padrão ou não bateu nada |
outcome | Identificador do desfecho escolhido |
outcome_label | Nome do desfecho, como você cadastrou |
rule | Identificador da regra que bateu |
| Uma saída por coluna | O valor daquela coluna no desfecho escolhido, como stage ou message |
Para usar uma saída em outro nó, referencie-a pelo nome do nó: {{tabela_de_decisao.stage}}. Se você renomeou o nó para "Triagem", a referência vira {{triagem.stage}}.
Exemplo: triagem
Imagine uma triagem que decide a próxima etapa do atendimento com base em duas respostas: a situação de trabalho e o prazo.
Colunas: etapa (texto) e mensagem (texto).
Desfechos:
| Desfecho | etapa | mensagem |
|---|---|---|
| qualificado | agendamento | Ótimo, vou separar um horário para você. |
| desqualificado | encerrado | Infelizmente, neste momento não conseguimos atender esse caso. |
| atendimento humano | fila_humana | Vou transferir você para um de nossos atendentes. |
| continuar conversa | coleta | Preciso de mais algumas informações para continuar. |
Regras (em ordem):
- Tem carteira assinada E prazo maior que 30 dias: desfecho qualificado
- Tem carteira assinada: desfecho atendimento humano
- Prazo vencido OU não respondeu à pergunta de prazo: desfecho desqualificado
- Situação de trabalho contém "autônomo": desfecho continuar conversa
- Qualquer outro caso: desfecho continuar conversa (também pode ser o desfecho padrão)
Antes da tabela: use um nó Calcular datas para descobrir se o prazo já venceu. Use a saída is_before (prazo anterior a hoje) e referencie-a na regra 3, em vez de comparar datas dentro da Tabela.
Depois da tabela: um nó Se/Senão (condição) olhando {{triagem.etapa}} decide se o fluxo segue para o agendamento ou para a fila humana.
Dica
Teste a ordem das regras. Uma regra genérica no topo engole as específicas: se "tem carteira assinada" estiver na primeira posição, o caso "carteira assinada e prazo vencido" nunca chega às regras de baixo. Coloque as regras mais específicas primeiro e a mais genérica por último.
Saiba mais
- Se / Senão (condição) — desvie o caminho do fluxo com base nas saídas da tabela
- Calcular datas — calcule prazos antes de usar a tabela
- Atribuir Variável — guarde o resultado para usar mais adiante
