Fila de atendimento no WhatsApp: como parei de perder conversa
Estados de conversa, roteamento automático e distribuição circular. O desenho de fila que impede mensagem sem dono, contado por quem já teve fila sem dono.

Tinha um cliente nosso, o Marcelo, que mandou mensagem numa terça às dez da manhã. Respondemos na quinta. Ele já tinha comprado no concorrente. Quando fui olhar o que aconteceu, descobri que a mensagem dele caiu numa lista que ninguém abria, porque cada pessoa do time olhava só as conversas que já eram suas. Foi ali que a fila de atendimento deixou de ser assunto teórico pra mim.
No começo a gente resolvia isso gritando. Alguém falava alto "chegou mensagem do Marcelo, quem pega?" e alguém pegava. Funciona com três pessoas numa sala. Com seis pessoas, sendo duas em casa, não funciona mais.
No live chat, a fila é explícita. As conversas aparecem separadas em conversas do bot, abertas, não atribuídas, meus chats e concluídas. Cada uma dessas caixas significa uma coisa e pede uma ação diferente. Antes de continuar, garanta que os departamentos estejam estruturados, porque a fila se apoia neles.
Os estados e o que cada um cobra de você
Aprendi do jeito difícil que estado ambíguo produz fila ambígua. Se duas pessoas do time entendem "concluída" de forma diferente, o número de conversas fechadas não quer dizer nada.
| Estado | O que significa | O que fazer |
|---|---|---|
| Conversas do bot | Um fluxo automatizado ainda está conduzindo | Só monitorar, e entrar se travar |
| Não atribuídas | Chegou e ninguém assumiu | Roteamento automático ou alguém puxa na hora |
| Abertas | Em atendimento ativo | Responder dentro do tempo combinado |
| Meus chats | Estão com quem está logado | Levar até o desfecho ou transferir |
| Concluídas | Tem desfecho registrado | Auditar, e reabrir só com critério |
Como o roteamento da fila de atendimento distribui
O roteamento automático pega as conversas não atribuídas e encaminha conforme a configuração de departamento e atendente. A distribuição round-robin existe para resolver um vício bem humano: sem ela, quem clica mais rápido pega tudo, e no fim do mês parece que essa pessoa é três vezes mais produtiva que o resto. Não é. Ela só é mais rápida no mouse.
Tem também um detalhe silencioso que eu só notei quando ele me salvou: existe bloqueio transacional contra conversas duplicadas. Duas pessoas clicando quase juntas na mesma conversa não criam duas salas paralelas. Antes disso, já aconteceu de dois atendentes darem preços diferentes para o mesmo cliente no mesmo minuto. Constrangedor.
Como eu montaria a fila hoje, em seis passos
- Liste o que chega de verdadeAbra o histórico e anote os assuntos reais. Não invente categoria que só existe na cabeça da diretoria.
- Crie os departamentosUm por tipo de demanda, com dono claro. Evite nome genérico tipo geral, porque tudo cai lá e nada sai.
- Defina quem respondeAloque atendentes por departamento e combine quem cobre nas férias e nas faltas.
- Ligue o roteamentoAtive o roteamento automático de fila e escolha se a distribuição é por departamento ou por atendente.
- Combine o encerramentoEscreva o que caracteriza conversa concluída e qual tag entra antes de fechar. Escreva mesmo, num documento.
- Olhe a produtividadeUse o painel de produtividade de atendentes para comparar volume, tempo e desfecho por pessoa.
Transferir sem fazer o cliente repetir tudo
Fila boa não é fila sem transferência. É fila com transferência limpa. Quando a conversa passa para outro atendente ou departamento, o histórico vai junto, e o agrupamento por telefone normalizado garante que a pessoa veja o passado do cliente, não só as últimas cinco mensagens.
O departamento também é o destino quando um agente de IA não dá conta. Esse caminho de escape precisa existir antes de a automação entrar no ar. Falo mais disso em transferência de conversa e SLA.
Quando o volume cresce e a tela fica lenta
Com cinquenta conversas, qualquer coisa funciona. Com cinco mil, não. A listagem usa paginação, carregamento incremental e consultas em lote para evitar o padrão N+1, e a lista é atualizada por chave em vez de redesenhar tudo a cada ciclo. O polling é adaptativo conforme a atividade da conversa, então sala parada consome menos.
Existe ainda um script SQL com índices propostos para o live chat. Ele precisa ser aplicado manualmente e homologado antes de você esperar qualquer ganho. Eu passei duas semanas culpando a ferramenta pela lentidão antes de descobrir que ninguém tinha rodado esse script.
- Paginação e carregamento incremental na listagem de conversas.
- Consultas em lote para não fazer uma query por linha da lista.
- Atualização por chave, sem redesenhar a tela inteira.
- Polling adaptativo conforme a atividade real da sala.
- Índices de banco aplicados na mão e homologados antes de medir ganho.
Os erros que eu já cometi organizando fila
- Criar departamento demais e diluir responsabilidade até ninguém assumir nada.
- Deixar a caixa de não atribuídas crescer porque o roteamento nunca foi ligado.
- Encerrar conversa sem tag e depois não conseguir explicar nada com dados.
- Transferir sem escrever o motivo, obrigando o colega a reler quarenta mensagens.
- Medir só volume de mensagem e ignorar desfecho.
- Adiar os índices de banco e reclamar da lentidão em reunião.
Fila não é lista de espera. É um combinado interno sobre quem responde o quê, em quanto tempo e com qual critério de fechamento.
Equipe Webajato
Depois da fila
Quando a fila estabiliza, o próximo ganho costuma vir da linguagem. Cadastre as respostas rápidas que o time mais repete e depois avalie o que pode virar fluxo automatizado ou agente de IA. Automação sobre fila bagunçada só acelera a bagunça. Aprendi isso gastando dinheiro.