Bot WhatsApp

mapping vers Slide OdooLearn

1- Architecture (vue d’ensemble)

WhatsApp (Meta Cloud API)

  •  WhatsApp (Meta Cloud API) → Webhook (Node/Python)
NLU + RAG

  •  NLU + RAG (vecteurs des contenus OdooLearn) → renvoie l’ID du bon slide (sous-chapitre) et/ou du channel (cours)
Connecteur Odoo

  •  Connecteur Odoo (JSON-RPC / XML-RPC) → récupère slide.id, channel_id, website_url
> Réponse WhatsApp avec un deep link

  •  Réponse WhatsApp avec un deep link qui ouvre directement le sous-chapitre dans OdooLearn (public/privé selon vos règles).
.

 .

About "Odoo Learning" 
  • Odoo eLearning est un système de gestion d'apprentissage convivial pour les apprenants et les formateurs. 
  • Nimporte quel contenu peux être charger , évaluez le progrès des étudiants et maintenez leur intérêt éveillé à tout moment.

En savoir plus


B- Ce qu’il faut mettre en place

1) Exposer/Indexer vos contenus OdoLearn pour le RAG


  • Dans Odoo, les leçons sont des channels (slide.channel) et les sous-chapitres des slides (slide.slide).
  • Exportez pour l’indexation RAG :
    slide.slide(id, name, description, channel_id, question_ids, html_content / text, tags, website_url, lang)
  • Vectorisez (OpenAI embeddings, Qdrant/pgvector/Weaviate).
  • Conservez une clé de mapping (par ex. x_whatsapp_ref) sur chaque slide pour des renvois stables (évite la casse si le titre change).
2) Déterminer le bon sous-chapitre à la volée (RAG)

 À chaque message WhatsApp, pipeline :

  1. Classifier l’intention “recommandation de formation”.
  2. RAG : retrouver le slide le plus pertinent + score.
  3. Si score < seuil → poser une question de précision (toujours utile sur WhatsApp).
  4. Sinon → construire le lien vers ce slide.
3) Construire le deep link vers un slide


  • Pour un site Odoo publié, vous avez généralement :
    • URL de cours (channel) : /slides/<slug-du-cours>-<channel_id>
    • URL de slide : souvent accessible via website_url du slide ou via un paramètre ?slide_id=<id> selon thème/route.
  • Stratégies robustes :
    • Lire website_url du slide.slide (quand disponible) via JSON-RPC.
    • Sinon, générer : /{lang}/slides/<slug-cours>-<channel_id>?slide=<slide_id> ou ?slide_id=<id> (selon vos routes).
  • Si le contenu est privé (portal), gérez l’accès :
    • Créez un utilisateur portal (si nécessaire) et envoyez un lien de login redirect vers la ressource, ou
    • Passez par un proxy (votre backend) qui vérifie la session WhatsApp ↔ utilisateur Odoo et redirige.
4) Connexion à Odoo (exemples)


JSON-RPC (Python)

XML-RPC (Python)    

5) Réponse WhatsApp (Meta)

 

  • Envoyez un message texte + bouton (template interactif) :
    “Je vous recommande : Semaine 3 → Composants → Courbes I-V. Accédez au sous-chapitre : <URL>”


  • Si vous utilisez des templates WhatsApp, configurez une variable pour l’URL.
6) Gestion des langues (FR/MG/EN)


  • Stockez lang sur le contact WhatsApp.
  • Dans l’index RAG, conservez les variantes multilingues ou faites une traduction “à la volée” du prompt et du snippet.
  • Construisez l’URL avec préfixe de langue si votre site Odoo l’emploie (/fr_FR/…).
7) Suivi & CRM

 

  • Logguez chaque recommandation dans Odoo CRM (lead/opportunity) avec : utilisateur WhatsApp, slide recommandé, horodatage, score RAG.
  • UTM dans l’URL (utm_source=whatsapp, utm_campaign=elearning) pour analytics.
Expérience mobile

Probablement le seul CRM avec une expérience mobile complète. Vous ne vous êtes jamais demandé comment cela fonctionnait ? Tout simplement, parce que cela fonctionne

Équipe d'assistance

Notre équipe d'assistance met tout en œuvre pour vous répondre aussi rapidement que les assistants vocaux.

Cas d’usage : public vs privé

CasAccèsCe qu’on fait
Cours publicsAnonymeEnvoyer directement website_url du slide.
Cours privés (Portal)Compte Portal requis1) Créer/associer un portal user à ce numéro WhatsApp 2) Envoyer un lien de login + redirect vers le slide, ou rediriger via un proxy qui vérifie le jeton.


Petites bonnes pratiques

 

  • Champ clé sur slide.slide (ex. x_whatsapp_ref) pour des liens stables.
  • Seuil de confiance RAG (ex. 0,75) + question de clarification si ambigu.
  • Cache des métadonnées des slides pour éviter d’interroger Odoo à chaque message.
  • Rate-limit côté WhatsApp et backoff côté Odoo.
  • Tests : créez un sandbox Odoo (duplication DB) et un numéro test WhatsApp.
Mini plan de mise en œuvre (1er sprint)


  1. Export OdoLearn → index vecteurs (slides + champs utiles).
  2. Webhook WhatsApp (Meta Cloud) + endpoint /recommend.
  3. Connecteur Odoo JSON-RPC (search_read slide par x_whatsapp_ref ou id).
  4. Génération des deep links + envoi WhatsApp.
  5. Journalisation dans Odoo CRM (lead “Recommandation formation”).
> Fournir un schéma d’API

  fournir un schéma d’API minimal (routes, payloads), un modèle de table pour le mapping RAG↔slides, et un exemple de message interactif WhatsApp prêt à coller.



En savoir plus