Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.pingoai.com.br/llms.txt

Use this file to discover all available pages before exploring further.

Visao geral

No ExclusiveDay, os canais se conectam por 3 caminhos principais:
  1. API oficial de mensagens (HTTP com token).
  2. Baileys (WhatsApp Web via event bus e handlers no channel).
  3. Meta (Facebook/Instagram) via webhook e handlers do channel.

1) API oficial (HTTP)

Base no backend:
  • Prefixo: /api/messages
  • Arquivo de rotas: Backend-1/src/routes/apiRoutes.ts
  • Registro no index: Backend-1/src/routes/index.ts com routes.use("/api/messages", apiRoutes)

Rotas principais

  • POST /api/messages/send
  • POST /api/messages/send-button
  • POST /api/messages/send-list
  • POST /api/messages/send/linkImage
  • POST /api/messages/checkNumber

Autenticacao

  • Middleware: tokenAuth
  • Envio com token/bearer conforme padrao interno da API.

Fluxo de envio (API oficial)

  1. Cliente externo chama POST /api/messages/send.
  2. Backend valida token e encaminha para ApiController.
  3. Mensagem entra no fluxo de envio interno.
  4. Backend publica comando/evento para o channel quando necessario.
  5. Channel executa envio no conector do canal (Baileys ou Meta).

Fluxo de recebimento

  • Recebimento depende do canal de origem (webhook/meta ou sessao/baileys).
  • Evento recebido passa por channel -> backend -> socket para frontend.

2) Baileys (WhatsApp Web)

Componentes principais

  • Handler de envio: channel-2/src/handlers/baileys/baileys-send-message.handler.ts
  • Comandos/eventos Baileys: channel-2/src/handlers/baileys/commands e events
  • Sessao WhatsApp: channel-2/src/baileys/*
  • Event bus do channel: channel-2/src/bus-rabbitmq/bus-rabbitmq.ts

Como envia

  1. Backend gera comando de envio no fluxo de mensagem.
  2. Command cai na fila do event bus RabbitMQ.
  3. BaileysSendMessageHandler processa:
    • valida whatsappId
    • valida sessao conectada
    • chama SendWhatsAppMessage
  4. Publica evento BaileysMessageSent.

Como recebe

  • Eventos recebidos do WhatsApp passam pelos listeners/handlers do channel.
  • O processamento cria/atualiza ticket/mensagem.
  • Backend publica no Socket.IO para atualizar o frontend em tempo real.

3) Facebook e Instagram (Meta)

No backend, o webhook da Meta entra pelas rotas:
  • GET /
  • POST /
  • GET /webhook
  • POST /webhook
Arquivo: Backend-1/src/routes/webHookRoutes.ts
Registro em routes/index.ts:
  • routes.use("/", webHookRoutes)
  • routes.use("/webhook", webHookRoutes)

Como envia (Meta)

  • Handler: channel-2/src/handlers/meta/meta-send-message.handler.ts
  • Fluxo:
    1. comando MetaSendMessage
    2. handler valida whatsappId e dados do ticket
    3. chama SendMetaMessage
    4. publica MetaMessageSent

Como recebe (Meta webhook)

  1. Meta chama webhook no backend (/ ou /webhook).
  2. WebHookController processa payload.
  3. Backend/channel executam roteamento da mensagem.
  4. Ticket e mensagens sao atualizados.
  5. Frontend recebe evento por socket.

4) WhatsApp Microservice webhook

Existe uma rota dedicada:
  • POST /api/whatsapp-microservice/webhook
  • Arquivo: Backend-1/src/routes/whatsappMicroserviceRoutes.ts
Uso: entrada de eventos de um microservico de WhatsApp externo.

5) Rotas de operacao relacionadas a conexao

Arquivo: Backend-1/src/routes/whatsappRoutes.ts
  • GET /whatsapp/
  • POST /whatsapp/
  • POST /facebook/
  • PUT /whatsapp/:whatsappId
  • DELETE /whatsapp/:whatsappId
  • POST /whatsapp-restart/
Essas rotas sao para gestao da conexao/canal, nao para webhook.

6) Exemplo pratico por tipo de integracao

Exemplo A - API oficial (envio texto)

  • Chamada: POST /api/messages/send
  • Resultado esperado: mensagem enfileirada/processada e refletida no ticket.

Exemplo B - Baileys (envio por sessao conectada)

  • Acao: enviar mensagem em ticket conectado no WhatsApp Web.
  • Resultado esperado: handler Baileys processa e publica evento de envio concluido.

Exemplo C - Facebook/Instagram (recebimento)

  • Acao: mensagem entra pelo webhook Meta.
  • Resultado esperado: ticket atualizado + evento em tempo real no frontend.

7) Checklist de validacao por canal

API oficial

  • token valido no endpoint
  • retorno HTTP coerente
  • mensagem persistida no ticket

Baileys

  • sessao conectada
  • envio concluido sem erro de sessao
  • evento em realtime no frontend

Facebook/Instagram

  • webhook respondendo 200
  • payload processado sem erro
  • criacao/atualizacao de ticket e mensagem