Odoo LiveChat : Echangez avec vos contacts et clients

Configuration derrière un Reverse Proxy Apache

Mind And Go, Florent THOMAS

Odoo et son LiveChat Intégré

Odoo est un projet plus que reconnu pour le dynamisme de ses développements. Il est mature et toujours à la recherche de nouveautés intéressantes à intégrer dans son système. Certes le livechat n'est pas vraiment le plus récent des modules mais sa mise en oeuvre a été pour nous jalonné de quelques pièges.
La finalité des modules liés au chat interne dans Odoo permettent de dialoguer en ligne directement avec les employés connectés. Si aucune activité n'est repérée dans le back office pendant plus de 10 minutes, la partie publique est masquée, évitant ainsi des demandes intempestives qui ne trouveraient pas réponse, le pire des cas selon nous.
En interne, les salariés peuvent échanger entre eux comme sur un skype et créer des discussions groupées etc... Je trouve cette fonctionnalité très intéressante car elle évite de multiplier les comptes Skype pour tout le monde, et permet de recentre la communication autour de l'outil de gestion. En interne c'est donc vraiment un outil incitatif.
Le décor étant posé, voici les différents points de vigilance à considérer dans le déploiement de la solution.
Odoo text and image block
Odoo image and text block

Un peu de théorie pour bien comprendre

Dans sa version out of the box récupérée de github, Odoo descend avec un fichier de conf qui vous mets une instance en mode multithreading. Avec cet environnement, tout fonctionne très bien, c'est à dire que vous bénéficiez à la fois des tâches cron et du LiveChat le tout étant porté par l'instance principale tournant sur le port 8069.
Toutefois, cette configuration est loin d'être recommandée pour la production. Odoo préconise le passage en multiprocessing. Cela implique toutefois quelques modifications de configuration à prendre en compte.

Installation des dépendances

Pour travailler en multi processus (multiprocessing) sous python/Odoo quelques librairies doivent être ajoutées sur votre système, et qui plus est seuls les systèmes linux supportent ce fonctionnement. Dans votre terminal favori lancez les commandes suivantes en sudo/root (selon les distributions) :

 # pip install gevent # pip install greenlet # pip install psycogreen

Et voilà, le système est prêt pour le multiprocessing et la mise en place du livechat!

Configuration de l'instance Odoo

Comme expliqué aupravant, Odoo vient par défaut avec le multithreading. Pour changer cela, il faut modifier la configuration de base au travers du fichier de conf de votre instance. Odoo prévoit ce fonctionnement grâce à la modification de workers. Ce paramètre s'adpate aux paramètres de la machine qui supporte Odoo et est  également un paramètre de performance de votre instance.
Il faut aussi prendre soin de configurer les interfaces d'écoute de votre instance dans le fichier de configuration. Un exemple de configuration sur le github du projet.
Enfin, pensez à activer le proxy mode que nous utiliserons dans l'étape suivante.
Une fois ces modifications effectuées, relancez votre instance Odoo et jetez un oeil à vos processus, leur nombre est sensiblement diffférent et parmi ceux ci, un thread est dédié au port 8072 et est lancé via la commande openerp-gevent et non pas odoo.py. Nous allons voir ce que cela implique.

Odoo text and image block
Odoo image and text block

Unifier les processus via un reverse proxy Apache

Comme nous venons de le voir, plusieurs processus s'exécutent et répondent sur deux ports différents, les ports 8069 pour le classique Odoo et le port 8072 pour la communication via le livechat. La conséquence est que si l'on veut interagir via le livechat il faut attaquer le port 8072 et si on veut Odoo il faut attaquer le port 8069. Ce n'est pas vraiment un fonctionnement acceptable pour l'utilisateur final.

C'est pourquoi la dernière étape traite de la mise en place du proxy. Bien que la documentation se base principalement sur des proxy NginX, l'histoire fait que nous travaillons principalement sur du serveur Apache et j'avouerai également que la documentation a mis du temps à être d'un niveau acceptable pour aboutir rapidement.

Ci contre vous trouverez un configuration fonctionnelle pour un serveur Apache 2.2.x (Pour les 2.4.x, un peu d'adaptation pourra être nécessaire). Il faut bien tenir compte de l'ordre des directives :

  • Le premier bloc définit des options liées au mode proxy dans Apache

  • Le second bloc permet d'associer tout le traffic lié au longpolling (le livechat) vers le port 8072 dédié à cette activité

  • Le troisième bloc définit les accès au port 8069 c'est à dire l'interface classique de gestion d'Odoo

  • Enfin le dernier bloc gère les droits d'accès aux différents proxy

Voilà, nous avons fait le tour, tout est configuré pour faire fonctionner le livechat.

Conclusion

La partie technique étant terminée, il vous restera les modules à installer dans l'administration de Odoo, l'utilisateur Public à rendre actif et il faudra aussi lui affecter le mot de passe public. Vous serez ainsi prêts à tester le livechat intégré.

Vous l'aurez compris c'est un bon moyen de centraliser les échanges et d'interagir avec votre back-office. Mais le plus intéressant ce sont les quelques ressources internet qui indiquent les bénéfices liés à l'utilisation du LiveChat :

En attendant vous pourrez tester sur notre site internet les bénéfices de la communication en temps réel et également profiter de l'aperçu dans la vidéo ci contre.