Notificações
O ConectAI usa três sinais combinados para te avisar quando algo novo acontece: badges contábeis, popups do browser e som.
Badges na sidebar
Atualizam a cada 8 segundos (± 2s de jitter) via polling em /api/nav/badges.
Hrefs com badge:
- Chat Interno (
/comunicacao/chat) — mensagens não lidas no chat do time - Atendimento / Inbox (
/ia/analista) — conversas pendentes de humano
Popup do browser + som
Quando o badge sobe (alguém te mandou algo novo), o ConectAI dispara:
- Popup do browser (Notification API)
- Som (sino curto)
Exceção: se você já está na tela do badge (ex.: olhando a Inbox), o ConectAI passa silent:true — sem som — mas o badge ainda atualiza.
Pedido de permissão
Na primeira vez que você clica em qualquer coisa após logar, o browser pergunta:
“app.conectaai.io quer mostrar notificações.”
Aceite. É o que faz o som e popup funcionarem.
Se você bloqueou por engano, vá nas configurações do browser → Site Settings → Notifications → permitir app.conectaai.io.
Otimização anti-spam
O ConectAI tem throttling: se 10 mensagens chegam em 5 segundos, toca o som uma única vez. O badge mostra a contagem real (ex.: “10 não lidas”).
Re-fetch ao voltar
Quando você muda de tab e volta:
- ConectAI faz re-fetch imediato do contador (visibilitychange + focus)
- Não precisa esperar os 8s do polling
Preferências hoje
No MVP atual, não há tela para configurar notificações. Tudo é hardcoded:
- Não dá pra silenciar canais individualmente
- Não dá pra mudar o som
- Não dá pra desligar popup mantendo badge
- Não há notificação por e-mail nem SMS
A única configuração disponível é a permissão do browser (aceitar ou bloquear no nível do browser).
Roadmap
- Tela de preferências (silenciar por canal, escolher som)
- Notificação por e-mail quando offline há mais de X minutos
- Notificação push mobile (PWA)
- Slack / Discord webhook para alertas
Tipos de evento
Hoje gerão notificação:
| Evento | Som? | Popup? | Badge? |
|---|---|---|---|
| Mensagem nova no Chat Interno | Sim | Sim | |
| Conversa nova na Inbox | Sim | Sim | |
| Conversa escalada da IA | Sim | Sim | |
| Canal entrou em erro | — | — | (só na lista de canais) |
| Plano atingiu limite | — | — | (só na tela /config/plano) |
Bypass do som (silenciar momentâneo)
Para silenciar temporariamente sem desativar a permissão:
- macOS: ⌘ + Mute / configurações de “Não perturbe”
- Windows: Focus Assist
- No browser: muta o tab (clique direito no tab → Mute site)
O badge continua atualizando — você só silencia o som.