> 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/hablla-docs-es/flujos-de-automatizacion/todos-los-componentes/transformacion-de-datos/seleccion-multiple.md).

# Selección múltiple

### Visión General

El **Componente condicional Switch Case** (identificado en el sistema por el nombre técnico `switch_case`) es un nodo de control de flujo enfocado en enrutamiento multinivel y segmentación compleja de datos. Su función principal es ir más allá de la bifurcación binaria del componente IF tradicional, permitiendo que la automatización evalúe una única variable o expresión contra múltiples escenarios de prueba (*casos*) de forma simultánea. Al procesar el contacto, el sistema verifica los bloques de condiciones de arriba hacia abajo y dirige al usuario específicamente a la puerta de salida del primer criterio que devuelva un resultado positivo.

### Parámetros de Configuración

La parametrización del nodo opera a través de una lista dinámica de validaciones agrupadas bajo la sección *Etiqueta y expresión*:

* **Título:** El nombre o etiqueta descriptiva dada a esa condición específica (ej.: "Nota 4 o 5"). Este texto sirve para organizar el editor visual y dar nombre a la respectiva puerta de salida física.<br>
* **Expresión:** Campo estructurado para recibir fórmulas de validación envueltas por la sintaxis de llaves dobles `{{ ... }}`. Es el criterio matemático o textual que determina el éxito de la ramificación.<br>
* **Botón + Agregar opción:** Control gerencial que inserta un nuevo par de campos (*Título* + *Expresión*) en la lista de verificación del componente.<br>
* **Ícono de papelera:** Botón de eliminación rápida fijado en la esquina superior derecha de cada bloque de opción para eliminar reglas obsoletas del nodo.<br>

### Constructor Visual

La interfaz del constructor está diseñada de forma vertical y modular, adaptando el mapa gráfico de conexiones al volumen de reglas insertadas por el administrador:

* **Mapeo de Múltiples Puertas de Salida:** A diferencia de los nodos comunes, la morfología física de este bloque en el editor de diseño de flujos es totalmente mutable. Cada nueva opción agregada por el botón *+ Agregar opción* genera una nueva puerta de salida lateral correspondiente, identificada exactamente por el texto escrito en el campo *Título*.<br>
* **Bloque de salida predeterminado (Fallback):** Como se muestra en la parte inferior de la interfaz de `image_3b7aa4.png`, la última opción se configura como un "Fallback" (o ruta de escape). Tiene el campo de *Expresión* intencionalmente vacío. Si el contacto pasa por todas las expresiones anteriores y ninguna coincide, el motor activa automáticamente la puerta de salida del *Fallback* para evitar que el cliente quede atascado en el flujo.<br>

### Operadores especiales

Las propiedades lógicas de este componente gestionan la validación sintáctica continua y métodos nativos de análisis de cadenas en JavaScript:

* **Análisis por inclusión de caracteres (`.includes()`):** Como se ilustra en el panel, el intérprete acepta métodos modernos de validación de cadenas, como `{{$data?.first_message.includes("4") \| $data?.first_message.includes("5")}}`. El método `.includes()` comprueba si el término escrito por el usuario contiene la presencia de ese carácter específico en cualquier parte de la frase, en lugar de exigir una igualdad exacta.<br>
* **Priorización lineal en cascada:** El motor procesa las reglas de forma estrictamente lineal (de arriba hacia abajo). Si un contacto coincide simultáneamente con el criterio 1 y el criterio 2, el sistema ejecutará el enrutamiento por el camino 1 por una cuestión de orden de lectura, ignorando las comprobaciones inferiores.<br>
* **Computación síncrona instantánea:** Al igual que el componente IF, el Switch Case se resuelve en micromilisegundos directamente en la memoria del servidor, distribuyendo los contactos por las puertas de salida de forma asíncrona e instantánea.<br>

### Ejemplos Prácticos

La tabla de abajo demuestra escenarios clásicos de cómo configurar las expresiones para crear distribuciones de atención inteligentes en la plataforma:

| **Título de la opción (salida)** | **Expresión JavaScript configurada**       | **Tipo de validación realizada**         | **Caso de Uso Práctico**                                                                                                                                                                       |                                                                                                                                                |
| -------------------------------- | ------------------------------------------ | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| **Nota 4 o 5**                   | \`{{$data?.first\_message.includes("4") \\ | $data?.first\_message.includes("5")}}\`  | Búsqueda parcial de caracteres en cadena (O).                                                                                                                                                  | Analizar la nota ingresada por el cliente en una encuesta rápida. Las notas 4 o 5 dirigen el contacto a la salida de clientes muy satisfechos. |
| **Nota 3**                       | `{{$data?.first_message.includes("3")}}`   | Búsqueda parcial de carácter en cadena.  | Identifica a los usuarios que dieron nota neutra (3) para enviarlos a una ramificación de atención enfocada en mejoras.                                                                        |                                                                                                                                                |
| **Nota 1 o 2**                   | \`{{$data?.first\_message.includes("1") \\ | $data?.first\_message.includes("2")}}\`  | Búsqueda parcial de caracteres en cadena (O).                                                                                                                                                  | Aislar inmediatamente a clientes insatisfechos (notas 1 o 2) para dirigir el contacto con prioridad máxima a la cola de retención humana.      |
| **Fallback**                     | *Vacío (Sin expresión)*                    | Ruta de escape automática por exclusión. | Si el cliente escribe un texto aleatorio o una nota fuera del patrón (ej.: "me gustó"), el sistema toma la salida del Fallback para enviar un mensaje pidiéndole que escriba un 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/hablla-docs-es/flujos-de-automatizacion/todos-los-componentes/transformacion-de-datos/seleccion-multiple.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.
