Votre Odoo CRM contient les données de tous vos clients, opportunités et factures. Mais sans connexion externe, votre équipe saisit tout manuellement, perd des leads et oublie des relances. n8n est l'outil qui connecte Odoo à votre site web, WhatsApp, Google Sheets et votre comptable — sans écrire une seule ligne de code.
Ce tutoriel est conçu pour les PME en Afrique francophone : Bénin, Sénégal, Côte d'Ivoire, Togo, Cameroun. Les exemples tiennent compte des réalités locales : Mobile Money, WhatsApp Business comme canal principal, connectivité variable, et Odoo Community (version gratuite) comme ERP de référence.
Pourquoi coupler n8n et Odoo change tout pour une PME africaine
Odoo est le logiciel de gestion le plus déployé en Afrique francophone. CRM, facturation, inventaire, ressources humaines — tout est centralisé. Pourtant, la majorité des PME béninoises et sénégalaises l'utilisent comme un carnet d'adresses numérique avec quelques fonctionnalités de facturation.
Le problème est structurel : Odoo est un outil de stockage et de suivi, pas d'automatisation. Vos commerciaux créent des leads à la main après chaque appel, votre comptable exporte des CSV pour les partager avec la direction, et personne n'est prévenu en temps réel quand un devis passe au statut "signé". n8n résout exactement ce problème.
| Situation | Sans n8n (Odoo seul) | Avec n8n connecté |
|---|---|---|
| Nouveau lead entrant | Saisie manuelle par le commercial (2-5 min par lead) | Créé automatiquement depuis formulaire web ou WhatsApp (0 min) |
| Devis signé | Email manuel au client, Google Sheets mis à jour à la main | WhatsApp + email envoyés instantanément, Sheets mis à jour |
| Facture impayée à J+7 | Relance oubliée ou effectuée trop tard | Message WhatsApp de relance envoyé automatiquement |
| Rapport hebdomadaire | Export CSV + copier-coller dans Excel chaque lundi | Google Sheets mis à jour chaque lundi à 7h00 sans intervention |
| Contact entrant WhatsApp | Non enregistré dans Odoo, perdu si pas de rappel | Lead créé automatiquement avec source = WhatsApp Business |
| Stock critique | Détecté trop tard lors d'une commande refusée | Alerte WhatsApp automatique au responsable achat |
Un revendeur de matériel informatique à Cotonou a connecté son formulaire web et son WhatsApp Business à Odoo CRM via n8n. Résultat en 90 jours : zéro saisie manuelle de leads, taux de conversion en hausse de 23 % (aucun lead perdu), et 3 heures récupérées chaque semaine pour l'équipe commerciale.
10 automatisations possibles avec n8n + Odoo
Ces 10 workflows couvrent 90 % des besoins d'une PME en Afrique francophone. Ils sont classés par ordre de complexité croissante — commencez par le premier et progressez à votre rythme.
- Formulaire web vers lead Odoo CRM — Chaque soumission (WordPress, Tally, Typeform) crée un lead dans Odoo en moins de 2 secondes.
- WhatsApp entrant vers lead Odoo — Un message WhatsApp Business déclenche la création d'un contact et d'une opportunité dans le CRM.
- Devis signé vers notification WhatsApp client — Le client reçoit un message de confirmation dès que le devis est validé dans Odoo.
- Facture créée vers email automatique — n8n récupère la facture Odoo et l'envoie par email via Gmail ou SendGrid, PDF inclus.
- Facture impayée vers relance automatique — A J+7 et J+14 après l'échéance, un message de relance WhatsApp part sans intervention humaine.
- Odoo CRM vers Google Sheets en temps réel — Leads, opportunités et clients synchronisés dans un Sheets partagé avec la direction.
- Commande Odoo vers SMS de confirmation — Dès qu'une commande est confirmée, le client reçoit un SMS avec numéro de commande et date de livraison.
- Rapport hebdomadaire automatique — Chaque lundi à 7h, un email avec les KPI CRM (leads, taux de conversion, CA) est envoyé au directeur commercial.
- Google Forms vers Odoo CRM — Idéal pour les salons et foires : les réponses au formulaire créent des leads Odoo avec tag "Salon XYZ".
- Stock bas vers alerte WhatsApp achat — Quand un produit passe sous le seuil critique dans Odoo Inventaire, n8n alerte le responsable achat.
Prérequis avant de commencer
Avant de créer votre premier workflow n8n vers Odoo, vérifiez que vous avez ces trois éléments en place. Ce guide suppose que vous pouvez accéder aux paramètres techniques d'Odoo avec un compte administrateur.
-
1Odoo version 16 ou 17 (Community ou Enterprise) Ce tutoriel est testé sur Odoo 16 et 17 Community. Le module CRM doit être installé (Applications → CRM). Verifiez que l'accès XML-RPC est actif dans Paramètres → Technique → Paramètres généraux → API.
-
2n8n installé — cloud ou self-hosted (VPS Ubuntu 20.04+) n8n Cloud gratuit jusqu'à 5 workflows actifs. n8n Self-hosted : installation Docker sur VPS Hetzner ou Hostinger a partir de 4 EUR/mois. La version self-hosted est recommandée pour la production — aucune limite de workflows, aucun cout de licence.
-
3Credentials Odoo : URL, nom de base de donnees, login et mot de passe Pour Odoo 16/17, vous pouvez aussi générer une clé API dans Paramètres → Mon profil → Clés API. Créez un utilisateur Odoo dédié à n8n (ex. n8n-bot@monentreprise.bj) — ne jamais utiliser le compte administrateur principal pour les intégrations.
# Installation n8n self-hosted avec Docker (Ubuntu 20.04+)
docker run -d \
--name n8n \
-p 5678:5678 \
-e N8N_BASIC_AUTH_ACTIVE=true \
-e N8N_BASIC_AUTH_USER=admin \
-e N8N_BASIC_AUTH_PASSWORD=votre_mot_de_passe_fort \
-e GENERIC_TIMEZONE=Africa/Porto-Novo \
-e NODE_ENV=production \
-v ~/.n8n:/home/node/.n8n \
--restart unless-stopped \
n8nio/n8n
La ligne GENERIC_TIMEZONE=Africa/Porto-Novo est indispensable. Le Bénin est en UTC+1 toute l'année (pas de changement d'heure). Sans ce paramètre, tous vos cron jobs se déclenchent avec 1 heure de décalage et les timestamps Odoo sont illisibles dans vos logs n8n.
Étape 1 — Connexion n8n vers Odoo : configurer les credentials
n8n dispose d'un nœud Odoo officiel depuis la version 0.187. Ce nœud utilise le protocole XML-RPC natif d'Odoo pour effectuer toutes les opérations CRUD (créer, lire, mettre à jour, supprimer) sur n'importe quel modèle Odoo — sans écrire une seule ligne de code.
Dans votre interface n8n, naviguez vers Credentials → New Credential → Odoo API. Remplissez le formulaire avec les informations de votre instance Odoo. Voici le détail de chaque champ :
Cliquez sur "Save and Test". n8n envoie une requête XML-RPC authenticate à votre Odoo. Si vous voyez "Connection successful", tout est en ordre. Erreur 401 : verifiez les identifiants et que le 2FA n'est pas actif sur ce compte. Timeout TCP : votre Odoo est derrière un pare-feu — autorisez l'IP de votre serveur n8n en sortie.
Étape 2 — Premier workflow : formulaire web vers lead Odoo CRM
C'est le workflow fondamental — maîtrisez-le avant de passer aux suivants. Un visiteur remplit votre formulaire de contact, n8n reçoit les données via webhook, et un lead est créé dans Odoo CRM en moins de 3 secondes avec toutes les informations du prospect.
Diagramme du workflow — 4 noeuds en série
Noeud 1 — Webhook (Trigger)
Créez un nouveau workflow dans n8n et ajoutez un nœud Webhook comme déclencheur. n8n génère une URL unique de type https://votre-n8n.domaine.com/webhook/abc123xyz — copiez cette URL. Dans votre formulaire HTML, WordPress (WPForms, Contact Form 7) ou Tally, configurez l'action d'envoi vers cette URL en méthode POST, format JSON.
Noeud 2 — Set (Formatage des données)
Le nœud Set nettoie et structure les données reçues. Correspondance entre les champs du formulaire et les champs Odoo CRM :
| Champ formulaire | Variable n8n | Champ Odoo CRM |
|---|---|---|
| Nom complet | {{ $json.name }} | contact_name |
{{ $json.email }} | email_from | |
| Telephone | {{ $json.phone }} | phone |
| Entreprise | {{ $json.company }} | partner_name |
| Message / Besoin | {{ $json.message }} | description |
| Source (valeur fixe) | "Formulaire Web" | source_id |
Noeud 3 — Odoo (Créer un lead)
Ajoutez le nœud Odoo. Selectionnez vos credentials créés à l'étape 1. Parametrez : Resource = Lead/Opportunity, Operation = Create. Dans le champ Name (sujet du lead), saisissez Nouveau lead — {{ $json.contact_name }} — {{ $now.toFormat('dd/MM/yyyy') }}. Mappez les autres champs depuis les variables du nœud Set.
Noeud 4 — WhatsApp (Notification au commercial)
Terminez avec un nœud WhatsApp Business pour alerter votre commercial en temps réel. Voici le template de message :
Nouveau lead CRM
Nom : {{ $('Odoo').item.json.contact_name }}
Email : {{ $('Odoo').item.json.email_from }}
Tel : {{ $('Odoo').item.json.phone }}
Entreprise : {{ $('Odoo').item.json.partner_name }}
Besoin : {{ $('Odoo').item.json.description }}
Voir dans Odoo :
https://erp.monentreprise.bj/odoo/crm
Étape 3 — Synchro bidirectionnelle Odoo vers Google Sheets
La majorite des dirigeants de PME en Afrique francophone suivent leurs KPI commerciaux dans Google Sheets, partagé avec la direction et les actionnaires. Cette synchronisation vous donne le meilleur des deux mondes : la puissance de gestion d'Odoo CRM et la lisibilité des tableaux de bord Google Sheets.
Sens 1 — Odoo vers Google Sheets (temps réel)
Dans Odoo 17, allez dans Paramètres → Technique → Automatisation → Actions automatisées. Créez une action sur le modèle "Piste/Opportunité (CRM)", déclenchée lors de la mise à jour du champ stage_id. L'action appelle un webhook POST vers votre workflow n8n avec les données de l'opportunité en JSON.
Chaque fois qu'un commercial déplace une opportunité dans la pipeline Odoo, les données sont envoyées en temps réel à n8n, qui met à jour le Google Sheets correspondant. Le directeur commercial voit les chiffres à jour sans jamais ouvrir Odoo.
Sens 2 — Google Sheets vers Odoo (import nocturne)
Pour les équipes terrain qui saisissent des contacts lors de foires et salons sans accès stable à Odoo, un workflow cron n8n se déclenche chaque nuit à 23h, récupère les nouvelles lignes du Sheets non encore importées, et crée les leads correspondants dans Odoo CRM.
// Noeud Function n8n — Filtre les lignes non importées
const rows = items.filter(item => item.json.statut !== 'importe');
return rows.map(row => ({
json: {
contact_name: row.json['Nom prospect'],
email_from: row.json['Email'],
phone: row.json['Telephone'],
partner_name: row.json['Entreprise'],
description: `Import Sheets - Foire ${row.json['Evenement']}`,
tag_ids: [parseInt(row.json['tag_id'])]
}
}));
Étape 4 — Notification WhatsApp quand un devis Odoo est signé
Au Bénin, au Sénégal et en Côte d'Ivoire, WhatsApp est le canal professionnel numéro un. Vos clients s'attendent à recevoir leur confirmation de commande sur WhatsApp, pas par email. Ce workflow envoie automatiquement un message WhatsApp dès qu'un devis passe au statut "Bon de commande" dans Odoo.
Diagramme du workflow
Créez une action automatisée Odoo sur le modèle "Commande de vente", déclenchée quand le champ state passe de draft ou sent à sale. Cette action appelle votre webhook n8n avec les données de la commande en JSON.
Template du message WhatsApp envoyé au client
Bonjour {{ $json.partner_name }},
Votre commande a bien été confirmée chez MonEntreprise Benin.
N° commande : {{ $json.name }}
Montant total : {{ $json.amount_total }} FCFA
Livraison : {{ $json.commitment_date }}
Votre facture vous sera transmise séparément.
Questions : +229 XX XX XX XX
Merci de votre confiance.
Pour envoyer des messages WhatsApp programmatiques via n8n, vous devez disposer d'un accès à l'API WhatsApp Business (Meta Cloud API). En Afrique francophone, les partenaires Twilio, 360dialog et Notchpay offrent un acces simplifié avec des tarifs adaptés. Comptez 0,05 à 0,08 USD par message de confirmation envoyé.
Workflow complet : cycle de vente automatisé — Lead vers Paiement
Voici le workflow cible pour tout directeur commercial de PME : du premier contact au paiement reçu, chaque étape est automatisée. Votre équipe se concentre sur la négociation et la relation client — tout le reste se fait sans intervention manuelle.
Cycle de vente — Odoo + n8n — PME Afrique francophone
Un prospect contacte l'entreprise via WhatsApp Business, le formulaire du site ou un email. n8n capte le message via webhook ou polling toutes les 5 minutes et extrait les données structurées.
Trigger : Webhook n8n / Schedulen8n crée instantanément le lead dans Odoo avec nom, email, telephone, source et description du besoin. Le commercial responsable reçoit une notification WhatsApp avec le résumé du lead.
Noeud : Odoo — Create Lead/OpportunityLe commercial prépare le devis dans Odoo. Quand il clique "Envoyer", n8n intercepte l'événement et envoie également une version condensée du devis par WhatsApp au prospect, avec le montant total et la date de validité.
Trigger Odoo : sale.order — state = sentUn cron n8n vérifie toutes les 6 heures les devis en statut "Envoyé" depuis plus de 48h et envoie un message de relance courtois par WhatsApp. Si le devis reste sans réponse après 96h, une alerte part au manager avec la liste des prospects non répondants.
Cron n8n toutes les 6h + noeud IF + WhatsAppLe prospect confirme. Odoo bascule le devis en commande. n8n déclenche en parallèle : confirmation WhatsApp au client, mise à jour Google Sheets "Pipeline commerciale", et création automatique du brouillon de facture dans Odoo.
Trigger Odoo : state = sale — Odoo Create Invoicen8n envoie la facture par email et WhatsApp avec un lien de paiement Mobile Money (MTN MoMo Benin, Moov Money, Wave via Notchpay ou FedaPay). A J+7 si la facture est toujours impayée, une relance automatique part. Le rapport hebdomadaire consolide tous les KPI dans Google Sheets.
Email + WhatsApp + Google Sheets + Cron relance J+7Pour les liens de paiement Mobile Money dans vos workflows n8n, intégrez Notchpay ou FedaPay via leur API REST et le nœud HTTP Request de n8n. Ces plateformes supportent MTN MoMo Bénin, Moov Money et Wave. Le délai de mise en place est de 2 à 5 jours ouvrés pour obtenir les credentials API.
Erreurs courantes et solutions
Voici les 8 problèmes les plus fréquents rencontrés par les PME béninoises et sénégalaises qui connectent n8n à Odoo, avec leurs causes et solutions précises.
| Erreur | Cause probable | Solution |
|---|---|---|
| 401 Authentication failed | Mauvais identifiants, 2FA actif, ou nom de base de données incorrect (sensible à la casse) | Solution Désactivez le 2FA pour le compte n8n-bot dans Odoo. Vérifiez le nom exact de la base dans Paramètres → Technique → Base de données. Testez les credentials avec "Save and Test" dans n8n. |
| Décalage horaire (UTC+1) | Variable d'environnement GENERIC_TIMEZONE non définie dans n8n | Solution Ajoutez GENERIC_TIMEZONE=Africa/Porto-Novo aux variables d'environnement Docker. Redémarrez le conteneur. Utilisez le noeud DateTime pour convertir les timestamps Odoo (UTC) en heure locale. |
| Webhook Odoo muet | L'action automatisée Odoo est inactive, ou l'IP n8n est bloquée par un pare-feu | Solution Verifiez que le toggle "Actif" est bien vert dans la liste des actions automatisées. Testez avec "Exécuter maintenant". Verifiez les logs Odoo (Paramètres → Technique → Journaux). Ouvrez le port de sortie vers l'IP de votre serveur n8n. |
| Caractères spéciaux corrompus | Encodage UTF-8 manquant dans les requêtes HTTP ou la base Odoo créée en Latin-1 | Solution Ajoutez le header Content-Type: application/json; charset=utf-8 dans les nœuds HTTP Request. Si la base Odoo est en Latin-1, migrez-la en UTF-8 via pg_dump et recréation. |
| Champ Odoo introuvable | Les champs personnalisés créés avec Odoo Studio ne sont pas listés automatiquement dans le nœud n8n | Solution Utilisez un nœud HTTP Request en XML-RPC avec le nom technique du champ (ex. x_origine_lead). Alternativement, utilisez l'opération "Get Fields" du nœud Odoo n8n pour lister tous les champs disponibles. |
| Workflow lent (10-30 secondes) | Latence reseau élevée entre le serveur n8n (Europe) et Odoo (hébergé localement à Cotonou) | Solution Hébergez n8n sur le même serveur ou le même datacenter qu'Odoo. Utilisez le batch processing n8n pour traiter plusieurs enregistrements en parallèle. Réduisez le nombre d'appels API en combinant les opérations. |
| Doublons de leads | Le webhook est déclenché deux fois (retry automatique ou formulaire soumis deux fois) | Solution Ajoutez un nœud IF avant la création du lead pour vérifier si un lead avec le même email existe déjà dans Odoo (opération "Search" du nœud Odoo). Si trouvé, mettez à jour au lieu de créer. |
| WhatsApp : message non livré | Le numéro de telephone ne comporte pas l'indicatif pays, ou le template WhatsApp n'est pas approuvé | Solution Normalisez les numéros avec un nœud Function : '+229' + phone.replace(/^0/, '') pour le Bénin. Pour les messages initiés par l'entreprise (hors fenêtre 24h), utilisez uniquement des templates approuvés par Meta. |
En cas de problème, activez le mode "Pin Data" : cliquez sur un nœud dans votre workflow, puis "Pin Data". Vous pouvez rejouer le workflow avec les mêmes données sans déclencher à nouveau votre formulaire ou webhook Odoo. Cette fonctionnalité économise des dizaines de minutes lors du débogage.
FAQ — 10 questions sur n8n + Odoo pour PME africaines
GENERIC_TIMEZONE=Africa/Porto-Novo (UTC+1, fuseau officiel du Bénin — pas de changement d'heure saisonnier). Dans vos workflows, utilisez le nœud DateTime pour convertir les timestamps Odoo en heure locale avant tout affichage ou envoi via WhatsApp.
/report/pdf/account.report_invoice), puis envoie l'email au client via le nœud SMTP, Gmail ou SendGrid avec la facture en pièce jointe. Ce workflow supprime les envois manuels et réduit les délais de paiement de 3 à 7 jours en moyenne selon les retours clients.
Pour aller plus loin
Si ce tutoriel vous a permis de comprendre la puissance de l'intégration n8n + Odoo, voici les ressources complémentaires pour approfondir chaque aspect de l'automatisation pour votre PME.
- Consultant n8n à Cotonou — Automatisation sur-mesure pour PME béninoises
- Consultant Odoo à Cotonou — Intégration, formation et support Odoo
- Qu'est-ce que n8n ? Guide complet pour comprendre l'outil
- Demander un audit de vos processus — Devis gratuit sous 24h
Votre Odoo mérite mieux qu'un outil isolé
Ce tutoriel vous donne les bases. Mais chaque PME a des processus spécifiques — secteur, équipe, outils déjà en place. En tant que consultant n8n et Odoo basé à Cotonou, je configure cette intégration sur-mesure pour votre entreprise en tenant compte de vos réalités : connectivité locale, Mobile Money, équipes terrain, multisite.
Faire configurer cette intégration par un expert En savoir plus sur les services n8n à Cotonou