> 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/se-if.md).

# SE (IF)

### 1. Visão Geral

O **Componente Condicional IF** é o principal nó de controle lógico e bifurcação de fluxo da plataforma. Sua função primária é avaliar uma ou mais regras de validação baseadas em JavaScript ou dados internos do CRM em tempo real. Ao processar o contato, o motor da automação testa a instrução informada e divide o caminho da jornada de forma binária: se o resultado da validação for positivo, ativa-se a saída correspondente a **Verdadeiro** (*True*); caso contrário, o contato é despachado pela saída de **Falso** (*False*).

### 2. Parâmetros de Configuração

A parametrização deste nó é centralizada em um único bloco de codificação interpretativa:

* **Expressão:** Campo de texto aberto estruturado para receber fórmulas, operadores lógicos ou códigos curtos envolvidos pela sintaxe de chaves duplas `{{ ... }}`. É neste espaço que o administrador dita os critérios lógicos que serão testados (como comparar o valor de uma variável coletada com um texto fixo ou validar uma constante do sistema).<br>

### 3. Construtor Visual

A interface do construtor preza pela simplicidade operacional para atuar como um nó puramente lógico de tomada de decisão no mapa visual:

* **Painel de Input Direto:** Exibe um layout limpo focado exclusivamente no preenchimento do campo *Expressão*. Como não envia mensagens e não interage externamente com os canais, o construtor visual dispensa seletores de conexão, mídias ou variáveis alvo.<br>
* **Bifurcação Gráfica Física:** No editor de design de fluxos, este componente altera visualmente a estrutura dos caminhos da automação ao disponibilizar duas portas físicas de saída fixas em sua lateral direita, comumente rotuladas como:
  * Saída Verde / Superior: **Verdadeiro** (*True* / Sucesso da condição).<br>
  * Saída Vermelha / Inferior: **Falso** (*False* / Falha da condição).<br>

### 4. Operadores Especiais

As propriedades de processamento do componente gerenciam a validação sintática avançada e a checagem de variáveis lógicas:

* **Interpretador JavaScript e Safe Navigation (`?.`):** Conforme exemplificado em `image_3be49d.png`, o campo aceita propriedades como `{{$data?.phone == "5561999999999" || $data?.phone == "5561992222222"}}`. O uso do operador de navegação segura (`?.`) garante que o fluxo não quebre ou trave se a propriedade avaliada (neste caso, o telefone) estiver vazia no momento da checagem.<br>
* **Operadores Lógicos Equivalentes:** O interpretador de expressões suporta os operadores de comparação e lógica convencionais:
  * `==` ou `===` (Igual a).<br>
  * `!=` (Diferente de).<br>
  * `||` (Operador lógico OU - atende se ao menos uma das condições for real).<br>
  * `&&` (Operador lógico E - exige que todas as condições listadas sejam reais).<br>
* **Execução Instantânea em Micromilissegundos:** O motor de regras computa o resultado de forma 100% síncrona interna na memória do servidor. Não há estado de espera (*standby*) neste bloco; o contato entra no componente, sua expressão é calculada e ele é roteado para a próxima etapa instantaneamente.<br>

### 5. Exemplos Práticos

A tabela abaixo demonstra cenários clássicos de como preencher o campo de expressão para obter segmentações eficientes dentro do fluxo de atendimento:

| **Expressão Configurada no Construtor** | **Tipo de Operação Efetuada**                | **Comportamento Interno do Motor**                                                                                | **Caso de Uso Prático**                                                                                                 |                                                                                                                               |
| --------------------------------------- | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| \`{{$data?.phone == "5561999999999" \\  | $data?.phone == "5561992222222"}}\`          | Validação por lista de exceção (OU).                                                                              | Testa se o telefone do contato é exatamente o número A ou o número B. Se sim, vai para a saída Verdadeiro.              | Isolar números de testes internos da diretoria ou homologadores para que eles recebam um fluxo diferente dos clientes finais. |
| `{{response == "Sim"}}`                 | Comparação direta de string simples.         | Avalia se a variável `response` (vinda de um bloco de pergunta anterior) é idêntica ao texto digitado ou clicado. | Direcionar o usuário para a ramificação de contratação caso ele tenha clicado no botão "Sim" em um menu interativo.     |                                                                                                                               |
| `{{nota_nps >= 9}}`                     | Validação matemática de operador relacional. | Checa se o número armazenado na variável de pontuação é maior ou igual a 9.                                       | Filtrar promotores em uma pesquisa de satisfação para encaminhar o fluxo para um pedido de avaliação pública no Google. |                                                                                                                               |


---

# 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/se-if.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.
