# 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="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2FWgsScpAmB2Llh72WaUGO%2Fconditional-gif.gif?alt=media&#x26;token=5251c549-769c-4bcc-b326-78ed4134cf1d" 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="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2F1Nj9rLds6AU7aacvpTMR%2Fimage.png?alt=media&#x26;token=bc4be9f6-1b2d-4689-9dee-35e6dc137359" 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="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2FI6JqXnDZ0UEbZN50FpcM%2Fchrome-capture-2023-9-20.gif?alt=media&#x26;token=ac3262ed-9511-497f-aa99-dc31b4ba9525" 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).
