> ## 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.

# Logs de Webhook

> Monitore e depure todos os disparos de webhook: status, payload, tentativas e erros.

# Logs de Webhook

A seção **Logs** registra todas as chamadas de webhook realizadas pela instância — tanto recebimentos (eventos do WhatsApp enviados ao seu servidor) quanto disparos do Agente de IA, formulários e ações automáticas.

***

## Acessar os Logs

Vá em **Developers → Webhooks → Logs**.

***

## Informações por Registro

| Campo         | Descrição                                                       |
| ------------- | --------------------------------------------------------------- |
| **URL**       | Endpoint que recebeu ou enviou a chamada                        |
| **Origem**    | Fonte do disparo: agente, ação, formulário ou sistema           |
| **Método**    | HTTP method usado (GET, POST, etc.)                             |
| **Status**    | Código HTTP de resposta (200, 400, 500, etc.)                   |
| **Tentativa** | Número da tentativa (#1, #2, #3)                                |
| **Horário**   | Tempo relativo (ex: "há 5 minutos")                             |
| **Tipo**      | Categoria: `receive`, `send`, `agent_action`, `form_submission` |

### Cores do Status

| Cor      | Significado              |
| -------- | ------------------------ |
| Verde    | Sucesso (2xx)            |
| Vermelho | Erro (4xx ou 5xx)        |
| Cinza    | Pendente ou sem resposta |

***

## Filtros

| Filtro      | Opções                                    |
| ----------- | ----------------------------------------- |
| **Status**  | Sucesso, erro, pendente                   |
| **Período** | Última hora, últimas 24h, última semana   |
| **Origem**  | Por agente, ação específica ou formulário |

***

## Detalhes do Log

Clique em qualquer registro para abrir o painel lateral com:

### Metadados

* URL completa
* Método HTTP
* Número da tentativa
* Data e hora exata

### Payload (Request Body)

Corpo completo da requisição enviada, formatado como JSON.

```json theme={null}
{
  "phone": "5511999999999",
  "contact_name": "João Silva",
  "nome": "João",
  "email": "joao@empresa.com",
  "_conversation_id": "abc-123",
  "_agent_id": "def-456"
}
```

### Resposta (Response Body)

Corpo da resposta recebida do servidor externo.

### Mensagem de erro

Se a chamada falhou, a mensagem de erro é exibida aqui para facilitar a depuração.

***

## Tipos de Webhook

| Tipo                 | Descrição                                                    |
| -------------------- | ------------------------------------------------------------ |
| **receive**          | Evento do WhatsApp recebido e encaminhado ao seu servidor    |
| **send**             | Confirmação de mensagem enviada                              |
| **agent\_action**    | Ação disparada pelo Agente de IA (webhook, HTTP request)     |
| **form\_submission** | Submissão de formulário encaminhada ao webhook do formulário |

***

## Política de Retentativas

Quando uma chamada falha (status ≥ 400 ou timeout > 10s), o Brainchat realiza até 3 tentativas automáticas:

| Tentativa | Intervalo        |
| --------- | ---------------- |
| **#1**    | Imediata         |
| **#2**    | Após 30 segundos |
| **#3**    | Após 2 minutos   |

Após 3 falhas consecutivas, o evento é descartado. Os logs registram cada tentativa individualmente.

***

## Depurando Erros Comuns

<AccordionGroup>
  <Accordion title="Status 404 — URL não encontrada">
    Verifique se a URL do webhook está correta e se o endpoint existe no seu servidor. Acesse **Developers → Webhooks → Endpoints** e confirme a URL cadastrada.
  </Accordion>

  <Accordion title="Status 401/403 — Não autorizado">
    Seu servidor está rejeitando a requisição por falta de autenticação. Verifique se o header de autenticação está configurado corretamente nas configurações do endpoint.
  </Accordion>

  <Accordion title="Timeout — Sem resposta">
    Seu servidor demorou mais de 10 segundos para responder. Responda com `200 OK` imediatamente e processe a lógica de forma assíncrona (fila, background job).
  </Accordion>

  <Accordion title="Status 500 — Erro interno">
    Erro no seu servidor. Verifique os logs da sua aplicação para entender a causa. O payload recebido está disponível nos detalhes do log para reproduzir o erro.
  </Accordion>
</AccordionGroup>

<Tip>
  Use os logs para validar o formato do payload antes de integrar com sistemas externos. O painel mostra o JSON exato que foi enviado em cada chamada.
</Tip>
