Intégration WhatsApp Business (recherche de faisabilité)

Statut : non implémenté. Cette page évalue si une intégration WhatsApp légitime est envisageable pour une petite conciergerie comme la nôtre, et complète la fonctionnalité de modèles de message par canal (message_templates.channel = 'sms_whatsapp', page Modèles de message). Aucun code WhatsApp n'existe encore dans ce dépôt.

a. Faisabilité

Oui — la plateforme officielle WhatsApp Business Platform (Cloud API) de Meta est une voie légitime et utilisable pour ce cas d'usage : messages transactionnels de conciergerie (confirmation de réservation, informations d'accès, rappels). C'est le chemin moderne recommandé par Meta ; l'ancienne API « On-Premises » est en fin de vie et déconseillée pour un nouveau projet. Le volume attendu ici (quelques dizaines de messages/mois par bien) est largement dans la cible de l'API, sans nécessiter de passer par un BSP (Business Solution Provider) payant.

b. Ce qu'il faut pour démarrer

  1. Un compte Meta Business (Business Manager) et sa vérification (Meta Business Verification) — obligatoire pour lever les limites de volume.
  2. Un WhatsApp Business Account (WABA), créé dans le Meta Business Manager.
  3. Un numéro de téléphone dédié, enregistré auprès de l'API.
  4. La Cloud API — hébergée par Meta, gratuite d'accès (contrairement à l'ancienne API On-Premises), accessible via graph.facebook.com. Même style d'intégration que Beds24 (BEDS24_API_TOKEN) et Stripe (voir Docs Stripe).
  5. Un token d'accès système, stocké en variable d'environnement du service app, jamais en clair dans le dépôt.

c. Pré-approbation des templates — lien direct avec les modèles de message

Point structurant : toute conversation initiée par l'entreprise (hors fenêtre de service de 24 h ouverte par le client) doit obligatoirement utiliser un template pré-approuvé par Meta. Ce n'est pas une option.

Cela concerne directement les modèles créés dans message_templates avec channel = 'sms_whatsapp' : chaque modèle destiné à WhatsApp devrait, en plus d'exister dans notre base, être soumis et validé côté Meta (nom, catégorie, corps figé avec variables) avant de pouvoir être réellement envoyé. Il faudrait ajouter un identifiant de template Meta et un statut d'approbation à la table pour distinguer les modèles utilisables de ceux encore en attente. Les réponses envoyées dans les 24 h suivant le dernier message du client restent libres, sans template.

Approbation généralement rapide (souvent 1 à 5 minutes une fois l'entreprise vérifiée, jusqu'à 24 h sinon) mais reste un aller-retour externe à anticiper.

d. Modèle de coût (à revérifier avant tout engagement budgétaire)

Depuis le 1er juillet 2025, Meta facture par message envoyé et non plus par conversation :

  • Messages dans la fenêtre de service de 24 h (réponse à une question) : gratuits.
  • Templates « utility » (confirmations, rappels — notre cas principal) envoyés dans la fenêtre de service : gratuits ; hors fenêtre : facturés au tarif du marché, avec paliers de volume.
  • Templates « marketing » : toujours facturés.
  • L'ancien palier gratuit de 1000 conversations/mois n'existe plus.

Pour notre volume (essentiellement des confirmations/rappels « utility »), le coût attendu est faible mais pas nul — à chiffrer avec la grille tarifaire Meta à jour pour le marché France au moment de l'implémentation.

e. Étapes pour passer en production

  1. Créer/rattacher un compte Meta Business Manager et lancer la vérification d'entreprise (SIRET, justificatif d'adresse...).
  2. Créer le WABA et enregistrer le numéro de téléphone dédié.
  3. Générer un token d'accès système, le stocker en variable d'environnement du service app (WHATSAPP_ACCESS_TOKEN, WHATSAPP_PHONE_NUMBER_ID).
  4. Étendre message_templates : ajouter un statut d'approbation Meta et le nom du template soumis, pour chaque ligne channel = 'sms_whatsapp'.
  5. Soumettre les premiers templates « utility » à l'approbation Meta et attendre leur validation.
  6. Tester en mode sandbox (numéros de test Meta) avant de brancher le vrai numéro.
  7. Implémenter l'envoi effectif via la Cloud API, avec repli sur email si le client n'a pas de numéro ou si l'envoi WhatsApp échoue.
  8. Basculer en production une fois la recette validée, avec suivi mensuel des coûts.

Voir aussi docs/whatsapp-integration.md (même contenu, sources citées).