> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brainchat.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Conectar via API

> Sincronize uma tabela com uma API externa (REST ou GraphQL): endpoint, resposta, modo, paginação e agendamento.

Conecte uma tabela a um sistema externo (CRM, ERP, sistema próprio) para mantê-la atualizada sem cópia manual.

Use quando os dados mudam com frequência, a fonte de verdade é outro sistema ou o agente de IA precisa ler dados sempre atuais. Para o **Pipefy**, há uma conexão pronta: veja [Sincronizar com Pipefy](https://docs.brainchat.app/insights/tabelas/pipefy.md).

## Passo a passo

**1. Comece a conexão**

Em **Insights → Tabelas**, clique em **Nova Tabela → Conectar via API → Configurar URL manualmente**.

**2. Endpoint**

Informe **Método** (`GET` ou `POST`), **URL da API**, **Parâmetros extras da URL** e, no POST, o **Body Template (JSON)**.

Para chaves de acesso, use a referência de uma chave guardada no **Cofre** (em **Developers → API → Suas Chaves**), nunca o valor direto. A própria tela mostra as variáveis aceitas na URL, nos parâmetros e no corpo (página, cursor, data do último sync).

**3. Resposta**

* **Caminho do array na resposta** (ex.: `data.items`). Vazio usa a maior lista de registros da resposta.
* **Campo de ID no objeto** (ex.: `id`, `sku`): precisa ser único e fixo; é ele que evita duplicar registros.
* **Campos aninhados viram colunas**: um por linha, no formato `coluna = caminho.no.registro`.

**4. Modo de sincronização**

| Estratégia | Comportamento |
| - | - |
| **Completo** | Puxa tudo e remove os registros que sumiram da fonte |
| **Append** | Insere e atualiza, mantendo os que sumiram |
| **Incremental** | Busca só os alterados, pelo **Campo de cursor temporal** (ex.: `updated_at`), com **Sobreposição de segurança (minutos)** (padrão 10) |

O **Incremental** economiza a maior parte das chamadas em fontes grandes.

**5. Paginação**

Em **Tipo**, escolha **Sem paginação (uma chamada)**, **Número de página**, **Offset (pular N registros)**, **Cursor** ou **Link da próxima página**, e preencha os parâmetros pedidos (itens por página, nome do parâmetro etc.). Em **Como saber que acabou**, use **Campo "tem mais"**, **Campo "tem próxima"**, **Total de páginas** ou **Total de registros**. **Máximo de páginas por rodada** limita cada execução.

**6. Agendamento**

**Frequência**: **Apenas manual**, **A cada 15 minutos**, **A cada 30 minutos**, **A cada 1 hora**, **A cada 6 horas**, **Diariamente** (com **Horário**) ou **Semanalmente** (com **Dia da semana**). **Limite de execuções (opcional)**.

**7. Salve**

Clique em **Salvar configuração**. As colunas são detectadas automaticamente na primeira sincronização.

## Escrever de volta (opcional)

Em **Escrita (mutations)**, configure as chamadas de **Criar**, **Atualizar** e **Excluir** para que alterações feitas no Brainchat (na tabela, no Studio ou no Flow) sejam enviadas ao sistema de origem.

## Acompanhar e manter

* **Sincronizar agora** roda na hora. O status e o último erro ficam em **Gerenciar tabela → Sincronização**.
* Se uma carga grande parar no meio, a próxima rodada continua de onde parou.
* **Descartar progresso e recomeçar do zero** reinicia a paginação.
* **Re-sincronizar tudo (full reload)**, em **Avançado**, puxa todos os registros de novo.

> [!TIP]
>
> Comece com **Máximo de páginas por rodada** baixo para testar, e use **Incremental** depois da primeira carga completa.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.