Atendimento WhatsApp primeiro com agentes de IA: uma memória entre o WhatsApp, a voz e o app
Onde o cliente escreve no WhatsApp primeiro e liga quando importa, a memória precisa seguir a pessoa entre canais, idiomas e fornecedores. O que o agente de WhatsApp precisa, como árabe e inglês na mesma conversa são tratados, e o que o agente de voz da central recebe.
Canais8 min de leitura
Numa operação em que o WhatsApp vem primeiro, a conversa começa por escrito e vira ligação quando importa: o cliente manda três mensagens à noite, recebe a resposta do agente de WhatsApp de manhã e liga para a central ao meio-dia, quando a resposta não resolveu. Para o agente de voz, ou o atendente humano, continuar de onde o WhatsApp parou, a memória precisa estar fora dos dois canais e dos dois fornecedores, e precisa reconhecer a mesma pessoa pelo wa_id de um lado e pelo telefone do outro. É o que a Niadra faz: cada mensagem e cada ligação viram eventos de uma memória só, e cada agente lê o contexto da pessoa antes de responder, no idioma em que ela escreveu. Este post passa pelo que o agente de WhatsApp precisa, pelo que acontece quando o cliente mistura árabe e inglês na mesma conversa e pelo que o agente de voz recebe quando o telefone toca.
Por que o WhatsApp primeiro muda o problema da memória
Nos mercados em que o WhatsApp é o primeiro canal, como o Brasil, a Índia e o Golfo, três coisas são diferentes de um chat na web.
A conversa dura meses. Não existe uma sessão que acaba quando a aba fecha: a mesma linha guarda o pedido de março, a reclamação de agosto e a pergunta de hoje. Uma memória por sessão perde o fio; uma memória por pessoa precisa cortar esse fio em sessões por inatividade, com prazo por canal, para que "o que acabou de acontecer" seja a última troca, e não o ano inteiro. A Niadra fecha a sessão por inatividade e extrai a memória de cada uma quando ela fecha; a linha inteira continua pesquisável.
Os identificadores são do canal. A Cloud API entrega um wa_id (o telefone só com dígitos) e, com os nomes de usuário do WhatsApp, um id de usuário com escopo da empresa, que só é único dentro da sua conta do WhatsApp Business. A plataforma de voz entrega o número em E.164 e, com STIR/SHAKEN, o atestado da operadora. O CRM tem o próprio id de contato. A Niadra guarda cada um como um handle do próprio tipo, com peso, e só os une com evidência: um evento de sistema, um OTP, o seu próprio cadastro. O nome de usuário é atributo de exibição e nunca identifica ninguém.
Os fornecedores são diferentes. O agente de WhatsApp costuma vir de uma plataforma de mensagens, o de voz de uma plataforma de voz, e os agentes que trabalham dentro do ERP do time da própria empresa. Nenhum abre a memória para os outros. A memória precisa ficar acima de todos, que é a razão de a Niadra existir.
O que o agente de WhatsApp precisa da memória
Antes de responder, o agente lê o contexto da pessoa: os fatos, as pendências e as promessas com a data e o canal de origem, o que outros agentes fizeram por dentro da empresa e os destaques do histórico, no formato de chat. O adaptador do WhatsApp Cloud API abre a conversa com o wa_id como sujeito, confere a assinatura da Meta e registra cada mensagem recebida pelo wamid, então um webhook que a Meta reenvia dias depois é gravado uma vez. A resposta é registrada pelo id que a Cloud API devolve. Pela Twilio, o adaptador da Twilio lê o WaId no webhook de Messaging do mesmo jeito.
Uma mensagem prova que veio daquele número, e o turno registrado sobe a sessão para V1. O dado que a sua política reserva para um nível maior (um saldo, um documento, um cartão) fica retido até a prova chegar. A prova pode vir no mesmo canal: um OTP enviado e confirmado no WhatsApp sobe a conversa para V3, e a leitura seguinte traz o que esse nível libera. O guia de agentes de WhatsApp passa pelos identificadores, pelas sessões, pelo OTP e pela mídia.
A mídia viaja por referência. Um áudio ou um documento chega como id, tipo MIME e SHA-256; o seu código baixa os bytes da Graph API e os entrega ligados ao cliente, para que apagar a pessoa apague a gravação também. O texto de um PDF ou de uma imagem é lido só dentro da região, e só para os tipos que o seu espaço lista.
Árabe e inglês na mesma conversa
Um cliente do Golfo escreve em árabe, passa para o inglês no nome do produto e no número do pedido, e volta para o árabe. O que a memória faz com isso, mecanismo a mecanismo:
- Extração, contexto e busca funcionam em qualquer idioma. O modelo que extrai a memória lê a conversa como foi escrita. O resumo de cada episódio, a solução, as descrições das pendências e o rótulo do assunto saem no idioma em que o cliente escreveu, mesmo quando não é o do espaço; os rótulos fixos do contexto ("Fatos", "Pendências") seguem o idioma do seu espaço, português ou inglês.
- Identificadores e números são achados em qualquer alfabeto. O número do pedido, o telefone, o valor e a data num turno são lidos por correspondência exata, seja o que for que os cerca. "Cadê o pedido 4471?" em árabe acha a conversa do pedido 4471.
- As regras de palavras são afinadas para três idiomas. O léxico que lê o turno para escolher os encaixes do contexto, com radicalização e grupos de sinônimos, cobre português, inglês e espanhol, e as palavras de tempo relativo ("semana passada", "last week") também. Um turno escrito em árabe recebe as correspondências exatas e, quando o seu espaço liga, o canal semântico; não recebe as correspondências por radical nem as janelas de tempo. É o limite honesto de hoje.
- O mascaramento roda antes de qualquer modelo. E-mail, telefone, cartão, IBAN, código postal e endereço são mascarados em qualquer país antes de o texto chegar ao modelo de extração; os formatos de documento mascarados por regra são os de um país só, e o número do Emirates ID não está entre eles. A extração nunca guarda número de documento, de cartão ou de conta bancária de qualquer forma.
O resultado para o agente de voz é um contexto no idioma do seu espaço, com as palavras do cliente preservadas onde importa: "o cliente relatou que o roteador reinicia toda noite" fica em árabe se foi assim que foi dito, ao lado do número do pedido e da data.
Quando o cliente liga para a central
O telefone toca com o atestado da operadora e o número em E.164. A Niadra reconhece a mesma pessoa do wa_id da manhã, porque os dois handles foram unidos com evidência, e a primeira leitura começa enquanto o telefone toca, em até 1,5 s. O agente de voz recebe a view de voz: quem liga, o que está em aberto, o que o agente de WhatsApp respondeu e o que o agente interno fez, num contexto de 88 tokens na mediana, antes de dizer a primeira palavra. Uma mensagem escrita no WhatsApp com a ligação já em andamento chega ao turno seguinte da ligação como delta: o frescor medido de uma escrita num canal até a leitura em outro é de 62,7 ms na mediana.
Quando o agente transfere para uma pessoa, o atendente da mesa lê a view brief, uma passagem de caso curta, no tamanho de uma fala, pela ferramenta que a central já usa: por API, webhook ou MCP. A Niadra não tem tela de atendimento e nunca vai ter; a tela é da plataforma da sua central. O guia de agentes de voz e o post sobre o orçamento de latência da memória para voz têm os números de cada prazo.
O que este post não afirma
A Niadra roda numa região só, informada no contrato, e os dados ficam lá; a única coisa que sai é texto já mascarado, enviado aos provedores de IA da lista de subprocessadores. Onde fica essa região para a sua empresa é uma pergunta de contrato, e este post não afirma presença local em lugar nenhum. As regras de palavras em árabe são um limite, dito acima, não um recurso.
Como a Niadra resolve
A Niadra é a camada de memória omnichannel: as mensagens do WhatsApp, as ligações, as sessões do app e os eventos dos seus sistemas viram uma memória só de cada pessoa, reconhecida pelos identificadores que cada canal tem, e qualquer agente, de qualquer fornecedor, lê o contexto da tarefa dele antes de responder, no idioma em que o cliente escreveu, no nível que a conversa provou. Os adaptadores de WhatsApp Cloud API, Twilio, LiveKit, Vapi e os outros o ligam às plataformas que você já opera. O post sobre levar o contexto da ligação para o WhatsApp cobre o caminho de volta.
Perguntas frequentes
Funciona por um provedor de WhatsApp, e não pela Cloud API?
Pela Twilio, com o adaptador da Twilio, que lê o WaId no webhook de Messaging. Com outros provedores, o SDK é usado direto: a conversa aberta com o wa_id como sujeito, e as mensagens recebidas e enviadas registradas como turnos com o id da mensagem no provedor como chave de idempotência.
E se o cliente alternar entre árabe e inglês no meio da conversa?
A memória é extraída da conversa como ela foi escrita, e os resumos guardam o idioma do cliente. Identificadores e números são achados em qualquer alfabeto. As correspondências por radical e as palavras de tempo relativo dos encaixes do contexto são afinadas para português, inglês e espanhol; um turno em árabe conta com as correspondências exatas e, quando ligado, com o canal semântico.
O agente de voz da central vê a conversa do WhatsApp?
Vê, antes de dizer a primeira palavra, quando o número que liga e o wa_id que escreveu foram unidos com evidência: um evento de sistema, um OTP ou o seu próprio cadastro. A troca do WhatsApp aparece em "o que acabou de acontecer" na view de voz, e o atendente humano lê a mesma memória como uma passagem de caso curta.