> For the complete documentation index, see [llms.txt](https://digisac.gitbook.io/manual-digisac-2-0/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://digisac.gitbook.io/manual-digisac-2-0/mais-opcoes/robos/fluxograma/como-configurar-blocos-de-requisicao-http.md).

# Como configurar blocos de requisição http

O bloco **Requisição HTTP** permite que o robô se conecte diretamente a APIs externas para enviar ou buscar informações durante o fluxo. Com ele, o bot consegue integrar-se a sistemas internos e externos e qualquer serviço que disponibilize uma API.

### O que é possível fazer com blocos de requisição http:

* Realizar chamadas HTTP nos seguintes métodos:
  * **GET** - pedir informações;
  * **POST** - enviar novo item;
  * **PUT** - substituir ou atualizar tudo;
  * **DELETE** - remover item.&#x20;
* Utilizar **variáveis do bot** em qualquer campo da requisição (URL, headers, parâmetros ou body).
* Transformar a **resposta da API** em novas variáveis para uso em blocos seguintes.
* Criar condições baseadas:
  * no **status da resposta** (ex.: 200, 400, 404 etc.)
  * no **conteúdo retornado** (ex.: campos específicos do JSON)
* Selecionar quantidade de tentativas em caso de falha e tempo de timeout.

### Como configurar blocos de requisição http

1. No Menu Principal, acesse **Mais opções** > **Robôs**.

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2F6dTh6sUIjPF0GDowmAEK%2Fimage.png?alt=media&amp;token=5b4f9918-a54f-4db8-b44e-ebfc9835d056" alt=""><figcaption></figcaption></figure>

2. Crie um novo Robô em **+ Adicionar** > **Fluxograma** ou utilize um robô fluxograma já existente, clicando nos **três pontinhos (⋮)** > **Editar**&#x20;
3. Dentro do construtor, no canto esquerdo, vá até a seção **Automações** e selecione o bloco **Enviar Requisição HTTP** (logo abaixo de “Enviar webhook”).

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2FQMGarsYAx9tQYe60ZCrT%2Fimage.png?alt=media&amp;token=a59d6cf8-18d9-4420-bac6-7d7bac510160" alt=""><figcaption></figcaption></figure>

4. A primeira etapa da configuração do bloco é constituída em três áreas principais:

**Configurações básicas:**

* **Nome da requisição** - Identifica essa requisição dentro do robô (especialmente útil quando você tem várias chamadas diferentes);
* **URL do endpoint** - Endereço da API que será acessada.
  * A URL não é validada no momento da configuração.  Se estiver errada, a requisição será feita e retornará erro, visível no **Histórico de Erros** do robô.
  * **Dica:** Em requisições aninhadas, você pode utilizar uma url que foi retornada anteriormente por uma requisição já realizada. Isso também funciona com outros campos do robô.
* **Método HTTP** - Selecione o método da requisição:
  * **GET** – consultar informações
  * **POST** – enviar informações
  * **PUT** – atualizar
  * **DELETE** – remover

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2FNrln4Vah7POTcqy1I2Q4%2Fimage.png?alt=media&amp;token=40c56577-1558-442a-8101-24138cb56ab2" alt="" width="254"><figcaption></figcaption></figure>

**Configurações internas:**

* **Cabeçalhos cadastrados (Headers)** - É opcional, permite cadastrar diversos cabeçalhos, além de editar ou apagar um cabeçalho já adicionado anteriormente. Para cadastrar, preencha:
  * Chave do cabeçalho;
  * Valor do cabeçalho;
  * Ative a chave **Ocultar dados sensíveis** para ocultar o valor do cabeçalho na tela. Essa opção pode ser utilizada para proteger informações como **senhas e tokens**. Quando marcada, o valor do cabeçalho será exibido de forma **ofuscada** na tabela, mas continuará sendo enviado normalmente pela requisição.
  * Se quiser configurar mais de um cabeçalho, clique em **Adicionar cabeçalho** e repita o processo quantas vezes seja necessário.

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2Fecc23mghG4UU9UGzhcNA%2Fimage.png?alt=media&amp;token=c0680a05-3707-4b8c-8a57-49bf0c722b39" alt="" width="247"><figcaption></figcaption></figure>

{% hint style="warning" %}
**IMPORTANTE:** Para alterar o valor de um cabeçalho marcado como sensível, é necessário **excluí-lo e cadastrá-lo novamente**, pois o valor atual não será exibido para edição.

Os cabeçalhos cadastrados anteriormente continuam visíveis normalmente e podem ser marcados como sensíveis posteriormente.

A proteção se aplica apenas aos **headers** da requisição. Valores sensíveis inseridos no **body** não são ocultados.
{% endhint %}

* **Corpo da requisição (Body)** - Formatos aceitos:
  * JSON - Digite ou cole o JSON no campo indicado;
  * XML - Digite ou cole o XML no campo indicado;
  * Formulário - Preencha:
    * Nome;
    * Valor;
    * Clique em **Adicionar campo**;
    * Repita o processo quantas vezes seja necessário.
  * Sem corpo.

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2FFzSpl9K1Lb1qthL7yQb6%2Fimage.png?alt=media&amp;token=70af7336-6ec8-47ab-96cb-374ab8a9a588" alt=""><figcaption></figcaption></figure>

* **Requisição assíncrona (opcional)** - Por padrão, vem desativada (requisição síncrona). A diferença será explicada em diante. Para ativá-la, clique na chave ao lado.&#x20;

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2F9NrIMOryrFtTo1LMNWwb%2Fimage.png?alt=media&amp;token=fb517549-ac06-4035-b488-c44ccc0f0495" alt=""><figcaption></figcaption></figure>

* **Incluir dados da Digisac no payload:** Ao ativá-la, serão incluídos automaticamente no payload da requisição os IDs das entidades da Digisac relacionadas ao atendimento, como **bot**, **contato**, **conexão**, **conta**, **chamado** e **mensagem**, agrupados no campo **`digisacData`**.

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2F65xNk8eaTfPAoxETcbmh%2Fimage.png?alt=media&amp;token=6f10c884-f22b-41d5-b3dd-ba6691d42aca" alt="" width="367"><figcaption></figcaption></figure>

{% hint style="warning" %}
Essa opção está disponível apenas em **requisições síncronas**, ou seja, quando a chave **Requisição assíncrona** estiver desativada, e em requisições com **corpo JSON** ou **vazio**.
{% endhint %}

**Tentativas e timeout:**

* **Número de tentativas** - Quantas vezes o bloco deve tentar novamente em caso de falha. Escolha entre 1 a 5 tentativas.
* **Tempo do timeout** - Tempo máximo de espera pela resposta da API. Escolha entre 30 a 120 segundos.

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2FhesCTd76eHUbqzROo2c0%2Fimage.png?alt=media&amp;token=a8da3e70-8ec3-4eff-9883-94220af87513" alt="" width="321"><figcaption></figcaption></figure>

{% hint style="warning" %}
**IMPORTANTE:** Para configurar corretamente, é fundamental que você conheça a API que está consumindo (métodos, URLs, dados esperados, formato de resposta etc.).
{% endhint %}

5. Após preencher todas as informações da etapa 1, clique em **Continuar**.

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2Fm43WnRLsJhYy9edVnWXj%2Fimage.png?alt=media&amp;token=57ad7d45-fe92-483d-8dfc-c942a1b63ecf" alt="" width="371"><figcaption></figcaption></figure>

6. Na segunda etapa do bloco - **configurações de resposta** - você poderá **mapear os dados retornados pela API** e salvá-los em variáveis para usar em qualquer parte do fluxo.&#x20;

* Para cadastrá-las, preencha:
  * Chave na resposta - É o **nome exato do dado** que vem na resposta da sua requisição. Ou seja, é o “caminho” que o robô deve seguir dentro do método para encontrar a informação que você quer guardar;
  * Nome da variável - É o **nome que você quer dar** para armazenar esse dado dentro do robô. Depois disso, poderá usar essa variável em outros blocos;
  * Clique **Adicionar variável**;
  * Repita o processo quantas vezes seja necessário.

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2FCaGMB7pUANaHv9IIypGS%2Fimage.png?alt=media&amp;token=e5876780-e2bf-4509-a882-3d9af449efeb" alt="" width="301"><figcaption></figcaption></figure>

* As variáveis podem ser usadas em:
  * blocos de mensagem
  * blocos condicionais
  * novos blocos de requisição
  * verificações dentro do fluxo

{% hint style="info" %}
**Atenção:**

* Variáveis **não** podem ter nomes duplicados.
* É necessário usá-las **após** o bloco onde foram criadas.
* O “root” da resposta **SEMPRE** é `response`.
  {% endhint %}

7. Após cadastrar todas variáveis, clique em **Aplicar** e o bloco "Enviar requisição HTTP" será criado com sucesso.&#x20;

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2FqT60kJSAIcwwjazIhENX%2Fimage.png?alt=media&amp;token=e2557448-0b34-4b03-b4f8-d754ed8e7dd0" alt="" width="370"><figcaption></figcaption></figure>

***

### &#x20;Como utilizar condicionais ligadas ao bloco de requisição http

Você pode conectar **blocos de condição** após blocos de requisição para poder validar informações retornadas nessas requisições. Para isso, selecione o bloco **"Configurar condição"** e arraste-o para o ambiente do robô, conectando-o após o bloco "Enviar requisição HTTP".

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2F7zD6KjD3ayIYYOidDDpI%2Fimage.png?alt=media&amp;token=3ebc1441-cc74-4c6e-a7f1-d86a96abc48e" alt=""><figcaption></figcaption></figure>

É possível validar:

* **O código de status** da requisição: selecione "**Código de status**" em Variável, nas configurações do bloco de condições. Exemplos de uso:
  * Se status = 200 → seguir fluxo de sucesso.
  * Se status = 404 → informar que o dado não foi encontrado.
  * Se status = 500 → tentar outra ação ou encerrar.

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2FCTlrKf4nPsET0QoS6BpH%2Fimage.png?alt=media&amp;token=5902ffa6-16f0-47d6-9c92-52a4d35f7cf2" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2FgiriNWMgmk1lXsrGxBOJ%2Fimage.png?alt=media&amp;token=c0695b38-aef3-427d-b64c-92fdf55adf4b" alt=""><figcaption></figcaption></figure>

* **Valores de variáveis:** selecione "**Propriedades da resposta**" em Variável, nas configurações do bloco de condições. Exemplo:
  * Se `estado = "SP"` → enviar mensagem específica.
  * Se `cep` estiver vazio → pedir outro dado.

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2Fk1UuqbIv4UdI70E4Wp3L%2Fimage.png?alt=media&amp;token=854a17b3-552a-4ef9-8ce3-1b0dae62f89e" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2FngrHij33iJkiG3KzovKz%2Fimage.png?alt=media&amp;token=775fb585-9c6d-4a3f-81f6-d5063c47020a" alt=""><figcaption></figcaption></figure>

***

### Requisição Síncrona x Assíncrona

#### **Síncrona (padrão)**

* O robô **espera a resposta** da API.
* O fluxo só continua após receber o retorno.
* Ideal para consultas rápidas (CEP, CPF, status de pedido etc.).
* Se a API demorar, pode gerar timeout.

#### **Assíncrona**

* O robô **não espera** a API responder.
* Fica com status `PENDING` até que o callback seja recebido com a resposta.
* A resposta chega depois via **callback**.
* Ideal para APIs lentas, processamentos complexos ou quando a resposta não é crítica para o fluxo imediato.

{% hint style="info" %}
&#x20;**Importante:**&#x20;

* Requisições pendentes por mais de **24h** são encerradas automaticamente por timeout.&#x20;
* O callback precisa ser autenticado via token.
  {% endhint %}

***

### &#x20;Histórico de Erros

Se algo der errado no robô, você poderá visualizar no histórico de erros:

1. No Menu Principal, acesse **Mais Opções** > **Robô**;
2. Clique nos **3 pontinhos** ao lado do robô que deseja visualizar e **Histórico de erros.**

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2FTNVaEpkrCkLDgkfg8SCG%2Fimage.png?alt=media&amp;token=ec703c1e-3977-439a-90d5-e1c99823cd27" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2FoKZuiNQ5ZfxvKmbfuo8g%2Fimage.png?alt=media&amp;token=7d077afa-5ed4-41ee-a8ec-27ed3f9dd6f4" alt=""><figcaption></figcaption></figure>

Ali você verá:

* requisições com falha
* detalhes do erro
* timestamp
* contexto da execução

Além disso, dentro do **chamado**, você pode acompanhar em tempo real as requisições sendo executadas e erros gerados.

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2F5H4crjEHIZq5S30IO5g9%2Fimage.png?alt=media&amp;token=8827af9d-1dff-4a8d-8bdf-2c5ae5e9b34b" alt=""><figcaption></figcaption></figure>

***

### Exemplos práticos de ações realizáveis com Bloco HTTP

<figure><img src="https://1814036563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfJsMJqevSfkQd5v__H%2Fuploads%2FYZLiiEF8SEmaNwalp1Tb%2Fimage.png?alt=media&amp;token=a79d8d92-e6e3-4e83-8302-2b9e1a48380f" alt=""><figcaption></figcaption></figure>
