> For the complete documentation index, see [llms.txt](https://luminvs.gitbook.io/consulta-cnpj/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://luminvs.gitbook.io/consulta-cnpj/consulta-automatica-de-cnpj/como-funciona-a-consulta.md).

# Como funciona a Consulta

Fluxo da Consulta Automatizada no Google Sheet

<figure><img src="https://2726525775-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB2pXp3Bc97BUitlL7rQp%2Fuploads%2FrPEfmQ8uJySZ75Xji76e%2Fimage.png?alt=media&amp;token=b41b3d85-6406-4589-a7b5-24b474b68215" alt=""><figcaption></figcaption></figure>

### Fluxo do Processo

O diagrama acima ilustra o **fluxo do processo** do programa **Consulta CNPJ**, desde o início até o término das consultas, detalhando as etapas de execução.

#### Etapas do Fluxo

1. **Início do Processo**:
   * O processo é inicializado, iniciando todas as configurações necessárias.
2. **Preparação para Consulta**:
   * Organiza os dados de entrada, preparando os CNPJs que serão processados.
3. **Inicialização de Agentes Virtuais**:
   * Os agentes virtuais são iniciados para realizar consultas paralelas, garantindo maior eficiência.
4. **Distribuição de CNPJs para Agentes**:
   * Divide os CNPJs em lotes e distribui entre os agentes virtuais.
5. **Processar Lote de CNPJs**:
   * Cada lote de CNPJs é processado sequencialmente em **blocos de 10 CNPJs**.
6. **Verificação de CNPJs**:
   * O sistema verifica se cada CNPJ já foi processado anteriormente.
   * **Se Sim**: Pula a consulta e segue para o próximo CNPJ.
   * **Se Não**: Continua o fluxo para consultar a API.
7. **Consulta API**:
   * O agente realiza a consulta diretamente na API.
8. **Loop de Tentativas**:
   * Caso ocorra falha na consulta, o sistema realiza até **5 tentativas** para obter a resposta correta.
9. **Verificar Resposta da API**:
   * Verifica a resposta retornada pela API para confirmar sua validade.
10. **Tratamento de Resposta e Armazenamento**:
    * Os dados são processados e armazenados na planilha.
    * O status da consulta é atualizado, e a API utilizada é registrada.
11. **Fim do Loop**:
    * O sistema verifica se todos os CNPJs foram processados no bloco atual:
      * **Se Sim**: Finaliza o processo.
      * **Se Não**: Prossegue para o próximo CNPJ.
12. **Fim do Processo**:
    * Quando todos os CNPJs foram consultados e armazenados, o sistema encerra o processamento.

***

#### Destaques do Fluxo

* **Processamento em Blocos**: O sistema otimiza consultas em **blocos de 10 CNPJs**, garantindo um equilíbrio entre desempenho e limites de API.
* **Loop de Tentativas**: Em caso de falha, até 5 tentativas são realizadas para garantir a completude dos dados.
* **Registro Detalhado**: A API utilizada e o status da consulta são atualizados diretamente na planilha.

Este fluxo robusto garante **eficiência**, **confiabilidade** e a máxima utilização dos recursos disponíveis, tornando o **Consulta CNPJ** uma solução ideal para consultas massivas.
