Pular para conteúdo

Arquitetura

Diagrama Geral

                    Internet
                       |
               Cloudflare Tunnel
                       |
            +----------+----------+
            |                     |
     marie.exemple.com    cmos_wpp.exemple.com
            |                     |
    +-------+-------+     +------+------+
    |               |     |             |
  Frontend       Backend  WhatsApp API
  (Next.js)    (Node.js)  (Go-Whatsmeow)
    :3001        :3001        :3000
                   |             |
                   |        webhook_whatsapp
                   |          (Node.js)
                   |             |
                   +------+------+
                          |
                      RabbitMQ
                    (fila: events)
                          |
                       Backend
                    (consumer)
                          |
              +-----------+-----------+
              |           |           |
           MongoDB    RD Station   Google
           (Atlas)    (CRM+Mkt)   (Calendar,
                                   GCS, Gemini)

Componentes

Componente Tecnologia Funcao
Backend Node.js + Express + TypeScript API, agents IA, CRM sync, agendamento, follow-up, remarketing
Frontend Next.js + TypeScript Gestao de agents, calendarios, eventos
WhatsApp API Go-Whatsmeow Conexao com WhatsApp Web
Webhook Bridge Node.js Ponte entre WhatsApp API e RabbitMQ
Fila RabbitMQ (quorum) Mensageria assincrona
Banco de Dados MongoDB Atlas Persistencia
IA Google Gemini (via LangChain) Processamento de linguagem natural
CRM RD Station (Marketing + CRM v1) Gestao de leads e deals
Storage Google Cloud Storage Arquivos RAG
Calendario Google Calendar API Agendamento de reunioes

Principios

  • CRM como fonte de verdade para deal stages — o agent nao move stages diretamente, usa tools semanticas
  • 3 pontos de sync CRM: consumer (passivo), agent tools (ativo), timeout job (temporal)
  • Skills como capacidades internas — injetadas no prompt, nao sao tools
  • Mensageria assincrona — todas as mensagens passam pelo RabbitMQ antes de chegar ao agent