Documentation11 min de lecture

Field Service : gérer les interventions terrain dans Odoo Community

Le module OCA `fieldservice` (dépôt `field-service`, version 18.0.5.8.1, licence AGPL-3) est une application complète, pas un complément : relevé sur une instance Odoo 18 Community, il crée 5 modèles, ajoute 1 301 champs, 28 menus et 10 groupes de droits. Les cinq modules de la famille, et celui qui ne fait pas ce que son nom suggère.

Technicien en intervention sur site avec son matériel

Toute entreprise qui envoie quelqu'un chez un client a le même problème : savoir qui va où, avec quoi, et ce qui a été fait. Odoo Community n'a rien pour cela nativement — la communauté a construit une application entière.

Et c'est bien d'une application qu'il s'agit : 1 301 champs et 28 menus pour le seul module central. Ce n'est pas un module qu'on installe pour voir : c'est un domaine fonctionnel qui se déploie.

Résumé

Ce n'est pas un module mais une application entière : 1 301 champs, 28 menus et 10 groupes de droits pour le seul module central, avec cinq modèles de base — Lieux, Travailleurs, Équipes, Équipements, Ordres de service — et un écran de dispatching.

Deux pièges avant toute promesse : fieldservice_account ne facture pas — le dépôt le décrit comme un module de traçabilité et de navigation —, et les extensions de la suite s'activent par cases à cocher dans les paramètres du module central, pas en les installant.

L'essentiel

  • Cinq modèles de base : Lieux, Travailleurs, Équipes, Équipements, Ordres de service — et un écran de dispatching quotidien.
  • Les modules complémentaires s'activent par cases à cocher dans l'écran Paramètres du module, pas par installation séparée visible.
  • fieldservice_recurring : récurrence fondée sur dateutil.rrule — « le premier lundi du mois », « tous les jours ouvrés ».
  • fieldservice_sale : une commande de vente confirmée génère automatiquement les ordres d'intervention.
  • fieldservice_account ne génère aucune facture : c'est un module de traçabilité et de navigation, pas de facturation automatique.
  • fieldservice_stock : le matériel à livrer sur le lieu d'intervention, et un entrepôt par territoire.

Ce que la famille ajoute à l'instance

ModuleModèles créésChampsMenusVersion
fieldservice51 3012818.0.5.8.1
fieldservice_recurring3175418.0.1.2.0
fieldservice_stock033218.0.2.1.0
fieldservice_sale021018.0.1.2.2
fieldservice_account017018.0.1.1.0

L'écart entre la première ligne et les autres dit tout : fieldservice est l'application, les quatre autres sont des raccordements à des domaines existants d'Odoo — comptabilité, ventes, stock — plus un moteur de récurrence.

Le module central crée aussi 10 groupes de droits, ce qui est considérable et cohérent : un technicien, un dispatcheur, un responsable d'équipe et un administrateur n'ont pas à voir la même chose.

Les cinq modèles de base structurent tout le reste :

ModèleCe qu'il représente
LieuxL'endroit où l'intervention a lieu — distinct du client, qui peut en avoir plusieurs
TravailleursLes personnes qui interviennent, avec leurs compétences et leur territoire
ÉquipesLes regroupements de travailleurs
ÉquipementsLe parc installé chez le client, qu'on vient entretenir ou réparer
Ordres de serviceL'intervention elle-même, avec ses étapes

La distinction client / lieu est la plus importante à comprendre avant de paramétrer : un syndic a vingt immeubles, une enseigne a trente magasins. L'intervention se rattache au lieu, la facture au client.

Où le trouver dans Odoo

Le module ajoute son propre menu racine, Service sur site, avec 28 entrées. Les principales :

MenuCe qu'on y fait
Service sur site ▸ OpérationsLe dispatching quotidien et les ordres de service
Service sur site ▸ Données de baseLieux, travailleurs, équipes, équipements
Service sur site ▸ Configuration ▸ CommandesTypes de commande, étiquettes, étapes
Service sur site ▸ Opérations ▸ Recurring OrdersLes ordres récurrents (module _recurring)
Service sur site ▸ Rapport ▸ InventaireLe matériel par lieu (module _stock)

Écran Paramètres du module Field Service : les cases à cocher qui activent chaque extension — comptabilité, ventes, stock, récurrence
Écran Paramètres du module Field Service : les cases à cocher qui activent chaque extension — comptabilité, ventes, stock, récurrence

Le point de navigation à connaître : les extensions de la suite ne s'activent pas en les installant puis en cherchant un nouveau menu. Elles s'activent par des cases à cocher dans l'écran Paramètres du module fieldservice. Installer fieldservice_stock sans cocher l'option correspondante donne l'impression que rien ne s'est passé.

fieldservice_account : ce qu'il ne fait pas

C'est le module de la famille dont le nom induit le plus en erreur, et il vaut d'être lu avant de promettre quoi que ce soit à un client.

« Il ne génère aucune facture automatiquement : c'est un pur module de traçabilité et de navigation, la création du lien entre ligne de facture et ordre devant se faire via un autre module ou un développement. » — description relevée du module.

Ce qu'il fait réellement :

  • Il relie les ordres de service aux factures et avoirs clients, via les lignes de facture.
  • Il ajoute des boutons de navigation croisée : depuis un ordre, voir ses factures ; depuis une facture, voir les ordres.
  • Il introduit une case « facturable » sur les étapes d'ordre.

Autrement dit : la facturation d'une intervention n'est pas automatique avec ce seul module. C'est fieldservice_sale qui fait le lien dans l'autre sens — une commande de vente qui génère des ordres — et c'est de ce côté qu'il faut regarder si l'objectif est « je vends une prestation, elle se planifie, elle se facture ».

C'est exactement le genre de limite qu'une documentation doit dire avant un projet, pas après. Voir la gestion d'une entreprise de services avec Odoo.

fieldservice_recurring : un moteur de récurrence de calendrier

C'est le module qui transforme le Field Service en outil de contrats d'entretien — et sa force vient d'une bibliothèque : dateutil.rrule.

Concrètement, cela signifie une expressivité de niveau calendrier, pas une simple périodicité :

  • « tous les 3 mois »
  • « le premier lundi du mois »
  • « tous les jours ouvrés »
  • « le dernier vendredi de chaque trimestre »

Le module ajoute trois objets de configuration et un écran d'exploitation :

ObjetRôle
FrequenciesUne fréquence élémentaire
Frequency Rule SetUn ensemble de règles combinées
Recurring TemplatesLe gabarit de l'ordre à générer
Recurring OrdersL'écran des récurrences actives

Liste des ordres récurrents : chaque récurrence avec son gabarit, sa fréquence et sa prochaine génération
Liste des ordres récurrents : chaque récurrence avec son gabarit, sa fréquence et sa prochaine génération

Les ordres à venir sont générés par une tâche planifiée. C'est le point à vérifier après installation — comme pour tous les modules à cron, une tâche inactive produit un silence, pas une erreur.

175 champs pour ce seul module : la flexibilité de rrule se paie en nombre de paramètres. C'est utilisable, mais ce n'est pas un écran qu'on confie à un utilisateur sans l'avoir paramétré pour lui.

Les deux raccordements : ventes et stock

fieldservice_sale : vendre une prestation qui se planifie

C'est le module central pour toute organisation qui vend des prestations réalisées sur site. Le principe : un produit marqué comme tel génère, à la confirmation de la commande de vente, un ou plusieurs ordres d'intervention.

Il dépend de fieldservice, de fieldservice_account et de sale_management — l'enchaînement complet devis → commande → ordres → facturation suppose donc les trois.

Limite répertoriée : le dépôt souhaite pouvoir déduire la branche — et donc la liste de prix d'un nouveau partenaire — à partir d'une adresse. Ce n'est pas fait. En multi-entités avec des tarifs par zone, le tarif reste à poser à la main.

fieldservice_stock : le matériel sur le lieu d'intervention

Celui-ci répond à une question que tout technicien pose : quel matériel doit être sur place ?

  • Savoir quel matériel doit être livré à une localisation d'intervention.
  • Suivre les mouvements de stock associés à un ordre, directement depuis sa fiche.
  • Gérer un entrepôt différent par territoire, en configuration multi-entrepôts.

La troisième capacité est celle qui compte dans une entreprise à plusieurs agences : le technicien de l'agence sud ne prend pas son matériel à l'entrepôt nord. Voir la gestion des stocks et de la traçabilité.

Limites connues

Les dépôts renvoient la feuille de route et les défauts ouverts de l'application Field Service à un fil GitHub dédié, plutôt que de les lister module par module. Quatre limites se dégagent de ce que nous avons relevé :

  • fieldservice_account ne facture pas. C'est un module de traçabilité. L'automatisation de la facturation vient de fieldservice_sale, ou d'un développement.
  • fieldservice_sale : pas de déduction de la branche ni de la liste de prix depuis une adresse.
  • Les extensions s'activent par cases à cocher dans les paramètres du module central — une installation sans activation ne produit rien de visible.
  • La taille de l'application est une limite en soi : 1 301 champs, 28 menus, 10 groupes de droits. Ce n'est pas un module qu'on déploie en une après-midi.

La dernière mérite d'être prise au sérieux. Nous ne l'installons jamais « pour voir » : le Field Service se déploie sur un périmètre réduit — un type d'intervention, une équipe — avant d'être étendu.

Identité technique

ModuleVersionLicenceDépend de
fieldservice18.0.5.8.1AGPL-3base_geolocalize, base_territory, contacts, resource
fieldservice_account18.0.1.1.0AGPL-3account, fieldservice
fieldservice_recurring18.0.1.2.0AGPL-3fieldservice
fieldservice_sale18.0.1.2.2AGPL-3fieldservice, fieldservice_account, sale_management
fieldservice_stock18.0.2.1.0AGPL-3fieldservice, stock

Les cinq viennent du dépôt OCA field-service, branche 18.0, qui compte 36 modules documentés. Ils font partie de notre pack services (81 modules), au-delà du socle commun.

Pour les métiers concernés, voir plombier, électricien, chauffagiste, paysagiste et entretien d'espaces verts et le BTP.

Questions fréquentes

Odoo Community gère-t-il les interventions terrain ?

Pas nativement : il n'y a rien pour cela dans l'édition de base. Le dépôt OCA field-service fournit une application complète — 1 301 champs, 28 menus, 10 groupes de droits pour le seul module central — avec lieux, travailleurs, équipes, équipements, ordres de service et un écran de dispatching.

fieldservice_account facture-t-il les interventions ?

Non, et c'est le malentendu le plus coûteux de cette famille : il relie les ordres aux factures et ajoute des boutons de navigation croisée, mais ne génère aucune facture. L'automatisation vient de fieldservice_sale — une commande de vente confirmée génère les ordres — ou d'un développement.

Pourquoi l'installation d'un module de la suite ne change-t-elle rien ?

Parce que les extensions s'activent par des cases à cocher dans l'écran Paramètres du module fieldservice, pas simplement en les installant. C'est une architecture propre, et c'est une source de confusion : installer fieldservice_stock sans cocher l'option correspondante ne produit rien de visible.

Jusqu'où va le moteur de récurrence ?

Loin : fieldservice_recurring s'appuie sur dateutil.rrule, ce qui permet d'exprimer « le premier lundi du mois », « tous les jours ouvrés » ou « le dernier vendredi de chaque trimestre ». La contrepartie est le nombre de paramètres — 175 champs — et une tâche planifiée à activer.

Peut-on gérer un entrepôt par agence ?

Oui, avec fieldservice_stock : il permet un entrepôt différent par territoire en configuration multi-entrepôts. C'est ce qui évite qu'un technicien de l'agence sud prépare son matériel depuis l'entrepôt nord, et c'est souvent la raison principale d'installer ce module.

Se faire accompagner

C'est le domaine le plus lourd de tout notre catalogue : 1 301 champs, 28 menus, 10 groupes de droits, et cinq modules qui s'activent par cases à cocher. Déployé d'un bloc, il échoue ; déployé sur un type d'intervention et une équipe, il fonctionne et s'étend.

Nous le cadrons en commençant par le modèle de données — la distinction client / lieu / équipement — puis un périmètre réduit, les droits par rôle, et la facturation en dernier. C'est le cœur de nos prestations d'intégration, et notre méthode est faite pour ce genre de projet. Demander un rappel.

Pour aller plus loin

En résumé

Une application entière, pas un module : 1 301 champs, 28 menus, et une distinction client / lieu / équipement à comprendre avant tout paramétrage. Deux pièges — fieldservice_account ne facture pas, et les extensions s'activent par cases à cocher dans les paramètres du module central. Parlons de vos interventions.

Documentation OCAServicesOdoo

Partager

Fiches connexes

Relevés bancaires et pièces comptables sur un bureau
Relevé sur une instance Odoo 18 Community, le module OCA `account_reconcile_oca` (dépôt `account-reconcile`, version 18.0.1.1.14, licence AGPL-3) ajoute 2 modèles, 87 champs et 17 vues : il remplace le lettrage limité de la Community par deux écrans dédiés, bancaire et par compte. Ce qu'il ajoute à l'instance, où le trouver, ses quatre cas d'usage et ses limites connues.
Lire la suite
Documentation OCA, Comptabilité
Relevé bancaire et suivi des opérations sur un bureau
Odoo a retiré l'import de relevés bancaires de son édition Community à partir de la version 14 : les 3 modules OCA `account_statement_import_file` (18.0.1.0.3, LGPL-3), `_camt` et `_ofx` le rétablissent, avec la détection des transactions déjà importées. Comment ils s'articulent, ce que CAMT apporte de plus qu'OFX, et le piège du fichier sans IBAN.
Lire la suite
Documentation OCA, Comptabilité