WhatsApp Coexistence API — le guide complet
WhatsApp pour Odoo Community sur la Cloud API de Meta. Gardez le numéro que vous utilisez déjà sur le téléphone, répondez depuis une boîte de réception dans Odoo et envoyez devis, factures et bons de livraison depuis n'importe quelle fiche. Fonctionne sur Community 17, 18, 19 et 20 sans rien d'Enterprise.
Odoo Community, on-premise. Odoo Online (SaaS) n'accepte pas les modules tiers. L'instance doit être accessible depuis Internet en HTTPS, car Meta livre les messages entrants à un webhook sur votre propre domaine. Rien d'Enterprise n'est nécessaire : ni application WhatsApp native, ni abonnement Enterprise. Le module fonctionne aussi sur Enterprise, mais il est conçu pour Community.
Une connexion WABA API n'a pas besoin de Tech Provider : votre propre application développeur Meta suffit, et rien ne transite par RC Studio.
Gardez votre numéro sur le téléphone. Ajoutez Odoo par-dessus.
La voie habituelle vers la WhatsApp Cloud API vous demande de renoncer à votre numéro : une fois migré, il cesse de fonctionner dans l'application WhatsApp Business du téléphone. La Coexistence est la réponse officielle de Meta, et ce module l'apporte à Odoo Community. Vous scannez un QR code et, à partir de cet instant, le même numéro fonctionne des deux côtés : vos équipes continuent de répondre depuis le téléphone, et Odoo voit tout.

Ce que vous obtenez
- Coexistence, ou connexion WABA API. Connectez le numéro de votre application WhatsApp Business par QR code, ou une connexion WABA API avec votre propre application Meta. Plusieurs numéros dans une même base, chacun avec ses opérateurs et ses sociétés.
- Une boîte de réception faite pour répondre. Recherche, filtres non lus, les miens et clos, sélecteur par numéro, mises à jour en direct, accusés de réception, médias, réponses citées, réactions, attribution, et les messages envoyés par votre équipe depuis le téléphone repris dans le même fil.
- Des documents depuis n'importe quelle fiche. Une action Envoyer par WhatsApp sur les contacts, devis, factures, livraisons, pistes, tâches, événements, rendez-vous, commandes d'achat et commandes du point de vente. Le modèle se remplit à partir de la fiche et le rapport PDF part en en-tête du document.
- Des modèles synchronisés avec Meta. En-tête, corps, pied de page et boutons tels que Meta les définit. Chaque variable se relie à un champ de la fiche, à une valeur fixe, à une valeur demandée au moment de l'envoi ou au lien du portail. Une bibliothèque d'exemples pour les applications que vous avez installées.
- Envois automatiques. Une action serveur Envoyer un modèle WhatsApp déclenchable depuis n'importe quelle règle d'automatisation.
- Rôles, désinscription, nouvelles tentatives. Les opérateurs ne voient que les numéros auxquels ils sont affectés. Un client qui répond STOP est mis en liste noire. Les envois échoués sont retentés, et chaque message conserve son statut Meta et son code d'erreur. Rien n'est jamais purgé.
Une visite en cinq écrans
Plusieurs numéros dans une seule boîte de réception, l'icône qui les distingue, le filtre par numéro et un modèle envoyé depuis un devis.





Prérequis
| Prérequis | Détail |
|---|---|
| Hébergement | Odoo Community 17.0, 18.0, 19.0 ou 20.0, on-premise. Non disponible sur Odoo Online. |
| URL HTTPS publique | Meta livre les messages entrants à un webhook sur votre domaine. |
| Connexion à Meta | L'une des deux options ci-dessous, pas les deux. Chaque numéro professionnel en utilise une ; une base peut mélanger les deux. |
| Option A · Coexistence | Une application Tech Provider approuvée par Meta pour WhatsApp Business App Onboarding : celle de RC Studio (clé de licence), la vôtre ou celle d'un tiers. Le numéro doit être actif dans l'application WhatsApp Business depuis au moins 7 jours, sur un compte professionnel, Android 2.24.17+ ou iOS 24.17+. Aucune application développeur Meta n'est nécessaire avec le service RC Studio ; elle l'est si vous êtes votre propre Tech Provider. |
| Option B · Connexion WABA API | Votre propre application développeur Meta avec le produit WhatsApp, un WhatsApp Business Account et un numéro enregistré sur la Cloud API. Ni Tech Provider ni licence nécessaires ; le numéro cesse de fonctionner dans l'application du téléphone. |
| Dépendances Python | phonenumbers et requests. |
| Dépendances Odoo | Uniquement Discussion, Validation des numéros de téléphone et Règles d'automatisation, toutes dans Community. Aucun autre module payant n'est nécessaire. |
| Notes vocales (facultatif) | Rien à installer sur le serveur pour Chrome, Edge et Firefox : ils enregistrent en Opus et la boîte de réception l'emballe en message vocal OGG/Opus, celui que WhatsApp lit comme une note vocale. Safari ne sait pas enregistrer en Opus : les opérateurs sous Safari ont donc besoin de ffmpeg installé sur le serveur Odoo ; sans lui, le bouton micro l'explique. Rien d'autre ne dépend de ffmpeg. |
Deux façons d'avoir le droit d'utiliser la Coexistence
La Coexistence WhatsApp se met en place via l'Embedded Signup de Meta, qui ne fonctionne qu'à travers une application enregistrée chez Meta comme Tech Provider et approuvée pour la fonctionnalité WhatsApp Business App Onboarding. Une simple application développeur Meta ne peut pas le faire. Il y a deux façons de remplir cette condition :
Avec une licence RC Studio. Vous achetez une clé de licence, vous la collez dans Odoo et vous vous connectez en scannant un QR code. Rien à enregistrer chez Meta, aucune revue d'application, aucun domaine à déclarer. La licence est facturée séparément de ce module et n'est pas comprise dans son achat.
Avec votre propre application Tech Provider, ou celle d'un tiers. Ce module fonctionne avec n'importe laquelle. Vous saisissez l'App ID, l'App Secret et le Login Configuration ID que votre fournisseur vous remet, et la connexion passe par son application Meta plutôt que par celle de RC Studio. Ces identifiants sont émis par ce fournisseur, pas par RC Studio. RC Studio ne peut pas les obtenir à votre place et n'est pas responsable si votre fournisseur ne vous les remet pas, les révoque, les facture en supplément, ou n'a pas été approuvé par Meta pour la fonctionnalité WhatsApp Business App Onboarding. Vérifiez auprès de votre fournisseur que vous recevrez bien un App ID, un App Secret et une Login Configuration de coexistence avant d'acheter ce module.
Installer le module
- Assurez-vous que les paquets Python
phonenumbersetrequestssont accessibles à Odoo. Tous deux font partie durequirements.txtd'Odoo, donc une installation standard les possède déjà ; Odoo refuse d'installer le module s'ils manquent (un module Odoo ne peut pas lancer pip à votre place). Si besoin, installez-les dans l'environnement où tourne Odoo et redémarrez Odoo. - Décompressez le module dans votre dossier addons et redémarrez le service Odoo.
- Paramètres → Applications → Mettre à jour la liste des applications, cherchez « WhatsApp » et installez WhatsApp Coexistence API.
- Donnez à vos utilisateurs le droit d'accès WhatsApp / Opérateur ou Responsable.
Mode A · Coexistence avec une licence RC Studio (recommandé)
Toute la mise en place tient en trois gestes : coller la clé, cliquer sur Connecter, scanner le QR code. Rien à enregistrer chez Meta, aucune revue d'application et aucun domaine à déclarer, car la fenêtre Facebook s'ouvre depuis la page de RC Studio.
Les trois écrans que vous voyez réellement, en mode licence



Meta n'autorise qu'une seule synchronisation des contacts et une seule de l'historique par raccordement. Si elles échouent, le seul moyen de les refaire est de déconnecter le numéro et de le reconnecter avec un nouveau QR code.
Mode B · Coexistence avec votre propre application Tech Provider
Cela fonctionne avec votre propre application ou avec celle de n'importe quel autre fournisseur. Dans les deux cas, l'application doit être approuvée par Meta pour la fonctionnalité WhatsApp Business App Onboarding, et l'App ID, l'App Secret et le Login Configuration ID vous sont remis par ce fournisseur. RC Studio ne peut pas les obtenir et n'est pas responsable si le fournisseur ne les fournit pas.
- Choisissez Coexistence et Votre propre application Meta Tech Provider.
- Renseignez App ID, App Secret et Login Configuration ID de votre application.
- Ajoutez votre domaine Odoo à l'application Meta, dans App domains et Allowed domains for the JavaScript SDK. Cette étape n'a pas d'API et doit être faite à la main pour chaque domaine.
- Cliquez sur Se connecter via Coexistence et poursuivez avec le QR code.
En mode B il n'y a pas de fenêtre RC Studio : la fenêtre Facebook s'ouvre directement depuis votre propre page Odoo, sur votre propre application.
Mode C · Connexion WABA API
Aucun Tech Provider nécessaire. Dans votre application développeur Meta avec le produit WhatsApp, copiez l'App ID, l'App Secret, le WhatsApp Business Account ID, le Phone Number ID et un Access Token permanent (un jeton d'utilisateur système avec les permissions WhatsApp) dans le numéro, choisissez Connexion WABA API (Cloud API) et cliquez sur Tester la connexion.

Webhook
Chaque numéro a sa propre Callback URL et son Verify Token dans l'onglet Webhook. En mode coexistence, Odoo les enregistre auprès de Meta lors du raccordement du numéro. Avec une connexion WABA API, cliquez sur S'abonner au webhook pour laisser Odoo les enregistrer sur le WhatsApp Business Account, ou collez-les à la main dans l'application Meta sous WhatsApp → Configuration → Webhooks et abonnez-vous aux champs messages et message_template_status_update. Les livraisons sont vérifiées par la signature de Meta (votre App Secret) ou, en mode licence, par l'URL secrète que seuls Meta et votre Odoo connaissent.
Modèles
Cliquez sur Synchroniser les modèles sur un numéro connecté pour importer les modèles approuvés chez Meta, ou sur Charger des modèles d'exemple pour obtenir des brouillons correspondant aux applications que vous avez installées (devis envoyé, commande confirmée, facture disponible, livraison en route, inscription à un événement, rappel de rendez-vous, reçu, bon de commande, suivi de piste et de tâche). Relisez un brouillon, reliez ses variables dans l'onglet Variables et cliquez sur Soumettre à Meta ; Odoo apprend le résultat de la revue par le webhook.

Rôles
| Rôle | Ce qu'il voit et fait |
|---|---|
| Opérateur | La boîte de réception, les conversations des numéros sur lesquels il est listé (un numéro sans opérateur est ouvert à tous les opérateurs), l'action Envoyer par WhatsApp. Les modèles en lecture seule. |
| Responsable | Les numéros et leurs identifiants, les modèles, le journal des messages, les paramètres et toutes les conversations. |
La boîte de réception
WhatsApp → Boîte de réception. Les conversations à gauche, activité la plus récente en premier, avec un champ de recherche, les filtres Toutes / Non lues / À moi / Closes et, dès qu'il y a plus d'un numéro, un sélecteur. Le fil est à droite : répondez par texte, emoji et pièces jointes, citez un message, et voyez les accusés de réception.
Quand rien n'est saisi, le bouton Envoyer devient un micro : appuyez pour enregistrer une note vocale ; le client la reçoit comme un message vocal, avec l'icône de micro et votre photo de profil, lu directement dans la bulle et non comme un fichier à télécharger. La seule chose qu'aucun envoi par API ne peut ajouter, c'est la forme d'onde, que seul le téléphone qui enregistre calcule. Chrome, Edge et Firefox n'ont besoin de rien ; sous Safari, le serveur doit avoir ffmpeg. Les notes vocales envoyées par le client se lisent dans le fil.
Les nouveaux messages arrivent en direct ; l'icône WhatsApp dans la barre du haut indique combien de conversations attendent. M'attribuer et Clore gardent la liste propre ; le contact et les documents depuis lesquels le client a été contacté sont à un clic.

Une conversation par client et par numéro
Tout ce qu'un client écrit et tout ce que vous lui envoyez — depuis la boîte de réception, depuis un devis ou depuis une automatisation — arrive dans le même fil de ce numéro professionnel. Le contact est reconnu par son numéro de téléphone ; si le client écrit à deux de vos numéros, cela fait deux fils, volontairement, distingués par l'icône du numéro. En mode coexistence, les réponses envoyées par votre équipe depuis le téléphone apparaissent dans le fil avec la mention « depuis le téléphone ».
Plusieurs numéros, une seule boîte de réception
Donnez à chaque numéro professionnel une icône sur sa fiche. L'icône apparaît en pastille sur chaque conversation de ce numéro, de sorte qu'un fil commercial et un fil de support avec le même client se distinguent d'un coup d'œil. Le sélecteur en haut de la liste affiche tous les numéros ou un seul, et les opérateurs ne voient que les numéros sur lesquels ils sont listés.



Envoyer un document
Sur un contact, un devis, une facture, un bon de livraison, une piste, une tâche, une inscription à un événement, un rendez-vous, un bon de commande ou un reçu, ouvrez le menu Action et choisissez Envoyer par WhatsApp ; le même raccourci se trouve à côté de chaque champ téléphone. Choisissez le numéro et le modèle, renseignez les valeurs que le modèle demande, vérifiez l'aperçu et envoyez. Le rapport PDF du modèle part comme document, et une note est laissée dans le chatter de la fiche avec un lien vers la conversation. Depuis une vue liste, sélectionnez plusieurs fiches et la même action les traite toutes.

Envois automatiques
Dans Paramètres → Technique → Règles d'automatisation, ajoutez une action de type Envoyer un modèle WhatsApp et choisissez le modèle. Chaque fiche qui remplit la condition reçoit son message, rempli à partir de la fiche, sans que personne ne clique.
La fenêtre de 24 heures et la désinscription
Vingt-quatre heures après le dernier message du client, WhatsApp n'autorise plus que les modèles approuvés. Le champ de saisie le signale et propose Envoyer un modèle, ce qui rouvre la conversation. Si un client répond STOP, UNSUBSCRIBE ou BAJA (la liste se modifie dans les Paramètres), le numéro passe en liste noire et plus rien ne lui est envoyé tant qu'il n'en est pas retiré.
États et nouvelles tentatives
WhatsApp → Journal des messages conserve chaque message avec son état : en file, envoyé, remis, lu ou en échec, avec le code d'erreur de Meta le cas échéant. Les échecs temporaires sont retentés par un cron toutes les cinq minutes ; les définitifs peuvent être renvoyés depuis la liste. Les messages ne sont jamais purgés : le journal et les conversations sont votre historique.

Questions fréquentes
Dois-je être Tech Provider chez Meta ? Uniquement pour la coexistence. L'Embedded Signup de Meta pour l'application WhatsApp Business passe par une application Tech Provider approuvée pour WhatsApp Business App Onboarding. Vous pouvez utiliser l'application de RC Studio avec une clé de licence, vous enregistrer vous-même comme Tech Provider, ou passer par un autre fournisseur qui vous remet l'App ID, l'App Secret et la Login Configuration. Une connexion WABA API n'a besoin de rien de tout cela : votre propre application développeur Meta suffit.
Est-ce que ça marche sur Odoo Online (SaaS) ou sur Odoo.sh ? Odoo Online n'accepte pas les modules tiers, donc non. Ce module est conçu pour Odoo Community on-premise. Il ne dépend que de modules Community, il s'installe donc aussi sur un projet Odoo.sh ; le support d'Odoo.sh ne fait cependant pas partie de ce que nous testons.
Le téléphone continue-t-il de fonctionner après la connexion ? Oui, c'est exactement ce que veut dire coexistence. Le numéro reste actif dans l'application WhatsApp Business ; Odoo reçoit tout par la Cloud API et peut aussi envoyer. Les messages envoyés depuis le téléphone sont repris dans Odoo.
Où vivent les conversations ? Discussion est-elle utilisée ? Dans les modèles de conversation et de message propres au module, affichés dans sa propre boîte de réception. Discussion n'est pas utilisée pour les fils WhatsApp.
Mes données passent-elles par RC Studio ? Non. Dans les trois modes, les messages circulent directement entre Meta et votre Odoo. Avec une licence RC Studio, notre service n'intervient qu'au raccordement d'un numéro : il échange l'autorisation de Meta contre le jeton d'accès, le remet à votre Odoo et déclare l'adresse de votre Odoo auprès de Meta comme destination des livraisons. À partir de là, Meta livre chaque message directement à votre instance, et l'envoi part de votre Odoo vers Meta avec votre propre jeton. RC Studio ne reçoit ni ne conserve le contenu des messages ; il garde seulement une copie chiffrée du jeton et les données de connexion du numéro jusqu'à ce que vous le déconnectiez.
Combien Meta facture-t-il les messages ? Meta facture par message remis. Les messages modèles sont facturés à un tarif qui dépend de la catégorie (marketing, utilitaire, authentification) et du pays du client. À partir du 1er octobre 2026, Meta facture aussi les réponses libres envoyées dans la fenêtre de 24 heures (celles que votre équipe tape dans la boîte de réception), au même tarif que les messages utilitaires et d'authentification de ce pays ; jusque-là elles sont gratuites. La réception reste gratuite. Les tarifs exacts sont sur la page tarifaire de Meta. RC Studio ne facture pas au message.
Puis-je envoyer un PDF ? Une position ? Une note audio ? Depuis la boîte de réception, dans la fenêtre de 24 heures : texte, images, vidéos, audio, documents et réponses citées. Depuis une fiche : un modèle dont l'en-tête de document est le rapport PDF de la fiche, ou un fichier fixe. Les positions, autocollants, réactions et cartes de visite sont reçus et affichés ; en sortie, une position n'est possible qu'en en-tête de modèle.
Plusieurs numéros, plusieurs sociétés ? Oui. Chaque numéro professionnel a ses propres opérateurs et sociétés autorisées, ses propres modèles et ses propres conversations. Les opérateurs ne voient que les numéros sur lesquels ils sont listés.
Quelles versions d'Odoo sont prises en charge, et en quelles langues parle l'interface ? Odoo Community 17.0, 18.0, 19.0 et 20.0 ; chaque version s'achète séparément sur la boutique Odoo. L'interface est livrée en anglais, espagnol, portugais, italien, français, allemand et arabe.
Le support est-il inclus ? Oui, pour toute personne qui achète le module. Les bugs sont corrigés sans frais ; les nouvelles fonctionnalités et la configuration côté Meta sont devisées séparément.
Support
Le support est inclus pour toute personne qui achète le module. L'installation, la configuration côté Meta et la licence Tech Provider de RC Studio peuvent être contractées séparément. Utilisez la page de support de ce module sur Odoo Apps pour tout ce qui concerne votre achat : elle nous parvient directement et garde l'échange rattaché à votre licence.
Transit des données : les messages et les fichiers circulent directement entre votre instance Odoo et la Cloud API de Meta, quel que soit le mode de connexion. Avec une licence RC Studio, le service Tech Provider de RC Studio n'intervient qu'au raccordement du numéro : il émet le jeton d'accès Meta et déclare l'adresse de votre Odoo comme destination des livraisons. RC Studio ne reçoit ni ne conserve le contenu des messages. Politique de confidentialité.
WhatsApp est une marque de Meta Platforms, Inc. RC Studio n'est ni affilié à Meta, ni approuvé ou sponsorisé par Meta. Ce module est publié sous la licence Odoo Proprietary License v1.0 (OPL-1).
Connectez votre numéro sans le retirer du téléphone
Votre équipe continue de répondre depuis la même application, et chaque conversation arrive dans Odoo.
Tarifs