Identificadores no WhatsApp
A WhatsApp Cloud API informa vários ids para a mesma pessoa, e a Niadra guarda cada um como um tipo de handle próprio. Envie no mesmo evento todos os ids que você recebe: handles que chegam juntos no mesmo evento são ligados quando são fortes, não bloqueados e sem conflito.
Com os nomes de usuário do WhatsApp, o remetente pode deixar de ser um telefone e virar um BSUID. A ligação entre BSUID e telefone nunca é presumida: ela exige uma asserção explícita, como o cliente digitar o número, um OTP ou o seu próprio cadastro. O nome de usuário é atributo de exibição e nunca identifica ninguém.
Passo a passo
1. Registre cada mensagem recebida com o id do WhatsApp
Use o id da mensagem no provedor (wamid) como idempotency_key. A WhatsApp Cloud API reenvia webhooks por dias, e a Niadra deduplica por essa chave no banco: uma entrega repetida conta como duplicada e nunca é gravada duas vezes. Os eventos são ordenados por occurred_at, a hora em que a mensagem foi enviada, nunca pela chegada; assim, uma ressincronização que reenvia mensagens antigas coloca cada uma no lugar certo.
track() volta na hora. O SDK põe o evento numa fila e envia em lotes de até 15 eventos ou a cada segundo. O evento bruto é gravado antes de a API responder, e a mensagem fica legível na camada ao vivo em menos de um segundo: quando a Marina liga às 14h07, o agente de voz recebe essa mensagem em live.
2. Ligue o id do WhatsApp ao telefone que o resto da empresa conhece
O agente de voz procura a Marina pelophone_e164; o seu CRM conhece a Marina pelo id dele. Quando você sabe que os três são da mesma pessoa, diga isso com identify(). A chamada sai na hora, e o próximo context() já enxerga o perfil ligado.
3. Trate a conversa como conversa e deixe a Niadra dividir as sessões
O seuconversation_id é a conversa do WhatsApp, que pode durar meses. A Niadra divide essa conversa em sessões: no WhatsApp, a sessão fecha depois de cerca de 20 minutos de inatividade (ajustável por canal). Cada sessão vira memória por conta própria, e a cobrança conta uma conversa por janela de atividade, não por mensagem.
Leia o contexto antes de cada resposta. Dentro da sessão o contexto fica fixado: voltam os mesmos bytes, e o provedor do modelo mantém o início do prompt em cache. O SDK também guarda o contexto por conversa.
4. Eleve o nível de verificação com um OTP no WhatsApp
Uma mensagem vinda de um número de WhatsApp é plausível pelo canal. Dados da conta, documentos e pagamentos costumam exigir mais. Envie um código de uso único pelo WhatsApp; quando o cliente digitar o código certo, registre umverify com método otp_whatsapp e nível V3. O nível vale só para esta conversa, e o OTP no WhatsApp também prova a posse daquele número.
verify sai na hora e descarta o contexto guardado daquela conversa. A leitura seguinte volta com os itens que a política libera em V3; antes disso, o contexto informava em withheld quantos itens estavam retidos, e o agente sabia que valia pedir a verificação. Um nível acima do teto da sua fonte volta como erro do item, verification_not_allowed.
5. Envie áudios e anexos por referência
Mídia nunca viaja dentro de um evento. Reserve um upload com osubject dono do arquivo, envie os bytes com PUT para a URL pré-assinada com exatamente os upload_headers da resposta (o armazenamento recusa qualquer outro) e depois mande o evento com media_ref e o SHA-256. Os SDKs fazem os dois primeiros passos em upload_media() e uploadMedia(). Para mensagens de voz, mande a sua transcrição em transcript, com stt_confidence.
6. Registre as respostas do agente e as transferências
Registre as mensagens enviadas comconversation.agent() (com o id da mensagem no WhatsApp como idempotency_key, quando houver), as mensagens de atendente com human_agent() em Python ou human() em TypeScript, e notas internas com visibility="internal": o cliente nunca viu essas notas, e o contexto as marca assim. Quando a conversa passa para uma pessoa, registre a transferência, para a medição saber se o destino leu o contexto.
Próximos passos
Eventos e o lote
idempotência, ordem e erro por item.
Identidade e verificação
asserções, uniões e os níveis.
Agentes de voz
a ligação das 14h07.
Enviar um lote
a requisição e a resposta completas.

