Skip to content

Módulo 2 - Comunicação Omnichannel & Chat (communication)

Módulo 2: Comunicação Omnichannel & Chat (communication)

Section titled “Módulo 2: Comunicação Omnichannel & Chat (communication)”

O módulo Communication centraliza a mensageria da empresa, unificando conversas internas de suporte com o canal externo de WhatsApp operado via Evolution API.


💬 1. Arquitetura do Chat e Tipos de Canais

Section titled “💬 1. Arquitetura do Chat e Tipos de Canais”
graph TD
    subgraph UI ["Interface do Chat (src/components/chat/)"]
        Inbox["ChatInbox.tsx (Painel Geral)"]
        Sidebar["ChatSidebar.tsx (Lista de Clientes & Grupos)"]
        MessageList["ServiceMessageList.tsx (Visualizador)"]
    end

    subgraph Channels ["Tipos de Canais no D1"]
        Direct["Channel DIRECT: Suporte Direto Cliente ↔ Gerente"]
        Job["Channel JOB: Grupo Operacional do Serviço (Cliente + Equipe)"]
    end

    subgraph Infrastructure ["Infraestrutura de Mensageria"]
        DO["Durable Objects (ChatChannelDO) - Realtime WebSockets"]
        EvoAPI["Evolution API - Integração WhatsApp Webhook"]
    end

    Inbox --> Direct
    Inbox --> Job
    Direct --> DO
    Job --> DO
    DO <--> EvoAPI

⏱️ 2. Controle de SLA de Resposta (ResponseSlaBadge)

Section titled “⏱️ 2. Controle de SLA de Resposta (ResponseSlaBadge)”

O sistema monitora o tempo decorrido desde a última mensagem enviada pelo cliente sem resposta do suporte:

  • 🟢 SLA Ok (< 15 min): Atendimento dentro do tempo ideal.
  • 🟡 Atendimento Prioritário (15 - 30 min): Sinalização amarela no painel.
  • 🔴 SLA Crítico (> 30 min): Destaque vermelho e notificação de alta prioridade na inbox do gerente.

🛡️ 3. Política Anti-Ban do WhatsApp (antiBanPolicy.ts)

Section titled “🛡️ 3. Política Anti-Ban do WhatsApp (antiBanPolicy.ts)”

Para evitar o bloqueio da conta comercial de WhatsApp pelo algoritmo de detecção de spam da Meta, todos os envios automatizados aplicam:

  1. Jitter de Delay: Atrasos aleatórios entre 2 e 7 segundos entre cada disparo de mensagem.
  2. Variações de Texto: Pequenas alterações de saudação (ex: “Olá”, “Oi”, “Tudo bem?”) para evitar mensagens 100% idênticas repetitivas.
  3. Limite de Fila (Rate Limiting): Máximo de 30 mensagens por minuto por instância.

  • Inbox Principal: src/pages/ChatInbox.tsx
  • Hook de Mensagens: src/features/communication/hooks/useMessages.ts
  • Hook de Canais: src/features/communication/hooks/useChannels.ts
  • Webhook de WhatsApp: functions/api/whatsapp/evolution-webhook.ts
  • Durable Object (WebSockets): chat-do/src/index.ts