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:
- Jitter de Delay: Atrasos aleatórios entre 2 e 7 segundos entre cada disparo de mensagem.
- Variações de Texto: Pequenas alterações de saudação (ex: “Olá”, “Oi”, “Tudo bem?”) para evitar mensagens 100% idênticas repetitivas.
- Limite de Fila (Rate Limiting): Máximo de 30 mensagens por minuto por instância.
🛠️ 4. Arquivos Principais do Módulo
Section titled “🛠️ 4. Arquivos Principais do Módulo”- 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