Meta Tech Provider

O webhook account_update, e cada motivo de desconexão

account_update é como a Meta informa que uma conexão mudou de estado. O campo event nomeia o que aconteceu e, em uma remoção, disconnection_info.reason nomeia o porquê. Esse motivo é a diferença entre um número que vai voltar e um que se foi.

PARTNER_REMOVED

O evento que a Meta envia quando o app é desinstalado de uma conta.

6

Motivos nomeados de desconexão que uma remoção pode carregar.

~14 days

A janela de inatividade do dispositivo principal, que chega como PRIMARY_INACTIVITY.

Que eventos o account_update carrega?

PARTNER_REMOVED, quando o app é desinstalado da conta do WhatsApp Business. Esse é o sinal definitivo de desconexão e o que vale usar como base, em vez de deduzir uma desconexão de um campo que virou false.

ACCOUNT_OFFBOARDED, quando o número sai por completo. ACCOUNT_RECONNECTED, quando uma conexão antes removida volta. E os eventos de aplicação de regras: ACCOUNT_RESTRICTION e ACCOUNT_VIOLATION, junto de eventos cujos nomes incluem DISABLED ou BAN.

Resultados de verificação e de aprovação também chegam aqui, com nomes de evento contendo VERIFIED ou APPROVED. Um handler deve decidir pelo nome do evento e tratar qualquer coisa não reconhecida como informativa em vez de falhar, porque a Meta acrescenta eventos sem aviso.

Quais são os motivos de desconexão?

São seis, e significam coisas bem diferentes.

PRIMARY_INACTIVITY é a regra dos aproximadamente catorze dias: o app do WhatsApp Business não foi aberto no dispositivo principal. Recuperável, e de longe o mais comum.

COMPANION_INACTIVITY é a mesma ideia em um dispositivo vinculado, com uma janela maior, de cerca de trinta dias.

BUSINESS_DOWNGRADE quer dizer que o número voltou para o app do WhatsApp comum, o que encerra a Coexistência, porque a Coexistência exige o app Business.

CHANGE_NUMBER quer dizer que o próprio número de telefone mudou. USER_RE_REGISTERED quer dizer que ele foi registrado de novo em um novo aparelho. E ACCOUNT_DISCONNECTED quer dizer que o cliente desconectou de propósito, ou que a aplicação de regras desconectou.

O motivo também chega junto de disconnection_info.initiated_by, que diz se foi uma pessoa ou o sistema.

Por que o motivo importa mais que o evento?

Porque PARTNER_REMOVED sozinho não diz se você deve agir.

Um número removido por PRIMARY_INACTIVITY vai voltar: a empresa abre o app, reconecta, e tudo volta a funcionar. Tratar isso como um cliente que foi embora produz um e-mail de cancelamento para alguém que continua sendo cliente.

Um número removido por BUSINESS_DOWNGRADE ou ACCOUNT_DISCONNECTED é outra situação, e tratar como temporário deixa uma conexão no limbo para sempre.

Quando uma remoção chega sem motivo nenhum, initiated_by é o recurso alternativo: uma remoção feita por uma pessoa se lê como deliberada, e uma feita pelo sistema sem explicação não. Essa distinção vale ser feita no código, e não em uma conversa de suporte depois.

Erros comuns

  • Tratar todo PARTNER_REMOVED igual. O motivo separa duas semanas de silêncio de um cliente que foi embora.
  • Deduzir a desconexão de um campo que virou false em vez de usar este evento. É isso que produz alarme falso.
  • Falhar em um nome de evento não reconhecido. A Meta acrescenta eventos e o handler deve pular o que não conhece.
Fazendo isso com o EasyCoexistence

A EasyCoexistence trata cada um desses casos pelo nome, registra o motivo na linha do tempo da conexão e separa uma remoção recuperável por inatividade de um número que realmente se foi.

Perguntas frequentes

PARTNER_REMOVED é permanente?

Em geral não. A maioria chega com PRIMARY_INACTIVITY, o que quer dizer que o app ficou sem ser aberto e reconectar restaura tudo.

Reconectar restaura o destino do meu webhook?

Não, e essa é a armadilha. O destino é um override na assinatura do app e é desinstalado junto com ele. Precisa ser aplicado de novo.

O que é COMPANION_INACTIVITY?

A mesma ideia de inatividade em um dispositivo vinculado em vez do principal, com uma janela maior, de cerca de trinta dias.

Posso receber este evento sem motivo?

Sim. Quando isso acontece, disconnection_info.initiated_by é o único sinal de se foi deliberado.

Continue lendo

Pronto para começar?

Configure o WhatsApp Coexistence em minutos, não em meses. O aplicativo continua funcionando no celular.

Começar teste grátis

Verificado em

Webhook account_update