Intégrations / ERP / Odoo
Guide d’intégration d’Odoo à SkyPlanner APS pour l’ordonnancement de la production
Ce guide explique aux partenaires Odoo, aux développeurs et aux responsables informatiques comment relier Odoo Manufacturing à SkyPlanner APS. Pour comprendre l’intérêt de cette intégration et ce que fait déjà le bouton Plan d’Odoo, consultez la page sur l’ordonnancement de la production avec Odoo et l’article Odoo propose-t-il un ordonnancement de production qui respecte la capacité réelle des machines et du personnel ?.
Odoo reste le système de référence pour les produits, les nomenclatures, les opérations, les ordres de production, les stocks et le calcul des coûts. SkyPlanner élabore le planning à partir de ces données grâce à son moteur Arcturus. Les échanges avec Odoo se font dans les deux sens :
- Les ordres de production, les ordres de fabrication, les opérations des nomenclatures, les postes de charge et les commandes fournisseurs sont importés.
- Les dates de début et de fin prévues ainsi que les postes de charge sont réécrits dans
mrp.workorder. - L’avancement et les temps saisis sont renvoyés vers Odoo sous forme de Time Logs.
- Les webhooks SkyPlanner transmettent les modifications du planning dès qu’elles surviennent.
Lors de la mise en place, l’équipe SkyPlanner configure l’intégration via l’API externe standard d’Odoo en fonction de votre version, de votre hébergement et de vos personnalisations. Elle en assure ensuite le support après la mise en production. Ce guide s’adresse aux partenaires et aux développeurs qui souhaitent participer au projet ou développer eux-mêmes une intégration à partir de l’API REST documentée de SkyPlanner (référence de l’API). La gestion des produits, des matières et des commandes fournisseurs est décrite dans la documentation publique de SkyPlanner.
Avant de commencer : vérifier l’offre Odoo et l’hébergement
Commencez par identifier l’environnement Odoo du client. C’est lui qui détermine la marche à suivre.
| Configuration | API externe | Modules personnalisés | Solution à retenir |
|---|---|---|---|
| Odoo Online, One App Free ou Standard | Non | Non | CSV/XLSX, ou passage à l’offre Custom |
| Odoo Online, offre Custom | Oui | Non | API externe |
| Odoo.sh (offre Custom) | Oui | Oui | API externe, module facultatif |
| Sur site, Community ou Enterprise | Oui | Oui | API externe, module facultatif |
La documentation de l’API Odoo précise que l’accès à l’API externe est « only available on Custom Odoo pricing plans » (disponible uniquement avec les offres Odoo Custom), et non avec One App Free ou Standard. La page des tarifs indique que l’offre Standard est hébergée sur Odoo Online « without custom modules » (sans modules personnalisés). Vérifiez ces points dès les premiers échanges, pas au milieu du développement.
Les possibilités d’intégration d’Odoo
| Option | Versions | Authentification | Rôle dans l’intégration de l’ordonnancement |
|---|---|---|---|
API externe JSON-2 : POST /json/2/<model>/<method> | Nouveauté de la version 19.0 | Clé API dans Authorization: bearer <key>, en-tête facultatif X-Odoo-Database | Choix par défaut pour les nouvelles intégrations : search_read pour la lecture, write pour la réécriture des dates |
XML-RPC / JSON-RPC externes : /xmlrpc/2, /jsonrpc, services common, object | Jusqu’à la version 19.0 ; suppression prévue | common.authenticate avec identifiant et mot de passe ou clé API, puis execute_kw | Nécessaire pour les clients utilisant les versions 16.0 à 18.0 |
| Contrôleurs personnalisés dans un module | Toutes | Définie par route, par exemple auth='bearer' | Données regroupées : un ordre de production et ses ordres de fabrication en un seul appel |
| Règles d’automatisation : « Send Webhook Notification » (envoyer une notification webhook) | Documenté à partir de la version 17.0 | Requête POST sortante vers une URL | Envoi à la création ou à la modification des ordres de production et des ordres de fabrication |
| Import d’enregistrements (CSV, XLSX) et export | Toutes | Session utilisateur | Données d’essai et chargements ponctuels de données de base |
Anticipez cette suppression dès maintenant. Odoo a prévu de supprimer XML-RPC et JSON-RPC dans Odoo 22 (automne 2028) et Odoo Online 21.1 (hiver 2027). Pour la version 19.0, développez sur JSON-2. Pour les bases plus anciennes, isolez les appels RPC derrière un adaptateur unique : la montée de version ne nécessitera ainsi qu’une seule modification. Les contrôleurs personnalisés utilisant @route(type='jsonrpc') ne sont pas concernés par cette suppression.
Authentification
Créez un utilisateur dédié à l’intégration, avec des droits de lecture sur Manufacturing et Inventory et des droits d’écriture sur les ordres de fabrication. Générez sa clé dans Preferences > Account Security > New API Key. En version 19.0, les clés sont valides pendant trois mois au maximum. Le middleware doit donc gérer leur rotation et déclencher une alerte en cas d’échec d’authentification. Sans ces mécanismes, une clé expirée interrompt la synchronisation sans que personne ne le remarque. Côté SkyPlanner, l’API REST utilise JWT : le middleware conserve donc les deux jeux d’identifiants.
Chaque appel JSON-2 s’exécute dans sa propre transaction SQL. Une écriture répartie sur plusieurs appels n’est donc pas atomique. Effectuez les écritures ordre de fabrication par ordre de fabrication et journalisez chaque résultat.
Événements
Odoo transmet les modifications au moyen de règles d’automatisation. Une règle sur mrp.production ou mrp.workorder, avec le déclencheur On create and edit (à la création et à la modification) et l’action « Send Webhook Notification » (envoyer une notification webhook), envoie une requête POST contenant les champs sélectionnés vers une URL. Créez cette règle dans Studio ou, en mode développeur, depuis le formulaire Automation Rules (règles d’automatisation). Complétez-la par une interrogation périodique avec search_read sur write_date pour récupérer les imports et les modifications que la règle n’a pas captés. Dans l’autre sens, les webhooks SkyPlanner transmettent les changements de planning et d’état dès qu’ils se produisent.
Les noms de champs varient selon les versions. En 19.0, chaque base répertorie ses modèles, champs et méthodes à l’adresse /doc ; sur les versions antérieures, appelez fields_get. Établissez les correspondances à partir de ces informations, pas de mémoire.
Correspondance des données : d’Odoo vers SkyPlanner
| Modèle Odoo | Objet SkyPlanner | Sens | Fréquence |
|---|---|---|---|
product.product / product.template (default_code, uom_id, qty_available) | Produit ou matière | Odoo → SkyPlanner | Chargement initial, puis chaque jour ou à chaque modification |
mrp.bom (product_tmpl_id, product_qty, produce_delay), mrp.bom.line (product_id, product_qty, operation_id), mrp.bom.byproduct | Produit à plusieurs niveaux, besoins en matières par étape | Odoo → SkyPlanner | À chaque modification |
mrp.routing.workcenter (onglet Operations : workcenter_id, sequence, time_mode, time_cycle_manual, blocked_by_operation_ids) | Étapes de fabrication avec leur séquence et leur temps d’exécution | Odoo → SkyPlanner | À chaque modification |
mrp.workcenter (resource_calendar_id, time_efficiency, time_start, time_stop, alternative_workcenter_ids) | Poste de travail, efficacité, réglage et nettoyage, postes de travail de remplacement | Odoo → SkyPlanner, puis gestion dans SkyPlanner | Chargement initial |
mrp.workcenter.capacity (capacity) | Pièces par cycle, temps de réglage et de nettoyage propres à chaque produit | Odoo → SkyPlanner | Chargement initial |
resource.calendar, resource.calendar.attendance, resource.calendar.leaves | Horaires d’équipe et absences | Odoo → SkyPlanner | Chargement initial, puis à chaque modification des absences |
mrp.production (product_id, product_qty, date_deadline, priority, state, workorder_ids) | Ordre avec date d’échéance et priorité | Odoo → SkyPlanner | Webhook à la confirmation, complété par une interrogation périodique |
mrp.workorder (operation_id, workcenter_id, duration_expected, state) | Opération sur un poste de travail | Odoo → SkyPlanner | Webhook, complété par une interrogation périodique |
stock.quant, stock.move (mouvements de composants) | Stock disponible et besoins en matières pour un ordonnancement tenant compte des disponibilités matière | Odoo → SkyPlanner | À intervalles réguliers, par exemple toutes les 15 à 60 minutes |
purchase.order (partner_id, state), purchase.order.line (product_id, product_qty, date_planned, qty_received) | Commandes fournisseurs et matières attendues, disponibles à la date de livraison prévue | Odoo → SkyPlanner | Webhook à la confirmation ou à la modification d’une commande fournisseur, complété par la même interrogation périodique |
| Début et fin prévus, poste de travail | mrp.workorder.date_start, date_finished, workcenter_id | SkyPlanner → Odoo | À chaque modification du planning, via un webhook SkyPlanner |
| Mobile Confirmations, relevés de temps | mrp.workcenter.productivity (Time Logs : workcenter_id, workorder_id, date_start, date_end, loss_id) | SkyPlanner → Odoo | À chaque confirmation |
| Quantité produite, opération terminée | qty_producing sur l’ordre de fabrication, puis button_finish ; button_mark_done sur l’ordre de production | SkyPlanner → Odoo, ou saisie dans Odoo Shop Floor | À chaque confirmation |
Schémas d’intégration
Les données de base d’abord.
Chargez les postes de charge et les calendriers, puis les produits, les nomenclatures et les opérations, qui font référence aux postes de charge. Pendant l’essai de 30 jours, ces mêmes listes sont importées à partir d’exports CSV. L’outil d’import et d’export d’Odoo fonctionne dans toutes les vues de liste.
Synchronisation des ordres.
Importez les ordres de production à l’état confirmed et progress avec leurs ordres de fabrication. Excluez les ordres de production en brouillon ou traitez-les comme une demande provisoire. Les sous-ensembles disposant de leur propre nomenclature peuvent être transmis sous forme d’ordres de production enfants distincts ; Odoo planifie chaque ordre de production séparément. Faites-les correspondre aux sous-produits SkyPlanner pour que les sous-ensembles soient terminés avant le démarrage de l’ordre parent.
Réécriture du planning dans Odoo.
Lorsque le planning change, un webhook SkyPlanner déclenche l’intégration, qui appelle la méthode ORM write sur chaque mrp.workorder concerné. Sur Odoo 19.0, cela représente une requête JSON-2 par ordre de fabrication :
« POST /json/2/mrp.workorder/write Authorization: bearer <api-key> {"ids": [4711], "vals": {"date_start": "2026-11-03 06:00:00", "date_finished": "2026-11-03 09:30:00", "workcenter_id": 7}} «
JSON-2 reçoit chaque argument de méthode par son nom, ainsi que ids et context : l’argument de write(vals) est donc transmis sous la clé vals. Sur les versions 16.0 à 18.0, le même appel passe par execute_kw(db, uid, key, 'mrp.workorder', 'write', [[4711], vals]) via XML-RPC ou JSON-RPC. En 16.0, les clés sont date_planned_start et date_planned_finished. Les dates et heures sont transmises en UTC. Quelques règles permettent de fiabiliser l’écriture :
- Envoyez les deux dates dans le même appel.
- N’ajoutez
workcenter_idque si le moteur a choisi une machine de remplacement. - Modifiez uniquement les champs d’ordonnancement, jamais les quantités ni les nomenclatures.
L’écriture des dates déplace la réservation du poste de charge dans Odoo. Les vues de planification d’Odoo affichent ainsi le planning de SkyPlanner.
Remontée des données de l’atelier vers Odoo. Les opérateurs enregistrent leur travail dans SkyPlanner Mobile Confirmations. Pour chaque confirmation, l’intégration appelle create sur mrp.workcenter.productivity (JSON-2 : POST /json/2/mrp.workcenter.productivity/create avec vals_list). Elle renseigne workorder_id, workcenter_id, date_start, date_end et un loss_id de type Productive. Les temps et les coûts de main-d’œuvre sont alors enregistrés dans Odoo.
Lorsqu’une opération est terminée, l’intégration renseigne la quantité produite et appelle button_finish sur l’ordre de fabrication. Une fois le dernier ordre de fabrication terminé, l’ordre de production est prêt pour l’appel à button_mark_done. Chaque confirmation n’est enregistrée qu’une fois, et l’identifiant de son enregistrement Odoo est conservé avec le relevé de temps SkyPlanner. Ainsi, une nouvelle tentative d’envoi du webhook ne crée jamais de second Time Log.
Dans les usines qui utilisent l’application Enterprise Shop Floor, le flux est inversé : SkyPlanner lit l’état des ordres de fabrication et qty_produced, puis Autopilot recalcule automatiquement le planning lorsque la production évolue.
Système maître. Consignez les règles par écrit avant la mise en production :
| Données | Système maître |
|---|---|
| Produits, nomenclatures, opérations, quantités, état des ordres de production | Odoo |
| Séquencement des ordres de fabrication, heures de début et de fin, choix du poste de charge | SkyPlanner |
| Matrice des temps de changement de série, besoins en outils et en opérateurs, ressources alternatives | SkyPlanner |
| Calendriers des postes de charge et Time Off | Un seul système, choisi lors du cadrage |
| Time Logs, stocks et calcul des coûts | Odoo, alimenté par les confirmations de SkyPlanner |
Les planificateurs ne doivent plus utiliser les boutons Plan et Unplan d’Odoo pour les ordres de production ordonnancés par SkyPlanner. Sinon, Odoo réserve ses propres créneaux à la place des dates définies par SkyPlanner.
Les étapes habituelles du projet
La mise en œuvre s’achève généralement en quelques semaines après le début de l’accompagnement. Au préalable, l’essai gratuit de 30 jours s’appuie sur des exports CSV de vos propres données Odoo. Le projet comprend ensuite :
- Correspondance des données de base : modèles et champs Odoo par version (vérifiez
/docoufields_get), unités de mesure et système chargé de gérer les calendriers et Time Off. - Fiabilisation des données : calendriers des postes de charge, Setup Time et Cleanup Time, et passage des durées de Computed à Fixed pour les opérations des nomenclatures.
- Chargement initial : produits, postes de charge et leurs calendriers, nomenclatures et leurs opérations.
- Synchronisation des ordres et des commandes fournisseurs : ordres de production confirmés et en cours avec leurs ordres de fabrication, ainsi que les lignes
purchase.orderavec leurs dates de réception prévues. - Réécriture du planning : dates et postes de charge sur
mrp.workorder, avec rotation des clés API côté Odoo. - Confirmations de l’atelier : retour des Time Logs et des clôtures d’ordres de fabrication vers Odoo.
- Tests en parallèle du planning actuel, puis mise en production.
Les pièges à éviter dans Odoo
- Champs de date renommés. Jusqu’à la version 16.0,
date_planned_startetdate_planned_finishedcontenaient les dates prévues, etdate_start/date_finishedles dates réelles. À partir de la version 17.0,date_startetdate_finishedcorrespondent aux dates prévues. Une correspondance reprise d’un projet en 16.0 interprète les dates réelles comme des dates prévues sur 17+, sans signaler d’erreur. - Les dates des ordres de fabrication correspondent à des réservations. En 19.0,
date_startetdate_finishedsurmrp.workordersont calculés à partir d’un enregistrementresource.calendar.leaves(leave_id) dans le calendrier du poste de charge. Écrire les dates sur l’ordre de fabrication met à jour cette réservation. N’écrivez jamais directement dans la table des absences. - Les ordres de fabrication démarrés bloquent la déplanification. Odoo refuse de déplanifier un ordre de production lorsque « Some work orders have already started » (certains ordres de fabrication ont déjà démarré). Lors de la réécriture, ignorez les ordres de fabrication à l’état
progressoudoneet ne déplacez que ceux qui n’ont pas démarré. - Des durées qui évoluent. Les opérations réglées sur Computed tirent leur durée des derniers ordres de fabrication (10 par défaut), avec application du coefficient Time Efficiency. Réglez-les sur Fixed pour l’essai, ou acceptez que les données d’entrée évoluent. Les opérations sont définies dans chaque nomenclature, sans référentiel commun de gammes de fabrication : chaque nomenclature doit donc être fiabilisée séparément.
- Des calendriers mal configurés. Chaque poste de charge doit disposer d’un calendrier d’horaires de travail. Le planificateur d’Odoo recherche un créneau jusqu’à 700 jours à l’avance, puis s’arrête avec le message « Impossible to plan the workorder » (impossible de planifier l’ordre de fabrication). Corrigez les calendriers avant le premier chargement.
- Unités de mesure.
mrp.bom.linepossède son propreproduct_uom_id, qui peut différer de l’unité de stock du produit. Effectuez la conversion avant de vérifier la disponibilité des matières.
Qui configure l’intégration avec Odoo ?
Chaque usine utilise Odoo à sa manière : opérations des nomenclatures, calendriers des postes de charge, postes de charge alternatifs et modules personnalisés. L’expertise de l’équipe SkyPlanner consiste à définir les bonnes correspondances pour cette configuration.
- L’équipe SkyPlanner configure l’intégration en fonction de votre environnement Odoo lors de la mise en place, puis en assure le support après la mise en production. L’intégration repose sur l’API REST et les webhooks de SkyPlanner, ainsi que sur l’API JSON-2 ou RPC d’Odoo. C’est la voie retenue par défaut.
- Votre partenaire Odoo peut participer. Il connaît votre configuration et vos modules personnalisés et peut développer l’intégration à partir de la même API REST documentée. Celle-ci permet de lire et d’écrire les ordres, les produits, les matières, les étapes de fabrication et les relevés de temps. Elle utilise l’authentification JWT et dispose d’une documentation Swagger/OpenAPI.
- Vos propres développeurs peuvent faire de même, généralement au moyen d’un middleware léger aux côtés d’Odoo, ou d’un module sur Odoo.sh ou sur site. Une clé API suffit pour commencer (tutoriel d’intégration), et l’équipe SkyPlanner vous accompagne si nécessaire.
Ce même modèle fonctionne en production avec d’autres ERP. Chez Laboratory & Allied, l’équipe informatique interne a réalisé l’intégration avec SAP Business One en grande partie de manière autonome, avec l’aide de SkyPlanner. De son côté, UTU utilise SkyPlanner aux côtés de son ERP NetSuite.
Ce que l’intégration apporte au quotidien
C’est la réécriture des données dans Odoo qui donne à l’intégration sa valeur au quotidien. Une fois ce flux en place :
- Les ordres de fabrication Odoo disposent de dates concrètes. Le moteur Arcturus AI ordonnance tous les ordres de production ouverts en quelques secondes. Les dates et les postes de travail qu’il choisit sont enregistrés dans
mrp.workorderet affichés dans les vues de planification d’Odoo. - Plus de réordonnancement manuel. Autopilot recalcule automatiquement le planning lorsque la production change, et le webhook transmet les nouvelles dates à Odoo.
- L’atelier assure le retour d’information. Les opérateurs enregistrent leur travail sur téléphone ou tablette avec Mobile Confirmations, Production Timer et Quick Log Mode. Les Time Logs sont transmis à Odoo pour la gestion des stocks et le calcul des coûts. L’ordonnancement et l’exécution sont réunis dans un seul outil, aussi bien avec Community qu’avec Enterprise.
- Le planning intègre des contraintes qu’Odoo ne gère pas. Une matrice des temps de changement de série définit, pour chaque paire de produits, les temps de transition selon leur ordre de passage. Les outils sont des ressources à capacité finie partagées entre les machines, et une opération peut mobiliser plusieurs opérateurs simultanément. Le moteur se tourne vers des machines ou du personnel de remplacement lorsque la ressource principale est indisponible. Les dates réécrites dans
mrp.workorderrespectent toutes ces contraintes. - Les arrivées de matières guident le planning. Le stock disponible et les commandes fournisseurs ouvertes dans Odoo alimentent l’ordonnancement en fonction des matières. Les composants commandés sont considérés comme disponibles à la date de livraison de la commande fournisseur, et le stock est mis à jour lorsque celle-ci passe au statut Delivered. Pour chaque opération, la disponibilité des matières est vérifiée en tenant compte du stock en entrepôt et des livraisons attendues.
Vous pouvez évaluer le planning avant tout travail d’intégration. Lancez l’essai gratuit de 30 jours à partir d’exports CSV et retrouvez vos propres ordres de fabrication Odoo sur le diagramme de Gantt, avec jusqu’à 20 postes de travail et sans carte bancaire. Les tarifs commencent à 199 € par mois, avec 5 postes de travail inclus, une facturation mensuelle et une résiliation possible à tout moment. L’intégration fait l’objet d’un devis préalable adapté à vos processus et à vos besoins, présenté avec votre abonnement : vous connaissez ainsi le coût total avant de commencer. Découvrez les fonctionnalités et nos clients, ou réservez une démo.
Les avis des industriels sur SkyPlanner
2 hgagnées chaque semaine
« Grâce à SkyPlanner, notre planification de la production est passée des feuilles de calcul Excel à l’optimisation en temps réel. »
Kalle Kalliomäki, spécialiste de la chaîne logistique
UTU · Tableaux électriques et appareillage de commutation
La planification de la production permet de gagner 2 heures de travail chaque semaine, et une nouvelle file d’opérations est transmise à la ligne en quelques secondes.
+90%d’efficacité en production
« L’efficacité en production a augmenté de 90%. »
Abdul Rucyinga, responsable informatique
Laboratory & Allied · Industrie pharmaceutique
L’efficacité en production a augmenté de 90%. Il faut moins de 30 minutes pour établir un planning optimisé sur trois mois pour l’ensemble des postes de charge.
1 000 et plusordres de fabrication ordonnancés automatiquement
« Nous maîtrisons la production autrement, et notre connaissance des capacités est désormais d’un tout autre niveau. »
Hannu Ryynänen, directeur général
Mamec · Mélangeurs industriels, pompes et sous-traitance de haute technologie
Des milliers d’ordres de fabrication sont ordonnancés automatiquement, et toute l’entreprise dispose d’une vue en temps réel de la production.
99,2%de respect des délais de livraison
« SkyPlanner nous a donné la visibilité nécessaire pour repérer les goulots d’étranglement et a clarifié le pilotage de la production. »
Toni Tuori, responsable de production
Piristeel · Équipements de sécurité pour toitures et systèmes d’évacuation des eaux pluviales
Le taux de respect des délais de livraison a atteint 99,2% cette année, et l’ordonnancement permet de gagner jusqu’à quatre heures de travail par jour.
Questions fréquentes
L’intégration fonctionne-t-elle avec Odoo Online ?
Oui, avec l’offre Custom, via l’API externe. Les offres One App Free et Standard ne donnent pas accès à l’API externe, et Standard ne permet pas d’utiliser de modules personnalisés. Avec ces offres, les échanges se limitent donc à l’import et à l’export de fichiers CSV/XLSX.
Faut-il utiliser JSON-2 ou XML-RPC ?
Utilisez JSON-2 avec Odoo 19.0 et les versions ultérieures. XML-RPC et JSON-RPC restent nécessaires pour les versions 16.0 à 18.0, mais leur suppression est prévue dans Odoo 22.
Comment le planning est-il renvoyé dans Odoo ?
Par la méthode ORM write sur chaque mrp.workorder : POST /json/2/mrp.workorder/write avec ids et vals en 19.0, ou execute_kw avec write via XML-RPC ou JSON-RPC sur les versions 16.0 à 18.0. Les valeurs transmises sont date_start, date_finished (date_planned_start et date_planned_finished en 16.0) et, s’il a changé, workcenter_id. Odoo déplace en conséquence la réservation du poste de charge : ses vues de planification affichent ainsi les dates de SkyPlanner.
Comment les confirmations des opérateurs sont-elles transmises à Odoo ?
Sous forme de Time Logs : l’intégration crée des enregistrements mrp.workcenter.productivity rattachés à l’ordre de fabrication, avec un début, une fin et un motif de perte Productive, puis appelle button_finish lorsque l’opération est terminée. Chaque confirmation n’est enregistrée qu’une fois : les nouvelles tentatives ne comptabilisent donc pas le temps en double.
Qui assure la maintenance de l’intégration après la mise en service ?
L’équipe SkyPlanner configure l’intégration pendant la phase de démarrage et en assure le support après la mise en service, y compris les adaptations nécessaires lorsque votre configuration Odoo évolue. Si votre partenaire ou vos développeurs réalisent l’intégration, ils s’appuient sur l’API REST documentée et sur la documentation SkyPlanner. L’équipe les accompagne au besoin.
Que deviennent les ordres de fabrication déjà commencés ?
Ne les modifiez pas lors du renvoi des données dans Odoo. Odoo bloque la déplanification d’un MO dès qu’un ordre de fabrication est en cours ou terminé. SkyPlanner lit leur état et leur avancement, puis ordonnance le travail restant en tenant compte de ces ordres.
Combien de temps prend l’intégration avec Odoo ?
La mise en œuvre est normalement achevée en quelques semaines après le début de l’accompagnement. Commencez par l’essai de 30 jours à partir d’exports CSV : vous validez ainsi le planning avec vos propres données Odoo avant le début des travaux sur l’API.