> For the complete documentation index, see [llms.txt](https://docs.hablla.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hablla.com/fluxos-de-automacoes/todos-os-componentes/transformacao-de-dados/selecao-multipla.md).

# Seleção Múltipla

### Visão Geral

O **Componente Condicional Switch Case** (identificado no sistema pelo nome técnico `switch_case`) é um nó de controle de fluxo focado em roteamento multinível e segmentação complexa de dados. Sua função principal é ir além da bifurcação binária do componente IF tradicional, permitindo que a automação avalie uma única variável ou expressão contra múltiplos cenários de teste (*cases*) de forma simultânea. Ao processar o contato, o sistema verifica os blocos de condições de cima para baixo e direciona o usuário especificamente para a porta de saída do primeiro critério que retornar um resultado positivo.

### Parâmetros de Configuração

A parametrização do nó opera através de uma lista dinâmica de validações agrupadas sob a seção *Rótulo e expressão*:

* **Título:** O nome ou etiqueta descritiva dada àquela condição específica (ex: "Nota 4 ou 5"). Este texto serve para organizar o editor visual e dar nome à respectiva porta de saída física.<br>
* **Expressão:** Campo estruturado para receber fórmulas de validação envolvidas pela sintaxe de chaves duplas `{{ ... }}`. É o critério matemático ou textual que determina o sucesso da ramificação.<br>
* **Botão + Adicionar opção:** Controle gerencial que insere um novo par de campos (*Título* + *Expressão*) na lista de checagem do componente.<br>
* **Ícone de Lixeira:** Botão de exclusão rápida fixado no canto superior direito de cada bloco de opção para remover regras obsoletas do nó.<br>

### Construtor Visual

A interface do construtor é projetada de forma vertical e modular, adaptando o mapa gráfico de conexões ao volume de regras inseridas pelo administrador:

* **Mapeamento de Múltiplas Portas de Saída:** Diferente de nós comuns, a morfologia física deste bloco no editor de design de fluxos é totalmente mutável. Cada nova opção adicionada pelo botão *+ Adicionar opção* gera uma nova porta de saída lateral correspondente, identificada exatamente pelo texto digitado no campo *Título*.<br>
* **Bloco de Saída Padrão (Fallback):** Como exibido na base da interface de `image_3b7aa4.png`, a última opção é configurada como um "Fallback" (ou rota de fuga). Ela possui o campo de *Expressão* intencionalmente vazio. Se o contato passar por todas as expressões anteriores e nenhuma for correspondida, o motor aciona automaticamente a porta de saída do *Fallback* para evitar que o cliente fique travado no fluxo.<br>

### Operadores Especiais

As propriedades lógicas deste componente gerenciam a validação sintática contínua e métodos nativos de análise de strings em JavaScript:

* **Análise por Inclusão de Caracteres (`.includes()`):** Conforme ilustrado no painel, o interpretador aceita métodos modernos de validação de string, como `{{$data?.first_message.includes("4") || $data?.first_message.includes("5")}}`. O método `.includes()` checa se o termo digitado pelo usuário contém a presença daquele caractere específico em qualquer parte da frase, em vez de exigir uma igualdade exata.<br>
* **Priorização Linear Cascade:** O motor processa as regras de forma estritamente linear (de cima para baixo). Se um contato corresponder simultaneamente ao critério 1 e ao critério 2, o sistema executará o roteamento pelo caminho 1 por uma questão de ordem de leitura, ignorando as checagens inferiores.<br>
* **Computação Síncrona Instantânea:** Assim como o componente IF, o Switch Case é resolvido em micromilissegundos diretamente na memória do servidor, distribuindo os contatos pelas portas de saída de forma assíncrona e instantânea.<br>

### Exemplos Práticos

A tabela abaixo demonstra cenários clássicos de como configurar as expressões para criar distribuições de atendimento inteligentes na plataforma:

| **Título da Opção (Saída)** | **Expressão JavaScript Configurada**       | **Tipo de Validação Efetuada**          | **Caso de Uso Prático**                                                                                                                                                                   |                                                                                                                                             |
| --------------------------- | ------------------------------------------ | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| **Nota 4 ou 5**             | \`{{$data?.first\_message.includes("4") \\ | $data?.first\_message.includes("5")}}\` | Busca parcial de caracteres em string (OU).                                                                                                                                               | Analisar a nota digitada pelo cliente em uma pesquisa rápida. Notas 4 ou 5 direcionam o contato para a saída de clientes muito satisfeitos. |
| **Nota 3**                  | `{{$data?.first_message.includes("3")}}`   | Busca parcial de caractere em string.   | Identifica usuários que deram nota neutra (3) para enviá-los para uma ramificação de atendimento focado em melhorias.                                                                     |                                                                                                                                             |
| **Nota 1 ou 2**             | \`{{$data?.first\_message.includes("1") \\ | $data?.first\_message.includes("2")}}\` | Busca parcial de caracteres em string (OU).                                                                                                                                               | Isolar imediatamente clientes insatisfeitos (notas 1 ou 2) para direcionar o contato com prioridade máxima para a fila de retenção humana.  |
| **Fallback**                | *Vazio (Sem expressão)*                    | Rota de fuga automática por exclusão.   | Se o cliente digitar um texto aleatório ou uma nota fora do padrão (ex: "gostei"), o sistema pega a saída do Fallback para enviar uma mensagem pedindo para ele digitar um número válido. |                                                                                                                                             |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.hablla.com/fluxos-de-automacoes/todos-os-componentes/transformacao-de-dados/selecao-multipla.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
