06Detalhamento · handoff
Passar a conversa pra uma pessoa sem o cliente repetir nada
O agente sabe a hora de parar. O difícil é tudo depois: quem é avisado, o que essa pessoa vê, o que o cliente vê, e como o agente sabe que tem que ficar quieto e não falar por cima.
O problema
O agente sabe a hora de parar: um caso difícil, ou um cliente pedindo uma pessoa. Parar é fácil. O trabalho é tudo que vem depois — quem é avisado, o que essa pessoa vê quando chega, o que o cliente vê enquanto espera, e a parte que quase todo mundo esquece: o agente saber que não pode mais falar depois que alguém assumiu.
As restrições
- 01Nunca derrubar a conversa. Handoff que perde contexto faz o cliente repetir tudo, e aí era melhor não ter handoff.
- 02O humano chega com tudo na mão: histórico inteiro, o pedido em aberto e as ferramentas pra responder.
- 03O agente silencia na deixa. Duas vozes respondendo a mesma pessoa é a coisa mais grotesca que pode acontecer num atendimento, e não acontece.
- 04Credencial é permissão, não intenção. Ter direito de entrar na conversa não faz de você quem deve responder.
A arquitetura
agente detecta o limite
um caso difícil, ou um pedido explícito por uma pessoa
card + aviso
cria um card e chama o humano no próprio canal, com contexto
humano assume
copiloto: o telefone é a credencial — permissão, não intenção
agente silencia
mudo até o "resolver" devolver o controle
Tudo gira em torno de uma distinção que a primeira versão errou: um telefone cadastrado pra receber aviso é permissão pra entrar, não sinal de que aquela pessoa agora é quem fala. Confundir as duas coisas foi o que deixou a identidade de um humano avisado substituir o Especialista no meio da conversa, sem ninguém ter pedido.
A parte difícil
O bug mais feio do fluxo foi um Especialista que sumia. Um telefone guardado como alvo de notificação — alguém que só devia ser avisado — era lido como intenção: o sistema entendia que aquela pessoa estava respondendo, o Especialista silenciava e desaparecia do chat. O cliente ficava conversando com uma cadeira vazia.
A correção foi conceitual antes de virar código: separar credencial de ação em todo lugar. Estar na lista de aviso quer dizer que você pode assumir, nunca que assumiu; só um "assumir esta conversa" explícito troca quem fala. A mesma classe de bug estava nas automações: três lugares mandavam mensagem por fora da conversa, então o follow-up saía sem aparecer no chat que o humano estava olhando. Hoje todo envio automático passa por uma função só, que escreve no chat antes de mandar.
Trade-offs
- Silenciar o agente no instante em que o humano entra abre uma brecha curta, se ele demorar a digitar. Prefiro dois segundos de silêncio a duas vozes se contradizendo.
- Mandar o contexto inteiro faz o humano ver mais do que às vezes precisa. Sobrar informação é melhor do que faltar: ele passa o olho e acha.
- Rotear aviso por telefone é simples e é o que as pessoas já têm. Mas foi isso que me obrigou a deixar a diferença entre credencial e intenção explícita no código.
O que eu faria diferente
Eu faria de "quem está falando" um estado único e explícito, com um dono por vez, em vez de deixar isso ser inferido de alvo de aviso e origem de mensagem. Quase todo bug de handoff era o mesmo bug de roupa diferente: o sistema discordando de si mesmo sobre quem tinha a palavra. Uma resposta só, autoritativa, teria evitado todos.