Cockpit cheio? Tem 3 jeitos de filtrar: tabs Ativas/Encerradas, busca por texto e filtro por tags.
Tabs Ativas / Encerradas
Logo no topo da lista lateral, dois botões de tab:
- Ativas (N) — conversas em andamento, é o que você usa no dia-a-dia
- Encerradas (N) — conversas que terminaram (cron 24h ou bot via tool encerrou). Inclui também o histórico WhatsApp anterior importado quando o cliente é totalmente novo na Kontato (ver Histórico anterior do WhatsApp)
A contagem é dinâmica: muda em tempo real conforme conversas mudam de estado.
Conversas arquivadas não aparecem
Conversas com mais de 30 dias encerradas viram "arquivadas" e somem da UI por proteção de dados. Não há tab pra elas. Se precisa consultar algo desse passado, fale com o suporte.
Busca por texto
Acima da lista lateral, um input com lupa. Funciona em 4 dimensões:
- Nome do cliente — substring case-insensitive (ex: "mar" encontra "Maria", "Mariana", "Marcos")
- Telefone — compara apenas dígitos (você pode digitar
99928, vai achar mesmo se telefone está salvo como(11) 99928-5362) - Última mensagem inline — preview que aparece no card
- Histórico completo de mensagens — todas as mensagens já trocadas (com
ilike %termo%)
Mínimo 3 caracteres para busca em histórico
Pra não ficar pesado em conversas com 1000+ mensagens, a busca em histórico só dispara com 3+ caracteres. Busca em nome/telefone funciona desde 1 caractere.
Debounce 350ms — você digita, espera milissegundos, busca dispara. Resultados aparecem em tempo real conforme você digita.
Filtro por tags
Botão de filtro (ícone de funil) no canto superior direito da lista lateral. Click abre um popover com:
- Lista de todas tags do negócio com checkboxes
- Lógica OR — se você marca "VIP" e "Inadimplente", a lista mostra clientes com qualquer uma das duas tags (não os dois ao mesmo tempo)
- Badge de contagem no botão Filter mostra quantas tags estão ativas
Limpar filtros
Quando você está com busca ou tags ativas, aparece um botão Limpar filtros logo abaixo da busca. Click reseta tudo, lista volta ao default (todas conversas).
Realtime no filtro
Se o cliente recebe uma tag nova enquanto você está com filtro ativo, a lista atualiza automaticamente:
- Cliente que ganhou a tag e estava fora aparece
- Cliente que perdeu a tag desaparece (sem reload)
Isso vem do realtime nas tabelas cliente_tags e tags (Supabase postgres_changes).
Sortear da lista
A lista sempre ordena por última mensagem mais recente primeiro (ultima_msg_em DESC NULLS LAST). Não há outro modo de ordenação por enquanto.