> ## 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.

# Bloco Condicional

> O bloco condicional permite tomar decisões baseadas nas respostas do usuário, variáveis nativas e variáveis personalizadas para direcionar o fluxo de uma conversa do Treble. Aprenda a usar este bloco para criar fluxos de conversa inteligentes e personalizados.

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

## O que é o bloco condicional?

O **bloco condicional** é um dos blocos mais poderosos do Treble. Ele permite criar fluxos de conversa inteligentes que tomam decisões automáticas baseadas nas respostas do usuário, variáveis nativas, variáveis personalizadas e propriedades de contatos do HubSpot.

Este bloco avalia uma condição e direciona o fluxo da conversa para diferentes caminhos dependendo se a condição é verdadeira ou falsa. É fundamental para criar experiências personalizadas e automatizar a tomada de decisões em suas conversas.

## Antes de começar

Os blocos condicionais usam diferentes tipos de variáveis para avaliar condições. Antes de começar, certifique-se de que entende como elas funcionam:

### Variáveis no Treble

Os blocos condicionais usam variáveis do Treble para avaliar condições. Se você não tem clareza sobre como as variáveis funcionam, pode ler nosso guia sobre variáveis aqui:

<Card title="Variáveis do Treble" icon="hashtag" href="/pt/docs/build-with-treble/features/variables">
  Aprenda a criar e usar variáveis personalizadas e coletadas pelo cliente.
</Card>

### Variáveis nativas

As variáveis nativas são variáveis especiais que o sistema fornece automaticamente. Você pode usá-las diretamente em blocos condicionais sem necessidade de tê-las capturado previamente:

<Card title="Variáveis nativas" icon="star" href="/pt/docs/build-with-treble/features/native-variables">
  Conheça as variáveis nativas disponíveis no Treble.
</Card>

### Variáveis do HubSpot (se você usa a integração)

Se você usa a integração com HubSpot, os blocos condicionais também podem usar as propriedades dos contatos do HubSpot:

<Card title="Variáveis do HubSpot no Treble" icon="link" href="/pt/docs/integrations/hubspot/features/variables">
  Aprenda a usar as propriedades do HubSpot em seus blocos condicionais.
</Card>

## Onde encontrar o bloco condicional?

<Steps>
  <Step title="Acessar o editor de fluxos">
    Faça login no Treble.ai em: <a class="article-link" href="https://app.treble.ai"><p>app.treble.ai</p><Icon icon="arrow-up-right-from-square" iconType="solid" /></a>

    Vá para a seção **Conversas** e clique em **Criar nova conversa** ou edite uma conversa existente.

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

  <Step title="Abrir o menu de blocos">
    Uma vez no editor de fluxos, clique no botão <Icon icon="square-plus" iconType="solid" /> no painel superior esquerdo para mostrar o menu de blocos.

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

  <Step title="Encontrar o bloco condicional">
    Role para baixo no menu de blocos até encontrar a seção **Condições**. Você verá o bloco **Condições** disponível para adicionar ao seu fluxo.

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

  <Step title="Adicionar o bloco ao fluxo">
    Clique no bloco **Condições** para adicioná-lo ao seu fluxo de conversa. O bloco aparecerá no editor e você poderá movê-lo para a posição desejada.
  </Step>
</Steps>

## Configuração do bloco condicional

<Steps>
  <Step title="Abrir a configuração">
    Uma vez adicionado o bloco condicional ao seu fluxo, faça duplo clique no bloco para abrir o painel de configuração no lado esquerdo do editor.

    <img src="https://mintcdn.com/trebleai/9CTpLCIjWruVB-9s/images/conditional-2.gif?s=6079edd4288ae34761423db95e75bc8a" alt="Configuração do bloco condicional" width="1524" height="1248" data-path="images/conditional-2.gif" />
  </Step>

  <Step title="Selecionar o tipo de condição">
    No painel de configuração, você verá diferentes tipos de condições disponíveis:

    * **Condição personalizada**: Para avaliar variáveis do Treble, variáveis nativas ou propriedades do HubSpot
    * **Condição horária**: Para configurar condições baseadas em tempo e horários de negócio

    Selecione **Condição personalizada** para a maioria dos casos de uso.
  </Step>

  <Step title="Configurar a condição">
    Na seção **Estabelece condições**, você configurará três elementos:

    * **Variável**: A variável que você quer avaliar (ex: `idade`, `country_code`, `inbound`)
    * **Operador**: O operador de comparação (ex: Igual a, Maior que, Contém)
    * **Valor**: O valor com o qual comparar (ex: `18`, `+57`, `Suporte`)

    <img src="https://mintcdn.com/trebleai/9CTpLCIjWruVB-9s/images/conditional-2.gif?s=6079edd4288ae34761423db95e75bc8a" alt="Configuração de condições" width="1524" height="1248" data-path="images/conditional-2.gif" />
  </Step>

  <Step title="Adicionar múltiplas condições (opcional)">
    Se você precisa avaliar múltiplas condições, clique no botão **Adicionar condição** para adicionar mais condições ao mesmo bloco.

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

## Operadores disponíveis

O Treble oferece 8 operadores diferentes para avaliar condições:

| Operador             | Descrição                                           | Exemplo                      |
| -------------------- | --------------------------------------------------- | ---------------------------- |
| **Igual a**          | Compara se o valor é exatamente igual               | `idade = 18`                 |
| **Maior que**        | Compara se o valor é maior                          | `idade > 18`                 |
| **Menor que**        | Compara se o valor é menor                          | `idade < 18`                 |
| **Maior ou igual a** | Compara se o valor é maior ou igual                 | `idade >= 18`                |
| **Menor ou igual a** | Compara se o valor é menor ou igual                 | `idade <= 18`                |
| **Contém**           | Verifica se o valor contém o texto especificado     | `mensagem` contém `ajuda`    |
| **Não contém**       | Verifica se o valor NÃO contém o texto especificado | `mensagem` não contém `spam` |
| **Diferente de**     | Compara se o valor é diferente                      | `país != Colômbia`           |

## Casos de uso com variáveis nativas

### Exemplo 1: Redirecionar baseado no país do usuário

**Objetivo**: Direcionar automaticamente o cliente para o agente que atende seu país de residência.

**Configuração**:

* **Variável**: `country_code`
* **Operador**: Igual a
* **Valor**: `+57` (Colômbia)

**Fluxo**:

* Se `country_code` = `+57` → Agente da Colômbia
* Em todos os outros casos → Agente geral

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

### Exemplo 2: Horários de negócio

**Objetivo**: Mostrar diferentes mensagens de acordo com a hora do dia.

**Configuração**:

* **Variável**: `time`
* **Operador**: Maior ou igual a
* **Valor**: `09:00`

**Fluxo**:

* Se `time` >= `09:00` e `time` \< `18:00` → Mensagem de horário de negócio
* Em todos os outros casos → Mensagem de fora do horário

### Exemplo 3: Dias da semana

**Objetivo**: Oferecer promoções apenas nos fins de semana.

**Configuração**:

* **Variável**: `weekday`
* **Operador**: Maior ou igual a
* **Valor**: `6` (Sábado)

**Fluxo**:

* Se `weekday` >= `6` → Promoção de fim de semana
* Em todos os outros casos → Mensagem regular

### Exemplo 4: Palavras-chave iniciais

**Objetivo**: Rotear baseado na palavra-chave com a qual o usuário inicia a conversa.

**Configuração**:

* **Variável**: `inbound`
* **Operador**: Igual a
* **Valor**: `Suporte`

**Fluxo**:

* Se `inbound` = `Suporte` → Fluxo de suporte
* Se `inbound` = `Vendas` → Fluxo de vendas
* Se `inbound` = `Cotação` → Fluxo de cotação
* Em todos os outros casos → Menu geral

## Casos de uso com variáveis personalizadas

### Exemplo 1: Idade do cliente

**Objetivo**: Oferecer diferentes produtos baseado na idade do cliente.

**Configuração**:

* **Variável**: `idade_cliente`
* **Operador**: Maior ou igual a
* **Valor**: `18`

**Fluxo**:

* Se `idade_cliente` >= `18` → Produtos para adultos
* Em todos os outros casos → Produtos para menores

### Exemplo 2: Tipo de problema

**Objetivo**: Direcionar para diferentes agentes baseado no tipo de problema reportado.

**Configuração**:

* **Variável**: `tipo_problema`
* **Operador**: Contém
* **Valor**: `técnico`

**Fluxo**:

* Se `tipo_problema` contém `técnico` → Agente técnico
* Se `tipo_problema` contém `faturamento` → Agente de faturamento
* Em todos os outros casos → Agente geral

## Condições compostas

### Exemplo 1: Múltiplas condições em um bloco

Você pode adicionar múltiplas condições no mesmo bloco condicional:

**Configuração**:

* Condição 1: `country_code` = `+57`
* Condição 2: `time` >= `09:00`
* Condição 3: `time` \< `18:00`

**Resultado**: O fluxo seguirá o caminho "Sim" apenas se TODAS as condições forem verdadeiras (usuário da Colômbia E durante horário de negócio).

### Exemplo 2: Bloco condicional seguido de outro bloco condicional

Você pode encadear múltiplos blocos condicionais para criar fluxos complexos:

<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="Condições compostas" width="2386" height="1450" data-path="images/condition-block-1.png" />

**Fluxo**:

1. Primeiro bloco condicional: O cliente é da Colômbia?
   * Sim → Segundo bloco condicional: É horário de negócio?
     * Sim → Agente da Colômbia durante horário de negócio
     * Não → Agente da Colômbia fora do horário de negócio
   * Não → Terceiro bloco condicional: É horário de negócio?
     * Sim → Agente internacional durante horário de negócio
     * Não → Agente internacional fora do horário de negócio

## Uso do "Em todos os outros casos"

O **"Em todos os outros casos"** é fundamental nos blocos condicionais. Define o que acontece quando nenhuma das condições configuradas é atendida.

### Exemplo prático:

**Configuração**:

* Se `country_code` = `+57` → Agente da Colômbia
* Se `country_code` = `+55` → Agente do Brasil
* **Em todos os outros casos** → Agente internacional

**Importante**: Você deve sempre conectar o **"Em todos os outros casos"** a um bloco de mensagem ou ação. Nunca deixe esta rota desconectada.

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

## Configuração de horários e tempo

Para configurar condições baseadas em tempo, você pode usar a **Condição horária**:

<Card title="Configuração de horários e tempo" icon="clock" href="/pt/docs/build-with-treble/guides/schedules-and-time-configuration">
  Aprenda a configurar horários e tempo no Treble.
</Card>

### Exemplo de configuração de condição horária:

**Configuração**:

* **Tipo**: Condição horária
* **Fuso horário**: America/Bogota
* **Horário**: 09:00 - 18:00 (Segunda a Sexta)

**Fluxo**:

* Se está em horário de negócio → Agente regular
* Em todos os outros casos → Mensagem de fora do horário

## Melhores práticas

### 1. Sempre conecte "Em todos os outros casos"

Nunca deixe esta rota desconectada. Ela deve sempre levar a um bloco de mensagem ou ação.

### 2. Use nomes descritivos para as variáveis

Em vez de `var1`, use nomes como `idade_cliente`, `tipo_problema`, `país_usuário`.

### 3. Teste suas condições

Antes de implantar, verifique que suas condições funcionem corretamente com diferentes valores.

### 4. Mantenha os fluxos simples

Evite criar fluxos muito complexos. Se você tem muitas condições, considere dividi-las em múltiplos blocos.

### 5. Documente suas decisões

Use comentários nos blocos de mensagem para documentar por que você tomou certas decisões no fluxo.

## Solução de problemas comuns

### Problema: O bloco não funciona como esperado

**Solução**: Verifique que:

* A variável existe e tem o valor correto
* O operador é apropriado para o tipo de dado
* O valor de comparação está no formato correto

### Problema: Múltiplas condições não funcionam

**Solução**: Lembre-se de que todas as condições devem ser atendidas para que o fluxo siga o caminho "Sim". Se você precisa que apenas uma seja atendida, use blocos condicionais separados.

### Problema: A condição horária não funciona

**Solução**: Verifique que:

* O fuso horário está configurado corretamente
* Os horários estão em formato 24 horas
* Os dias da semana estão configurados corretamente

## Exemplos avançados

### Exemplo 1: Sistema de suporte inteligente

**Objetivo**: Criar um sistema que direciona automaticamente baseado no país, horário e tipo de problema.

**Fluxo**:

1. Bloco condicional: É horário de negócio?
   * Sim → Bloco condicional: O cliente é da Colômbia?
     * Sim → Agente da Colômbia
     * Não → Agente internacional
   * Não → Mensagem de fora do horário

### Exemplo 2: Sistema de vendas personalizado

**Objetivo**: Oferecer produtos baseado na idade e país do cliente.

**Fluxo**:

1. Bloco condicional: O cliente é maior de idade?
   * Sim → Bloco condicional: O cliente é do Brasil?
     * Sim → Produtos para adultos no Brasil
     * Não → Produtos para adultos internacionais
   * Não → Produtos para menores

### Exemplo 3: Roteador de conversas

**Objetivo**: Rotear automaticamente baseado na palavra-chave inicial.

**Fluxo**:

1. Bloco condicional: Qual é a palavra-chave inicial?
   * Se `inbound` = `Suporte` → Fluxo de suporte
   * Se `inbound` = `Vendas` → Fluxo de vendas
   * Se `inbound` = `Faturamento` → Fluxo de faturamento
   * Em todos os outros casos → Menu principal

<Check>
  Perfeito! Agora você sabe como usar o bloco condicional para criar fluxos de conversa inteligentes e personalizados no Treble.
</Check>

## Próximos passos

<CardGroup cols={2}>
  <Card title="Variáveis nativas" icon="star" href="/pt/docs/build-with-treble/features/native-variables">
    Aprenda a usar variáveis nativas em seus blocos condicionais.
  </Card>

  <Card title="Configuração de horários" icon="clock" href="/pt/docs/build-with-treble/guides/schedules-and-time-configuration">
    Aprenda a configurar horários e tempo em suas conversas.
  </Card>
</CardGroup>
