# Condicional (conditional)

### :point\_right: Para que serve?

O módulo Condicional é utilizado quando é preciso adicionar condições ao fluxo. É possível configurar diversas saídas.

Ele é muito usado para verificar dados como CPF, CNPJ, verificar se o usuário está cadastrado, validar idade do cliente, entre outros.

<figure><img src="/files/GZ08t0vy0q47mtHX51I0" alt=""><figcaption><p>Utilização do módulo <strong>Condicional</strong> em um fluxo real</p></figcaption></figure>

### :point\_right: Detalhes do módulo

Vamos ver alguns detalhes importantes para utilizar este módulo?

Em primeiro lugar, é preciso atenção com uma regra:

{% hint style="info" %}
Além das condições configuradas, o módulo terá sempre a saída "**Senão**". Ela obriga uma tratativa para casos em que o usuário não corresponde à regra da condição criada. Por isso, lembre-se de dar uma tratativa para essa saída!
{% endhint %}

Nas configurações do módulo Condicional, é possível adicionar mais de uma condição clicando no botão **Adicionar Mais Condições**. Também é necessário definir os valores que serão comparados. O campo "Parâm Um" receberá o primeiro parâmetro da comparação, o campo "Parâm Dois", o segundo e assim por diante.

O campo "Condição" irá determinar qual tipo de comparação será realizada. Podemos utilizar, por exemplo, comparadores de igualdade, diferença, maior, menor, etcetera.&#x20;

{% hint style="danger" %}
Um detalhe importante é que sempre que for definir os valores já existentes no fluxo, nos campos de comparação é importante que eles estejam na formatação ideal de acordo com o banco de dados que você está usado.
{% endhint %}

<figure><img src="/files/TDE6mWe7hgEElF0X0VLf" alt=""><figcaption><p>Opções de condição e dados do módulo</p></figcaption></figure>

As condições podem ser:

* `=` Igual
* `!=` Diferente
* `>` Maior que
* `<` Menor que
* `>=` Maior ou igual
* `<=` Menor ou igual
* `Exists` O parâmetro existe
* `Not exists` O parâmetro não existe
* `Contains` Contém o parâmetro
* `Not contains` Não contém o parâmetro

Já as varáveis podem ser inúmeras e vão variar conforme cada projeto. São alguns exemplos:

* `{{user.idade}}` Valida a idade do usuário
* `{{user.cpf}}` Condição para CPF do usuário
* `{{user.cpfCnpj}}` Condição para verificar se CPF ou CNPJ
* `{{user.cpfCnpj.replace(/\D/g, '').length}}` Condição para verificar se CPF ou CPNJ e criar uma máscara para preservar os dados.

### :point\_right: Caso de uso

Vamos ver um exemplo na prática. Em um projeto, seu cliente precisa conseguir fazer um cadastro na base da sua empresa usando o CNPJ.

O atendimento será 100% automatizado, então você precisa criar uma condição que garanta que os dados cadastrados estão corretos. Em uma etapa, você já verificou que o usuário não possui cadastro. Para concluir, precisa garantir que o CNPJ existe.

Para isso, deve realizar uma consulta na base de dados da Receita Federal e criar uma condição para verificar os **erros de retorno** da resposta do usuário:

1. No primeiro parâmetro, insira `{{input.body.type}}` Esse parâmetro vai inserir o CNPJ do usuário banco de dados da sua empresa
2. A condição, nesse caso, deve ser igual `=`
3. No segundo parâmetro, vamos preencher `{{not.found}}`, ou seja, o CNPJ ainda não consta na sua base de dados
4. Para facilitar manutenções, vamos dar um nome para a condição: `CNPJ não encontrado`
5. Faça as tratativas para os casos em que o CPNJ existe ou não existe

O fluxo vai ficar assim:

<figure><img src="/files/8FUvHTGIOsVrh56Vw7AA" alt=""><figcaption><p>Módulo Condicional em um exemplo prático.</p></figcaption></figure>

Caso tenha dúvidas de como implementar esse módulo em seus projetos, [fale com nosso suporte](https://suporte.hyperflow.global/support/login).


---

# Agent Instructions: 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:

```
GET https://help.hyperflow.global/docs/builder-de-chatbots/controle-de-fluxo/condicional-conditional.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
