> ## Documentation Index
> Fetch the complete documentation index at: https://help.treble.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Bloque Condicional

> El bloque condicional te permite tomar decisiones en función de las respuestas del usuario, variables nativas y variables personalizadas para dirigir el flujo de una conversación de Treble. Aprende a usar este bloque para crear flujos de conversación inteligentes y personalizados.

<img src="https://mintcdn.com/trebleai/9CTpLCIjWruVB-9s/images/conditional-1.gif?s=b7bd09f802ecbb5cfb7c59e575ce6945" alt="Bloque condicional en Treble" width="2540" height="1448" data-path="images/conditional-1.gif" />

## ¿Qué es el bloque condicional?

El **bloque condicional** es uno de los bloques más poderosos de Treble. Te permite crear flujos de conversación inteligentes que toman decisiones automáticas basadas en las respuestas del usuario, variables nativas, variables personalizadas y propiedades de contactos de HubSpot.

Este bloque evalúa una condición y dirige el flujo de la conversación hacia diferentes caminos según si la condición es verdadera o falsa. Es fundamental para crear experiencias personalizadas y automatizar la toma de decisiones en tus conversaciones.

## Antes de empezar

Los bloques condicionales utilizan diferentes tipos de variables para evaluar las condiciones. Antes de empezar, asegúrate de que tienes claro cómo funcionan:

### Variables en Treble

Los bloques condicionales utilizan variables de Treble para evaluar las condiciones. Si no tienes claro cómo funcionan las variables, puedes leer nuestra guía sobre variables aquí:

<Card title="Variables de Treble" icon="hashtag" href="/es/docs/build-with-treble/features/variables">
  Aprende a crear y usar variables personalizadas y recopiladas por el cliente.
</Card>

### Variables nativas

Las variables nativas son variables especiales que el sistema provee automáticamente. Puedes usarlas directamente en bloques condicionales sin necesidad de haberlas capturado previamente:

<Card title="Variables nativas" icon="star" href="/es/docs/build-with-treble/features/native-variables">
  Conoce las variables nativas disponibles en Treble.
</Card>

### Variables de HubSpot (si usas la integración)

Si utilizas la integración con HubSpot, los bloques condicionales también pueden usar las propiedades de los contactos de HubSpot:

<Card title="Variables de HubSpot en Treble" icon="link" href="/es/docs/integrations/hubspot/features/variables">
  Aprende a usar las propiedades de HubSpot en tus bloques condicionales.
</Card>

## ¿Dónde encontrar el bloque condicional?

<Steps>
  <Step title="Acceder al editor de flujos">
    Inicia sesión en Treble.ai en: <a class="article-link" href="https://app.treble.ai"><p>app.treble.ai</p><Icon icon="arrow-up-right-from-square" iconType="solid" /></a>

    Dirígete a la sección **Conversaciones** y haz clic en **Crear nueva conversación** o edita una conversación existente.

    <img src="https://mintcdn.com/trebleai/aaCrgms9mLKayuxp/images/create-convo.gif?s=be4cd557da1bfa256303a5628ebc1768" alt="Crear conversación" width="2686" height="1466" data-path="images/create-convo.gif" />
  </Step>

  <Step title="Abrir el menú de bloques">
    Una vez en el editor de flujos, haz clic en el botón <Icon icon="square-plus" iconType="solid" /> en el panel superior izquierdo para desplegar el menú de bloques.

    <img src="https://mintcdn.com/trebleai/woBrUvSBPp-ldiW5/images/message-blocks-2.gif?s=a80714c5a77b5c62c795409e1df32971" alt="Menú de bloques" width="2380" height="1454" data-path="images/message-blocks-2.gif" />
  </Step>

  <Step title="Encontrar el bloque condicional">
    Desplázate hacia abajo en el menú de bloques hasta encontrar la sección **Condiciones**. Verás el bloque **Condiciones** disponible para agregar a tu flujo.

    <img src="https://mintcdn.com/trebleai/9CTpLCIjWruVB-9s/images/conditional-1.gif?s=b7bd09f802ecbb5cfb7c59e575ce6945" alt="Bloque condicional" width="2540" height="1448" data-path="images/conditional-1.gif" />
  </Step>

  <Step title="Agregar el bloque al flujo">
    Haz clic en el bloque **Condiciones** para agregarlo a tu flujo de conversación. El bloque aparecerá en el editor y podrás moverlo a la posición que desees.
  </Step>
</Steps>

## Configuración del bloque condicional

<Steps>
  <Step title="Abrir la configuración">
    Una vez agregado el bloque condicional a tu flujo, haz doble clic en el bloque para abrir el panel de configuración en el lado izquierdo del editor.

    <img src="https://mintcdn.com/trebleai/9CTpLCIjWruVB-9s/images/conditional-2.gif?s=6079edd4288ae34761423db95e75bc8a" alt="Configuración del bloque condicional" width="1524" height="1248" data-path="images/conditional-2.gif" />
  </Step>

  <Step title="Seleccionar el tipo de condición">
    En el panel de configuración, verás diferentes tipos de condiciones disponibles:

    * **Condición personalizada**: Para evaluar variables de Treble, variables nativas o propiedades de HubSpot
    * **Condición horaria**: Para configurar condiciones basadas en tiempo y horarios de negocio

    Selecciona **Condición personalizada** para la mayoría de casos de uso.
  </Step>

  <Step title="Configurar la condición">
    En la sección **Establece condiciones**, configurarás tres elementos:

    * **Variable**: La variable que quieres evaluar (ej: `edad`, `country_code`, `inbound`)
    * **Operador**: El operador de comparación (ej: Igual a, Mayor a, Contiene)
    * **Valor**: El valor con el que comparar (ej: `18`, `+57`, `Soporte`)

    <img src="https://mintcdn.com/trebleai/9CTpLCIjWruVB-9s/images/conditional-2.gif?s=6079edd4288ae34761423db95e75bc8a" alt="Configuración de condiciones" width="1524" height="1248" data-path="images/conditional-2.gif" />
  </Step>

  <Step title="Agregar múltiples condiciones (opcional)">
    Si necesitas evaluar múltiples condiciones, haz clic en el botón **Agregar condición** para añadir más condiciones al mismo bloque.

    <img src="https://mintcdn.com/trebleai/9CTpLCIjWruVB-9s/images/conditional-5.gif?s=bb5653aed9877ca8d267b2134911810d" alt="Múltiples condiciones" width="2542" height="1444" data-path="images/conditional-5.gif" />
  </Step>
</Steps>

## Operadores disponibles

Treble ofrece 8 operadores diferentes para evaluar condiciones:

| Operador            | Descripción                                            | Ejemplo                      |
| ------------------- | ------------------------------------------------------ | ---------------------------- |
| **Igual a**         | Compara si el valor es exactamente igual               | `edad = 18`                  |
| **Mayor a**         | Compara si el valor es mayor                           | `edad > 18`                  |
| **Menor a**         | Compara si el valor es menor                           | `edad < 18`                  |
| **Mayor o igual a** | Compara si el valor es mayor o igual                   | `edad >= 18`                 |
| **Menor o igual a** | Compara si el valor es menor o igual                   | `edad <= 18`                 |
| **Contiene**        | Verifica si el valor contiene el texto especificado    | `mensaje` contiene `ayuda`   |
| **No contiene**     | Verifica si el valor NO contiene el texto especificado | `mensaje` no contiene `spam` |
| **Diferente a**     | Compara si el valor es diferente                       | `pais != Colombia`           |

## Casos de uso con variables nativas

### Ejemplo 1: Redirigir según el país del usuario

**Objetivo**: Dirigir automáticamente al cliente con el agente que atiende su país de residencia.

**Configuración**:

* **Variable**: `country_code`
* **Operador**: Igual a
* **Valor**: `+57` (Colombia)

**Flujo**:

* Si `country_code` = `+57` → Agente de Colombia
* En todos los otros casos → Agente general

<img src="https://mintcdn.com/trebleai/9CTpLCIjWruVB-9s/images/conditional-3.gif?s=dfabe916ed7055870a59c3c76a2f94fc" alt="Redirigir según país" width="2684" height="1208" data-path="images/conditional-3.gif" />

### Ejemplo 2: Horarios de atención

**Objetivo**: Mostrar diferentes mensajes según la hora del día.

**Configuración**:

* **Variable**: `time`
* **Operador**: Mayor o igual a
* **Valor**: `09:00`

**Flujo**:

* Si `time` >= `09:00` y `time` \< `18:00` → Mensaje de horario laboral
* En todos los otros casos → Mensaje de fuera de horario

### Ejemplo 3: Días de la semana

**Objetivo**: Ofrecer promociones solo los fines de semana.

**Configuración**:

* **Variable**: `weekday`
* **Operador**: Mayor o igual a
* **Valor**: `6` (Sábado)

**Flujo**:

* Si `weekday` >= `6` → Promoción de fin de semana
* En todos los otros casos → Mensaje regular

### Ejemplo 4: Palabras clave iniciales

**Objetivo**: Enrutar según la palabra clave con la que el usuario inicia la conversación.

**Configuración**:

* **Variable**: `inbound`
* **Operador**: Igual a
* **Valor**: `Soporte`

**Flujo**:

* Si `inbound` = `Soporte` → Flujo de soporte
* Si `inbound` = `Ventas` → Flujo de ventas
* Si `inbound` = `Cotización` → Flujo de cotizaciones
* En todos los otros casos → Menú general

## Casos de uso con variables personalizadas

### Ejemplo 1: Edad del cliente

**Objetivo**: Ofrecer diferentes productos según la edad del cliente.

**Configuración**:

* **Variable**: `edad_cliente`
* **Operador**: Mayor o igual a
* **Valor**: `18`

**Flujo**:

* Si `edad_cliente` >= `18` → Productos para adultos
* En todos los otros casos → Productos para menores

### Ejemplo 2: Tipo de problema

**Objetivo**: Dirigir a diferentes agentes según el tipo de problema reportado.

**Configuración**:

* **Variable**: `tipo_problema`
* **Operador**: Contiene
* **Valor**: `técnico`

**Flujo**:

* Si `tipo_problema` contiene `técnico` → Agente técnico
* Si `tipo_problema` contiene `facturación` → Agente de facturación
* En todos los otros casos → Agente general

## Condiciones compuestas

### Ejemplo 1: Múltiples condiciones en un bloque

Puedes agregar múltiples condiciones en el mismo bloque condicional:

**Configuración**:

* Condición 1: `country_code` = `+57`
* Condición 2: `time` >= `09:00`
* Condición 3: `time` \< `18:00`

**Resultado**: El flujo seguirá el camino "Sí" solo si TODAS las condiciones son verdaderas (usuario de Colombia Y en horario laboral).

### Ejemplo 2: Bloque condicional seguido de otro bloque condicional

Puedes encadenar múltiples bloques condicionales para crear flujos complejos:

<img src="https://mintcdn.com/trebleai/9CTpLCIjWruVB-9s/images/condition-block-1.png?fit=max&auto=format&n=9CTpLCIjWruVB-9s&q=85&s=e35d6495221d8cb3979889e744b10b8b" alt="Condiciones compuestas" width="2386" height="1450" data-path="images/condition-block-1.png" />

**Flujo**:

1. Primer bloque condicional: ¿Es cliente de Colombia?
   * Sí → Segundo bloque condicional: ¿Es horario laboral?
     * Sí → Agente de Colombia en horario laboral
     * No → Agente de Colombia fuera de horario
   * No → Tercer bloque condicional: ¿Es horario laboral?
     * Sí → Agente internacional en horario laboral
     * No → Agente internacional fuera de horario

## Uso del "En todos los otros casos"

El **"En todos los otros casos"** es fundamental en los bloques condicionales. Define qué sucede cuando ninguna de las condiciones configuradas se cumple.

### Ejemplo práctico:

**Configuración**:

* Si `country_code` = `+57` → Agente de Colombia
* Si `country_code` = `+55` → Agente de Brasil
* **En todos los otros casos** → Agente internacional

**Importante**: Siempre debes conectar el **"En todos los otros casos"** a un bloque de mensaje o acción. Nunca dejes esta ruta sin conectar.

<img src="https://mintcdn.com/trebleai/9CTpLCIjWruVB-9s/images/conditional-4.png?fit=max&auto=format&n=9CTpLCIjWruVB-9s&q=85&s=9cb71f2da04bd08199bc0ce170299958" alt="En todos los otros casos" width="1988" height="1064" data-path="images/conditional-4.png" />

## Configuración de horarios y tiempo

Para configurar condiciones basadas en tiempo, puedes usar la **Condición horaria**:

<Card title="Configuración de horarios y tiempo" icon="clock" href="/es/docs/build-with-treble/guides/schedules-and-time-configuration">
  Aprende a configurar horarios y tiempo en Treble.
</Card>

### Ejemplo de configuración horaria:

**Configuración**:

* **Tipo**: Condición horaria
* **Zona horaria**: America/Bogota
* **Horario**: 09:00 - 18:00 (Lunes a Viernes)

**Flujo**:

* Si está en horario laboral → Agente regular
* En todos los otros casos → Mensaje de fuera de horario

## Mejores prácticas

### 1. Siempre conecta "En todos los otros casos"

Nunca dejes esta ruta sin conectar. Siempre debe llevar a un bloque de mensaje o acción.

### 2. Usa nombres descriptivos para las variables

En lugar de `var1`, usa nombres como `edad_cliente`, `tipo_problema`, `pais_usuario`.

### 3. Prueba tus condiciones

Antes de desplegar, verifica que tus condiciones funcionen correctamente con diferentes valores.

### 4. Mantén los flujos simples

Evita crear flujos demasiado complejos. Si tienes muchas condiciones, considera dividirlas en múltiples bloques.

### 5. Documenta tus decisiones

Usa comentarios en los bloques de mensaje para documentar por qué tomaste ciertas decisiones en el flujo.

## Solución de problemas comunes

### Problema: El bloque no funciona como esperaba

**Solución**: Verifica que:

* La variable existe y tiene el valor correcto
* El operador es el adecuado para el tipo de dato
* El valor de comparación está en el formato correcto

### Problema: Múltiples condiciones no funcionan

**Solución**: Recuerda que todas las condiciones deben cumplirse para que el flujo siga el camino "Sí". Si necesitas que solo una se cumpla, usa bloques condicionales separados.

### Problema: La condición horaria no funciona

**Solución**: Verifica que:

* La zona horaria está configurada correctamente
* Los horarios están en formato 24 horas
* Los días de la semana están configurados correctamente

## Ejemplos avanzados

### Ejemplo 1: Sistema de soporte inteligente

**Objetivo**: Crear un sistema que dirija automáticamente según el país, horario y tipo de problema.

**Flujo**:

1. Bloque condicional: ¿Es horario laboral?
   * Sí → Bloque condicional: ¿Es cliente de Colombia?
     * Sí → Agente de Colombia
     * No → Agente internacional
   * No → Mensaje de fuera de horario

### Ejemplo 2: Sistema de ventas personalizado

**Objetivo**: Ofrecer productos según la edad y país del cliente.

**Flujo**:

1. Bloque condicional: ¿Es mayor de edad?
   * Sí → Bloque condicional: ¿Es cliente de Brasil?
     * Sí → Productos para adultos en Brasil
     * No → Productos para adultos internacionales
   * No → Productos para menores

### Ejemplo 3: Router de conversaciones

**Objetivo**: Enrutar automáticamente según la palabra clave inicial.

**Flujo**:

1. Bloque condicional: ¿Cuál es la palabra clave inicial?
   * Si `inbound` = `Soporte` → Flujo de soporte
   * Si `inbound` = `Ventas` → Flujo de ventas
   * Si `inbound` = `Facturación` → Flujo de facturación
   * En todos los otros casos → Menú principal

<Check>
  ¡Perfecto! Ahora conoces cómo usar el bloque condicional para crear flujos de conversación inteligentes y personalizados en Treble.
</Check>

## Próximos pasos

<CardGroup cols={2}>
  <Card title="Variables nativas" icon="star" href="/es/docs/build-with-treble/features/native-variables">
    Aprende a usar las variables nativas en tus bloques condicionales.
  </Card>

  <Card title="Configuración de horarios" icon="clock" href="/es/docs/build-with-treble/guides/schedules-and-time-configuration">
    Aprende a configurar horarios y tiempo en tus conversaciones.
  </Card>
</CardGroup>
