Saltar para o conteúdo principal

O que é

Inscreva-se em whatsapp.meta_business_agent.handover.updated. Você recebe este evento quando a YCloud processa um callback suportado de handover/controle para um Meta Business Agent criado via API. Ele relata a transferência de controle, não o resultado de uma atribuição de Inbox ou uma mensagem de transferência personalizada. Ao contrário dos dois eventos Echo, este evento mantém intencionalmente o objeto whatsappMetaBusinessAgent porque os metadados do Agent e de controle fazem parte do contrato de handover.

Antes de começar

  1. Integre o Agent por meio da API REST pública.
  2. Inscreva um endpoint de webhook ativo na mesma conta em whatsapp.meta_business_agent.handover.updated.
  3. Valide YCloud-Signature com base no corpo bruto da requisição, aceite cada evento de forma durável e processe-o de maneira idempotente.
Agents criados pelo Console não emitem este webhook do cliente. A sincronização de Inbox deles é um fluxo separado.
Consulte Configurar webhooks para configuração de endpoints.

Como funciona

Todos os exemplos usam identificadores de espaço reservado. Roteie pelo type externo e leia whatsappMetaBusinessAgent, não whatsappMessage, whatsappEchoMessage ou data. Desduplique entregas repetidas com o id externo. O timestamp aninhado é um número inteiro em milissegundos Unix; createTime é uma string RFC 3339.
  • controlState atualmente é APP_CONTROL_TAKEN para callbacks suportados de handover de Agent via API.
  • consumerPhoneNumber vem de sender.phone_number do callback de handover e é normalizado para E.164 quando válido. Não é o número comercial nem phoneNumberId.
  • O contrato atual de handover não expõe recipientUserId ou parentRecipientUserId. A identidade ausente do consumidor não é recuperada a partir de um callback de mensagem vizinho.
  • Para o exemplo control_passed abaixo, actor identifica o aplicativo proprietário anterior, não o funcionário receptor.
  • reason são metadados opcionais do provedor. Trate-o como uma string aberta, não como um enum fixo.
  • Esta não é uma notificação para cada requisição de take, release, Set Live ou Set Draft. Callbacks de controle processados enquanto o Agent está em Draft são ignorados.
O payload não inventa uma identidade de consumidor. consumerPhoneNumber é omitido quando o callback não fornece um número de telefone válido, e nenhum BSUID é inferido a partir de mensagens adjacentes. phoneNumberId identifica o número comercial, que pode atender a muitos clientes.
Não trate este evento como prova de que um funcionário foi atribuído ou que uma mensagem personalizada de transferência foi enviada ou entregue.

Requisição

A YCloud envia estes corpos JSON em requisições HTTP POST para a URL de webhook configurada.

Resposta

Retorne uma resposta 2xx após aceitar o evento de forma durável. Processe tarefas lentas de forma assíncrona.

O Agent transfere o controle para sua aplicação

Requisição

APP_CONTROL_TAKEN relata a transferência de controle, não uma atribuição de funcionário na Inbox ou a entrega de mensagem personalizada de transferência. actor é o ID do aplicativo proprietário anterior neste exemplo.

Resposta

Explicação

Use consumerPhoneNumber para correlacionar a transição de controle ao consumidor quando estiver presente. Não deduza uma atribuição de Inbox ou entrega de mensagem a partir deste evento.

Exemplos relacionados