Le webhook account_update et toutes les raisons de déconnexion
account_update indique que Meta a détecté un changement d’état de connexion. Son champ event décrit ce qui s’est passé et, en cas de suppression, disconnection_info.reason indique pourquoi. Cette raison permet de savoir si le numéro reviendra ou s’il est définitivement perdu.
L’événement envoyé lorsque l’application est désinstallée d’un compte.
Les raisons de déconnexion nommées qu’une suppression peut contenir.
La période d’inactivité de l’appareil principal, reçue sous la forme PRIMARY_INACTIVITY.
Quels événements account_update contient-il ?
PARTNER_REMOVED, lorsque l’application est désinstallée du compte WhatsApp Business. Il s’agit du signal de déconnexion de référence, celui sur lequel il faut s’appuyer, plutôt que de déduire une déconnexion d’un champ passé à false.
ACCOUNT_OFFBOARDED, lorsque le numéro est entièrement retiré. ACCOUNT_RECONNECTED, lorsqu’une connexion supprimée revient. Et les événements d’application de mesures : ACCOUNT_RESTRICTION et ACCOUNT_VIOLATION, ainsi que ceux dont le nom contient DISABLED ou BAN.
Les résultats de vérification et d’approbation arrivent également ici, avec des noms d’événements contenant VERIFIED ou APPROVED. Un gestionnaire doit utiliser le nom de l’événement et traiter tout élément non reconnu comme informatif, sans échouer, car Meta ajoute des événements sans préavis.
Quelles sont les raisons de déconnexion ?
Il y en a six, et leur signification varie fortement.
PRIMARY_INACTIVITY correspond à la règle d’environ quatorze jours : l’application WhatsApp Business n’a pas été ouverte sur l’appareil principal. C’est récupérable et de loin le cas le plus fréquent.
COMPANION_INACTIVITY applique le même principe à un appareil compagnon, avec une période plus longue d’environ trente jours.
BUSINESS_DOWNGRADE signifie que le numéro est retourné vers l’application WhatsApp grand public, ce qui met fin à Coexistence, car Coexistence nécessite l’application Business.
CHANGE_NUMBER signifie que le numéro de téléphone lui-même a changé. USER_RE_REGISTERED signifie qu’il a été réenregistré sur un nouvel appareil. ACCOUNT_DISCONNECTED signifie que le client l’a déconnecté volontairement ou qu’une mesure d’application l’a fait.
La raison arrive aussi avec disconnection_info.initiated_by, qui indique si l’action vient d’une personne ou du système.
Pourquoi la raison compte-t-elle plus que l’événement ?
Parce que PARTNER_REMOVED, à lui seul, ne vous indique pas quoi faire.
Un numéro supprimé pour PRIMARY_INACTIVITY va revenir : l’entreprise ouvre l’application, se reconnecte et tout reprend. Le traiter comme un client parti entraîne l’envoi d’un e-mail d’annulation à quelqu’un qui est toujours client.
Un numéro supprimé pour BUSINESS_DOWNGRADE ou ACCOUNT_DISCONNECTED correspond à une autre situation. Le traiter comme un cas temporaire laisserait une connexion bloquée indéfiniment.
Lorsqu’une suppression arrive sans raison, initiated_by sert de solution de secours : une suppression effectuée par une personne semble volontaire, tandis qu’une suppression inexpliquée par le système ne l’est pas nécessairement. Cette distinction mérite d’être gérée dans le code plutôt que lors d’un échange ultérieur avec le support.
Erreurs courantes
- Traiter tous les PARTNER_REMOVED de la même façon. La raison distingue deux semaines de silence d’un client parti.
- Déduire la déconnexion d’un champ passé à false au lieu de cet événement. C’est ce qui crée de fausses alertes.
- Échouer sur un nom d’événement non reconnu. Meta ajoute des événements et le gestionnaire doit ignorer ceux qu’il ne connaît pas.
EasyCoexistence gère chacun de ces cas par son nom, enregistre la raison dans l’historique de la connexion et distingue une suppression récupérable pour inactivité d’un numéro réellement perdu.
Questions fréquemment posées
PARTNER_REMOVED est-il définitif ?
Généralement non. La plupart arrivent avec PRIMARY_INACTIVITY, ce qui signifie que l’application n’a pas été ouverte et qu’une reconnexion rétablit tout.
La reconnexion restaure-t-elle la destination de mon webhook ?
Non, et c’est le piège. La destination est une surcharge de l’abonnement de l’application et est désinstallée avec celle-ci. Elle doit être réappliquée.
Qu’est-ce que COMPANION_INACTIVITY ?
Le même principe d’inactivité sur un appareil compagnon plutôt que principal, avec une période plus longue d’environ trente jours.
Puis-je recevoir cet événement sans raison ?
Oui. Dans ce cas, disconnection_info.initiated_by est le seul signal permettant de savoir si l’action était volontaire.
Poursuivre la lecture
Prêt à commencer ?
Configurez WhatsApp Coexistence en quelques minutes, pas en quelques mois. L’application continue de fonctionner sur le téléphone.
Commencer l'essai gratuitVérifié le