Guia para atendimento no WhatsApp
Como não perder clientes por demora na resposta do WhatsApp?
Reduza a demora com uma caixa de entrada única, debounce para juntar mensagens, regras de elegibilidade e takeover humano; a Bia organiza e regista a conversa, mas não promete resposta instantânea nem disponibilidade contínua do prestador.
Uma cliente que pergunta o preço, a hora ou a condição de um tratamento não vê a fila, o prestador ou o painel da clínica. Percebe apenas se alguém entendeu a mensagem e respondeu com segurança. A Bia reúne a conversa real do WhatsApp, aguarda uma sequência curta de mensagens antes de chamar a IA, confirma se a resposta ainda pode ser enviada e deixa a equipa assumir quando a situação exige julgamento. Este guia transforma estes comportamentos existentes numa rotina de atendimento. Não inventa SLA, não garante que o prestador estará disponível e não transforma demora num número de conversão sem dados.
- Uma caixa de entrada para conversas, ficheiros, contacto e estado de entrega
- Debounce por conversa para juntar mensagens antes da resposta da IA
- Fila Redis/BullMQ ou fallback em memória quando o Redis não está disponível
- Gates de conversa aberta, opt-out, bloqueio e modo de IA antes do envio
- Takeover humano auditado e devolução explícita da conversa à IA
- Estados de envio e falha visíveis sem prometer resposta instantânea
1. Meça a espera que a cliente realmente sente
Comece por separar três momentos: a mensagem chegou ao WhatsApp, a conversa entrou no inbox e uma resposta foi aceite pelo prestador. Podem acontecer em tempos diferentes. A tela mostra a hora da última mensagem e atualiza a lista por polling e eventos em tempo real, mas a interface não transforma esse relógio numa promessa de atendimento. Antes de comparar semanas, escolha o intervalo, o fuso e o que conta como primeira resposta.
Uma pergunta sobre preço, uma confirmação de marcação e uma reclamação não têm o mesmo risco. A secretária de IA pode tratar uma mensagem repetitiva, mas o código também reconhece pedidos de atendimento humano e cria um aviso persistente quando a conversa precisa de alguém. A demora aceitável deve ser uma regra de operação da clínica, não uma frase de marketing copiada de outro sistema.
Registe uma linha de base com conversas reais: quando a mensagem entrou, quando a IA respondeu, quando a equipa assumiu e quando a conversa foi encerrada. Não conte a presença online da equipa como resposta entregue. O produto guarda o histórico de mensagens e estados; não fornece uma percentagem universal de satisfação nem uma garantia de que a cliente leu.
- Defina primeira resposta, período, fuso e denominador.
- Separe demora do prestador de demora da decisão humana.
- Use dados da própria clínica antes de escolher uma meta.
2. Faça do inbox a fonte única da conversa
A caixa de entrada lista até cinquenta conversas ordenadas pela mensagem mais recente e mostra nome, telefone, prévia, não lidas e modo atual da IA. Ao abrir uma conversa, carrega as últimas mensagens, põe o contador de não lidas a zero e mantém a seleção enquanto chegam atualizações. Isto evita que a receção procure a mesma cliente no telemóvel pessoal, numa folha de cálculo e noutra aba.
Mensagens de texto, áudio, imagem, vídeo, documento, localização, reação e contacto têm renderização própria. O histórico diferencia cliente, IA, equipa e mensagem enviada pelo telemóvel da proprietária, além de mostrar estados de entrega. Um ficheiro que ainda não pôde ser carregado aparece como erro localizado; não deve ser substituído por uma resposta inventada só para a lista parecer completa.
O inbox é uma área autenticada e mostra conversas reais quando o WhatsApp está ligado. Em modo de demonstração fica desativado, e uma conta sem conversas mostra um estado vazio. Esta diferença importa: não confunda uma tela de teste com uma fila comercial nem prometa que uma página pública fará a triagem sem uma ligação autorizada.
- Abra a conversa pelo inbox antes de responder noutro canal.
- Use prévia, não lida, ficheiro e entrega para reconstruir o contexto.
- Modo de demonstração sem WhatsApp não é uma fila de clientes.
3. Deixe o debounce juntar mensagens da mesma pessoa
As clientes costumam enviar várias mensagens curtas: nome do procedimento, fotografia, hora e pergunta. O motor não dispara uma resposta isolada a cada bolha. Depois de uma mensagem, `scheduleAiReply` lê a configuração de debounce e agenda o processamento; o padrão é trinta segundos e o limite configurável é de trezentos segundos. Uma nova mensagem na mesma conversa remove o trabalho anterior e reinicia a janela.
Em produção, a fila `nl-ai-reply` usa BullMQ sobre Redis quando a ligação está disponível. O worker processa até cinco trabalhos em paralelo e os jobs têm identificador determinístico por conversa. Se o Redis não estiver acessível, o serviço regista o aviso e usa um temporizador em memória. Este fallback ajuda desenvolvimento e continuidade controlada, mas não promete durabilidade da fila depois de reiniciar o processo.
A clínica deve escolher uma janela que a equipa consiga acompanhar. Debounce curto pode responder antes de a cliente terminar de explicar; debounce longo pode parecer silêncio. Compare a configuração com o horário de funcionamento, o volume de mensagens e a capacidade de takeover. Não use a palavra instantâneo para descrever uma rotina que espera deliberadamente por contexto.
- Mensagens novas reiniciam o debounce da mesma conversa.
- O padrão é 30 segundos; o teto do código é 300 segundos.
- Redis ativo e fallback em memória têm garantias diferentes.
4. Configure a IA com uma fonte que a equipa possa rever
A resposta nasce da configuração publicada da secretária e do histórico recente da conversa. A clínica pode testar uma versão, publicá-la depois da revisão, pausá-la e voltar a uma configuração anterior. O idioma, o catálogo, as regras da agenda e as instruções de segurança entram no contexto do agente; quando um dado não foi configurado, a resposta deve pedir confirmação em vez de preencher o espaço com preço ou disponibilidade.
O agente pode responder, não responder, encerrar ou pedir atendimento humano. Quando uma ferramenta da agenda falha ou uma alteração não foi confirmada, o fluxo usa uma mensagem de fallback e deixa a decisão para a responsável. Reclamações e sinais adversos também geram um aviso persistente. Assim, a velocidade não é obtida à custa de uma promessa clínica ou comercial que ninguém conferiu.
Reveja o que a IA sabe antes de procurar um problema de tempo. Catálogo ativo, políticas, fuso e instância ligada precisam de refletir a operação de hoje. Uma alteração publicada não torna o prestador mais rápido e uma instrução longa não substitui o gate de envio. A melhor configuração é a que permite reconhecer o limite e assumir a conversa sem recomeçar.
- Publique apenas a configuração revista pela clínica.
- Dado ausente deve virar confirmação, não preço inventado.
- Fallback e handoff preservam o contexto para a equipa.
5. Confira os gates antes de deixar uma resposta sair
O worker faz uma verificação inicial: a conversa precisa de existir, estar aberta e ter a IA ativa; a cliente precisa de existir e não pode ter opt-out ou bloqueio. Imediatamente antes de cada bolha, `finalSendEligibility` consulta novamente o estado fresco, a lista de supressão e os mesmos critérios. Se a equipa assumiu a conversa enquanto a IA preparava o texto, o envio é bloqueado por `human_takeover`.
O gate da plataforma também pode interromper a resposta por clínica suspensa, kill-switch ou limite de orçamento. Uma instância ausente, prestador sem ligação ou falha de saúde não deve ser escondida por uma mensagem otimista no inbox. O caminho seguro é registar o estado, avisar a equipa e não repetir às cegas um envio cuja confirmação ficou ambígua.
Estas verificações podem parecer lentas quando comparadas com um disparo direto, mas protegem a cliente e a clínica. Opt-out, bloqueio e conversa fechada vencem a meta de velocidade. A mesma disciplina vale para campanhas: a automação de marketing usa fila, horários e limites e não transforma a caixa de entrada numa ferramenta de envio em massa.
- Conversa aberta e IA ativa são requisitos de cada resposta.
- Opt-out, bloqueio e supressão impedem o envio.
- Uma resposta preparada pode ser descartada por mudança de estado.
6. Faça o takeover quando a situação pedir uma pessoa
A equipa não precisa de esperar pela IA para assumir. O botão de takeover muda o modo da conversa para `paused_takeover`, grava quem assumiu, regista auditoria e emite um evento de início. A lista mostra que a IA está pausada e, quando possível, quem está a atender. Uma segunda pessoa não deve disputar a mesma conversa sem perceber: o servidor aplica o vínculo e informa quando ela já foi assumida.
O handoff também pode nascer do agente. Reclamação, reação adversa, dúvida sensível ou tarefa não concluída criam um aviso humano ligado à conversa. A receção abre o histórico, lê o motivo e responde no contexto. A velocidade que importa nesse momento é reduzir a repetição para a cliente, não manter um robô a falar enquanto alguém precisa de decidir.
Takeover não apaga mensagens nem encerra a conversa. Pausa a IA e mantém histórico, ficheiros, contacto e estados de entrega. A responsável pode escrever, registar a decisão e devolver a conversa quando estiver pronta para o fluxo automático. Se a clínica não deseja retoma, deve deixar o modo pausado e tratar a fila como atendimento humano.
- Takeover pausa a IA e identifica a pessoa responsável.
- Handoff cria aviso persistente sem apagar o histórico.
- A equipa não deve responder por cima de quem assumiu.
7. Responda e devolva a conversa sem duplicar mensagens
Ao responder pelo compositor do inbox, a equipa envia texto ligado à conversa e ao tenant. O servidor reserva o envio antes de falar com o WhatsApp, usa `clientMessageId` quando fornecido e uma chave de intenção para impedir duas inserções quando a ação se repete. Se o prestador falhar ou o recibo ficar ambíguo, a mensagem recebe estado próprio e o sistema não tenta uma segunda cópia às cegas.
Uma resposta humana também coloca a conversa em `paused_takeover` automaticamente, para a IA não escrever por cima. O placeholder avisa que responder pausa a IA, e o botão de devolução exige uma ação explícita. Depois da devolução, uma nova mensagem pode voltar a agendar o debounce; o histórico anterior continua a ser contexto, não uma conversa nova.
Escreva o próximo passo com o que foi realmente confirmado: preço do catálogo, hora guardada ou orientação para a responsável retornar. Não use uma resposta rápida para prometer stock, reembolso, resultado clínico ou vaga que não passou pelo servidor. Velocidade sem idempotência, elegibilidade e autorização apenas troca espera por retrabalho.
- A reserva e a chave de intenção protegem contra duplo envio.
- Responder como equipa pausa a IA automaticamente.
- Devolver à IA é explícito e conserva o histórico.
8. Reveja estados, falhas e limites todas as semanas
Uma rotina de atendimento termina na leitura dos estados, não no clique em enviar. Veja conversas abertas, pausadas, não lidas e com aviso humano. Para cada resposta, diferencie pendente, enviada, entregue, lida, falha e desconhecida. Uma falha de atualização pode deixar a tela com os últimos dados conhecidos; não deve ser interpretada como fila vazia nem como autorização para repetir a mensagem.
A fila expõe métricas de modo, trabalhos ativos, em espera, atrasados e falhos. Use estes sinais para procurar Redis indisponível, prestador instável, debounce excessivo ou configuração que gera handoffs demais. O sistema regista auditoria de takeover, devolução e envio da equipa, mas não calcula sozinho o valor de cada venda recuperada nem prova que uma cliente foi perdida por uma demora específica.
Feche a semana com uma amostra de conversas lidas do começo ao fim. Marque quando a resposta foi adequada, quando faltou dado e quando foi preciso assumir. Se a clínica precisar de SLA, encaminhamento por equipa, confirmação de leitura comercial ou disponibilidade garantida do prestador, registe como oportunidade de produto. Até lá, a Bia organiza a resposta e o fallback; a operação verifica.
- Estado desconhecido pede investigação, não reenvio automático.
- Métricas de fila mostram saúde técnica, não receita recuperada.
- SLA e disponibilidade do prestador não são promessas atuais.
O que este guia faz — e o que não promete
Explica inbox, debounce, fila, gates, takeover e envio existentes. Não promete resposta instantânea, prestador sempre disponível, SLA, venda recuperada ou entrega garantida pelo WhatsApp.
- A resposta depende de debounce, configuração publicada, elegibilidade, fila, plataforma e prestador; não é uma resposta instantânea garantida.
- Redis pode usar BullMQ; quando não está disponível, o processo usa fallback em memória sem promessa de durabilidade após reinício.
- Takeover pausa a IA e a devolução é explícita; não existe equipa automática que resolva todas as conversas sem supervisão.
- Estado de envio desconhecido não prova entrega nem autoriza repetir a mensagem sem confirmação.
- O guia não oferece SLA, disponibilidade universal do WhatsApp, percentagem de conversão ou garantia de não perder clientes.
Perguntas frequentes
Dúvidas sobre demora e atendimento no WhatsApp
A Bia responde instantaneamente?
Não há garantia de resposta instantânea. O sistema usa debounce, fila, gates de elegibilidade, configuração da IA e um prestador ligado; o padrão do debounce é de 30 segundos e pode chegar a 300.
O que acontece quando a cliente envia várias mensagens?
Mensagens novas na mesma conversa removem o job pendente e reiniciam o debounce, para a IA receber mais contexto antes de responder. Isso não significa que a cliente receberá uma resposta em qualquer situação.
A equipa pode assumir a conversa?
Sim. O takeover muda a conversa para `paused_takeover`, regista a pessoa responsável e cria auditoria. A equipa responde no inbox e devolve a conversa à IA depois, com ação explícita.
Responder pelo inbox deixa a IA em silêncio?
Sim. Uma mensagem enviada pela equipa pausa automaticamente a IA nessa conversa, evitando duas respostas ao mesmo tempo. O histórico e os estados continuam visíveis.
A Bia garante que a mensagem foi entregue?
Não. O sistema mostra estados de envio e pode registar confirmação ambígua ou falha. Opt-out, bloqueio, takeover, prestador e gates da plataforma podem impedir o envio.
Teste o atendimento com conversas reais da sua rotina
Crie a conta, ligue o canal e reveja a configuração antes de publicar a secretária. Comece com uma conversa de teste e deixe a equipa assumir sempre que o contexto exigir.
Criar a minha conta