---
title: Conditional - IF
slug: conditional-if
description: Learn how to create powerful flows using the Conditional IF connector with this comprehensive document. Discover the parameters and operators available for different data types and follow a step-by-step example of creating a flow. Configure connectors lik
docTags: 
createdAt: 2023-08-02T13:48:22.787Z
---

## Objetivo/Resumo

O Conector Condicional - IF  é usado para executar ações diferentes com base em uma condição. Em resumo, o conector "IF" é uma ferramenta poderosa para criar lógica condicional, permitindo que um fluxo se adapte e tome decisões com base em diferentes cenários e condições, tornando-o mais flexível e eficiente.

::Image[]{src="https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/jq1YECz774R4TxFZCjdmj_image.png" size="30" width="336" height="261" position="center" showCaption="false"}

## Criando um fluxo utilizando o Conector Condicional - IF

::Image[]{src="https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/PK5lxUsa24M40EujcIuXn_imagem-if.jpg" size="50" width="1239" height="816" position="center" showCaption="false"}

Crie um fluxo e arraste o conector Condicional - IF para o canvas:

Este conector não precisa de conexão para ser usado, apenas configurar suas parametrizações de acordo com a lógica a ser implementada no fluxo.

OBS: [Clique aqui](docId\:OcJTBFHi9Rerkr2d6OwIP) e acesse nosso passo a passo para saber como criar um fluxo.

### Configurando conector Condicional - IF

Selecione o conector e na aba de `Parametrização` e preencha os seguintes parâmetros de configuração:

- **Condição:&#x20;**&#x54;ipo de dado no qual será avaliada a condição. O conector dispões de quatro condições sendo elas: Data e hora, Boolean, String e Number;
- **Valor 1:&#x20;**&#x50;rimeiro valor de entrada para avaliação da condição;
- **Operador:&#x20;**&#x4F;perador condicional para ser apliacada no(s) valor(s) de entrada.
  - Operadores disponíveis para condição ***Data e hora:***
    - **Occurred After:&#x20;**&#x45;ste operador verifica se uma data e hora ocorreram após outra data e hora.
    - **Occurred Before:&#x20;**&#x45;ste operador verifica se uma data e hora ocorreram antes de outra data e hora.
  - Operadores disponíveis para condição ***Boolean:***
    - **Equal:&#x20;**&#x45;sse operador verifica se um valor booleano é igual a outro valor booleano.
    - **Not Equal:&#x20;**&#x45;sse operador verifica se um valor booleano NÃO é igual a outro valor booleano.
  - Operadores disponíveis para condição ***String:***
    - **Contains:&#x20;**&#x45;sse operador verifica se uma sequência contém um determinado substring.
    - **Not** **Contains:&#x20;**&#x45;sse operador verifica se uma sequência NÃO contém um determinado substring.
    - **Ends With:&#x20;**&#x45;sse operador verifica se uma sequência termina com um determinado sufixo.
    - **Not Ends With:&#x20;**&#x45;sse operador verifica se uma sequência NÃO termina com um determinado sufixo.
    - **Equal:&#x20;**&#x45;sse operador verifica se uma sequência é igual a outra sequência.
    - **Not Equal:&#x20;**&#x45;sse operador verifica se uma sequência NÃO é igual a outra sequência.
    - **Regex Match:&#x20;**&#x45;sse operador verifica se uma sequência corresponde a um padrão definido usando uma expressão regular.
    - **Regex Not Match:&#x20;**&#x45;sse operador verifica se uma sequência NÃO corresponde a um padrão definido usando uma expressão regular.
    - **Stars With:&#x20;**&#x45;sse operador verifica se uma sequência começa com um determinado prefixo.
    - **Not Stars With:&#x20;**&#x45;sse operador verifica se uma sequência NÃO começa com um determinado prefixo.
    - **Is Empty:&#x20;**&#x45;sse operador verifica se uma sequência está vazia (não contém caracteres).
    - **Is Not Empty:&#x20;**&#x45;sse operador verifica se uma sequência NÃO está vazia (contém pelo menos um caractere).
  - Operadores disponíveis para condição ***Number:***
    - **Equal:&#x20;**&#x45;sse operador verifica se um número é igual a outro número.
    - **Not Equal:&#x20;**&#x45;sse operador verifica se um número NÃO é igual a outro número.
    - **Larger:&#x20;**&#x45;sse operador verifica se um número é maior que outro número.
    - **Larger or Equal:&#x20;**&#x45;sse operador verifica se um número é maior ou igual a outro número.
    - **Smaller:&#x20;**&#x45;sse operador verifica se um número é menor que outro número.
    - **Smaller or Equal:&#x20;**&#x45;sse operador verifica se um número é menor ou igual a outro número.

*Nota: Estes campos podem ser preenchidos usando&#x20;*[Fluid Expression Language](docId:0VQVPw6saqz2z1jGp8FwC).

## Na prática

Neste tópico criaremos um fluxo com intuito de mostrar o conector Condicional - IF na prática. O fluxo terá quatro passos porém executará apenas três, sendo eles: bloodtypes, condition, negative ou positive.

### Configurando passo 'bloodtypes' (HTTP)

![](https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/0tTR9Jpv6Iyw-QAw7f7Sf_image.png)

Este passo fará uma busca em uma api pública que retornará tipos sanguineos aleatórios, adicione a URL[`https://random-data-api.com/api/v2/blood_types `](https://random-data-api.com/api/v2/blood_types) ultilizando o verbo `GET` do conector HTTP. As configurações do nosso conector HTTP ficaram assim na aba `Parametrização`:

::Image[]{src="https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/iItiMtLYOxAb0bRtLv_Ko_image.png" size="50" width="424" height="685" position="center" showCaption="false"}

Já na aba `Propriedades` informamos apenas um nome ao nosso passo, pois o GET nessa api não precisa de nenhum tipo de conexão:

::Image[]{src="https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/6CHHYlkfNCUp0W0KLZNYX_image.png" size="50" width="418" height="567" position="center" showCaption="false"}

### Configurando passo 'condition' (Conditional - IF)

Este passo irá verificar o fator do tipo sanguineo (bloodtypes) retornado pelo passo anterior (bloodtypes). Se o fator for negativo, a api retorna o sinal de `-` . Caso contrário,l retornará o sinal de `+` , indicando positivo.  As configurações do nosso conector **Conditional - IF** ficaram assim na aba `Parametrização`:

::Image[]{src="https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/yF_SMac8e_N20Qh1vO_6x_image.png" size="50" width="424" height="674" position="center" showCaption="false"}

*Nota: Usamos&#x20;*[Fluid Expression Language](docId:0VQVPw6saqz2z1jGp8FwC) *para setar o&#x20;****valor 1&#x20;****atribuindo o valor do campo&#x20;****rh\_factor****&#x20;retornado no passo anterior*.



Já na aba `Propriedades` , informamos apenas um nome ao nosso passo, pois esse conector não ultiliza nenhuma tipo de conexão:

::Image[]{src="https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/KvhjRnukUQ_EkAMucP5GT_image.png" size="50" width="419" height="438" position="center" showCaption="false"}

### Configurando passos 'positive' e 'negative' (Telegram)

Esses passos irão enviar uma mensagem para o telegram informando se o fator do tipo sanguineo é positivo ou negativo de acordo com a condição do passo anterior. As configurações de ambos são idênticas pois usam a mesma conexão e enviam a mensagem para o mesmo canal. Abaixo temos as configurações do nosso conector Telegram na aba `Parametrização`para ambos os passos:

::Image[]{src="https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/k3kg_heP_dD4ty4BtKTM8_image.png" size="50" width="422" height="593" position="center" showCaption="false"}

Na aba `Propriedades` , informamos o nome do passo e a conexão criada com as credênciais necessárias do Telegram (Saiba mais em  [Criar Conexão](docId:1pCVN0mJbFKUjHMhj86K-)):

::Image[]{src="https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/bNW3LrVUNarsHU1-uhMHp_image.png" size="50" width="423" height="564" position="center" showCaption="false"}

### Conclusão

Após disparar o fluxo, podemos ver o resultado final nos logs que aparecerão no canvas, e clicando em **Detalhes**, teremos os dados da requisição e da resposta:

![](https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/9iO-u9ebD9JZEPoGUzPGf_image.png)

Mensagem recebida no Telegram:

![](https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/PfXSwvL_1kf1EsMDEZ3Ug_image.png)

