Meta Tech Provider

Le webhook messages

messages est le champ qui contient tout ce qu’un client envoie à votre numéro : texte, médias, réponses, réactions et réponses interactives. Sur un numéro Coexistence routé, il va directement de Meta vers votre endpoint, sans passer par un provider.

messages

Le webhook qui contient les messages entrants des clients.

wamid

Le préfixe de l’identifiant de message utilisé pour dédupliquer les tentatives.

200

Le statut que Meta attend rapidement, avant tout traitement.

Ce que contient le payload

Une ou plusieurs messages dans une seule livraison, chacune avec l’expéditeur, un identifiant et un type. Le type détermine les autres clés présentes.

  • Le numéro de téléphone de l’expéditeur et l’identifiant du numéro auquel il a écrit.
  • Un identifiant de message wamid, sur lequel repose la déduplication.
  • Un horodatage Unix.
  • Un type : text, image, audio, video, document, sticker, location, contacts, reaction, button ou interactive.
  • Pour les types média, un identifiant média à utiliser pour récupérer le contenu, plutôt que les octets eux-mêmes.

Pourquoi il ne nous parvient jamais sur un numéro routé

Parce que la surcharge déplace ce champ, avec smb_message_echoes, vers la destination que vous indiquez.

Meta permet à une application de remplacer l’endroit où un WhatsApp Business Account livre ses webhooks. Nous configurons cette surcharge vers votre URL, ce qui retire entièrement le chemin des messages de notre infrastructure. Il n’y a ni copie, ni file d’attente, ni conservation de notre côté, car la livraison n’y arrive jamais.

Lorsqu’aucune destination n’est définie, ces événements sont redirigés vers notre callback par défaut, où le gestionnaire les supprime sans les conserver. C’est la différence entre une affirmation sur le stockage et un chemin d’exécution : le contenu des conversations n’a aucun endroit où aller.

Accuser réception correctement

Renvoyez 200 avant d’effectuer le travail, pas après.

Meta considère une réponse lente comme une erreur et réessaie, ce qui signifie qu’un gestionnaire qui traite la requête en ligne verra le même message plusieurs fois. Répondez immédiatement, placez le payload dans une file d’attente ou une tâche en arrière-plan, puis effectuez le travail en dehors de la requête.

Avec le serverless, ce n’est pas facultatif. Une fonction qui renvoie sa réponse puis continue de travailler peut être figée dès qu’elle répond : l’accusé de réception et le traitement doivent donc être réellement séparés.

Dédupliquer

Toujours avec le wamid, car les tentatives sont normales et non exceptionnelles.

Le même message peut arriver deux fois pour des raisons qui n’ont rien à voir avec un bug de votre côté : réponse lente, délai d’attente réseau ou déploiement intervenant pendant la livraison. Stocker les identifiants déjà vus et ignorer les doublons ne demande que quelques lignes, mais fait la différence entre une réponse envoyée une fois et une réponse envoyée deux fois.

Sur un numéro Coexistence, c’est encore plus important, car smb_message_echoes arrive par le même chemin et un gestionnaire qui traite chaque événement comme nouveau répondra alors qu’un humain a déjà répondu.

Erreurs courantes

  • Traiter le message avant de renvoyer 200. Meta réessaie si la réponse est lente et vous traitez le message deux fois.
  • Ignorer la déduplication. Les tentatives sont prévues, ce n’est pas un cas exceptionnel.
  • Attendre les octets média dans le payload. Il contient un identifiant média à utiliser pour les récupérer.
Faire cela avec EasyCoexistence

EasyCoexistence achemine ce champ directement de Meta vers votre endpoint et ne conserve que les événements opérationnels du monitoring : le contenu des conversations n’a donc aucun chemin vers notre stockage.

Questions fréquemment posées

EasyCoexistence voit-il les messages de mes clients ?

Non. La surcharge livre ce champ à votre endpoint. Tout ce qui atteint notre callback de secours est supprimé sans être conservé.

Plusieurs messages peuvent-ils arriver dans une seule requête ?

Oui. Une seule livraison peut en contenir plusieurs ; les gestionnaires doivent donc tous les parcourir au lieu de lire uniquement le premier.

Comment récupérer les médias ?

Le payload contient un identifiant média. Utilisez-le pour récupérer l’URL avec le token d’accès du numéro, puis téléchargez le contenu.

Qu’est-ce que smb_message_echoes ?

Le champ associé qui contient ce que votre équipe envoie depuis l’application WhatsApp Business. Il existe uniquement sur les numéros Coexistence.

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 gratuit

Vérifié le

Webhook messages