Mis à jour le 28 septembre 2026 : suivi de la rentabilité depuis la SaaS 19.2 et Odoo 20, conférence de l'Odoo Experience du 24 septembre, libellés et réglages d'Odoo précisés.
Un projet vendu 40 heures en consomme 55. Personne ne l'a vu venir, parce que les temps sont notés dans un tableur, le devis dans un autre outil et la facture dans un troisième. Résultat : vous découvrez la dérive au moment de facturer, quand il est trop tard pour en parler au client. La facturation au temps passé en agence ne pose pas un problème de tarif. Elle pose un problème de données : le temps réel n'arrive jamais jusqu'à la facture, ou il y arrive trop tard.
Dans cet article, nous montrons comment une agence web peut relier devis, feuilles de temps et factures dans Odoo 19. Vous verrez comment gérer le forfait et la régie, facturer à partir des temps validés et suivre la rentabilité de chaque projet sans ressaisie.
- L'écart entre temps vendu et temps passé vient surtout d'une saisie tardive et d'un suivi déconnecté du devis.
- Dans Odoo, chaque ligne de service vendue crée un projet ou une tâche, et chaque feuille de temps est rattachée à cette ligne.
- La régie se facture sur les temps réels, le forfait au prix fixe ou par jalons. Les deux peuvent cohabiter sur une même commande.
- La facture est générée depuis la commande, à partir des temps validés par le manager.
- En Odoo 19.0, le panneau de rentabilité d'un projet facturable compare le chiffre d'affaires et le coût réel des heures. Depuis la SaaS 19.2 et dans Odoo 20, des rapports dédiés le remplacent (budget, marges réelles et prévisionnelles).
Pourquoi le temps vendu ne correspond jamais au temps passé ?
Dans une agence web, le devis est une estimation faite avant de connaître le vrai périmètre. Ensuite, le projet vit : retours client, allers-retours sur la maquette, contenus livrés en retard, petites demandes « rapides » qui s'accumulent. Rien de tout cela n'est anormal. Le problème vient de ce que personne ne le mesure au fil de l'eau.
Les causes les plus fréquentes :
- Saisie en fin de semaine ou de mois. Les collaborateurs reconstituent leurs temps de mémoire. Les petites interventions disparaissent.
- Temps saisi « sur le projet » sans tâche. Impossible ensuite de savoir si c'est la recette ou le développement qui a dérapé.
- Aucun lien entre le devis et le suivi. Le chef de projet ne sait pas combien d'heures il reste sur le budget vendu.
- Hors-périmètre non isolé. Les demandes supplémentaires sont absorbées dans le forfait au lieu d'être refacturées.
Tant que les heures vivent à côté de la vente, la facture reflète le devis, jamais la réalité. La première étape consiste donc à rattacher chaque heure à ce qui a été vendu.
Comment structurer les feuilles de temps par projet et par tâche ?
Dans Odoo, la structure part de la vente. Un produit de type service peut être paramétré pour créer automatiquement, à la confirmation de la commande, un projet, une tâche dans un projet existant, ou un projet et sa tâche. Les heures vendues deviennent les heures allouées de la tâche.
Un projet par client, une tâche par livrable
Pour un site vitrine, un découpage simple suffit : conception, intégration, développement, recette, mise en ligne. Chaque tâche porte ses heures allouées. Le collaborateur saisit son temps directement sur la tâche, depuis l'app Projet ou l'app Feuilles de temps, avec le chronomètre ou en saisie manuelle.
Le chef de projet voit en continu les heures passées face aux heures allouées. Une tâche qui dépasse 80 % de son budget se repère avant qu'elle n'explose.
Des règles de saisie claires
- Saisie quotidienne, ou au plus tard en fin de semaine.
- Une description courte et utile : elle apparaîtra dans le détail joint à la facture.
- Une tâche dédiée au hors-périmètre, rattachée à une ligne de commande séparée.
- Les temps internes (avant-vente, formation) sur un projet interne non facturable.
La validation par le manager
L'app Feuilles de temps propose un circuit de validation : le manager contrôle les temps de son équipe, corrige si besoin, puis valide. Dans Feuilles de temps ‣ Configuration ‣ Paramètres, section Facturation, limitez la facturation aux seules feuilles de temps validées. C'est ce qui évite d'envoyer au client une heure mal imputée.
Forfait ou régie : comment facturer chaque cas dans Odoo ?
Tout se joue dans la politique de facturation du produit de service, définie dans l'app Ventes. Trois options couvrent l'essentiel des cas d'une agence.
| Type de mission | Politique de facturation | Ce qui est facturé |
|---|---|---|
| Régie, TMA, support | Basé sur les feuilles de temps | Les heures réellement saisies (et validées) |
| Forfait découpé en étapes | Basé sur les jalons | Chaque jalon atteint, par exemple 30 % à la maquette |
| Forfait simple ou pack d'heures | Prépayé/Prix fixe | Le montant commandé, indépendamment du temps passé |
La régie
Avec la politique « Basé sur les feuilles de temps », la quantité livrée sur la ligne de commande suit les heures saisies. Vous facturez ce qui a été fait. C'est la logique naturelle pour la maintenance, la TMA ou l'accompagnement SEO mensuel.
Le forfait
Au forfait, les heures restent saisies. Elles ne pilotent pas la facture, mais elles pilotent la marge. Les jalons conviennent aux refontes de site : vous facturez à la validation de la maquette, puis à la mise en ligne. Le prix fixe convient aux petites prestations et aux packs d'heures prépayés.
Mixer les deux sur une même commande
Une commande peut combiner une ligne au forfait pour la refonte et une ligne en régie pour les évolutions hors périmètre. Chaque ligne suit sa propre politique. Le client signe un seul devis. Vous gardez deux logiques de facturation distinctes.
C'est souvent le point le plus délicat du paramétrage. Nous le détaillons pour ce métier sur notre page intégrateur Odoo pour agences web et marketing.
Comment générer la facture automatiquement depuis les temps validés ?
Une fois la structure en place, la facturation devient une opération de contrôle, plus de la ressaisie. Le circuit type :
- Les collaborateurs saisissent leurs temps sur les tâches.
- Le manager valide les feuilles de temps de la période.
- La quantité livrée se met à jour sur les lignes de commande en régie.
- Depuis la commande, vous cliquez sur « Créer une facture » ; en masse, depuis la liste des commandes à facturer, sur « Créer des factures ».
- Odoo génère un brouillon de facture avec les quantités à facturer. Vous pouvez restreindre les temps pris en compte à une période donnée.
Le détail des feuilles de temps peut être joint à la facture. Le client voit qui a travaillé, sur quoi et combien de temps. Les discussions sur la facture diminuent, parce que la justification est déjà là.
Les frais engagés pour le client (hébergement, licences, déplacements) passent par l'app Dépenses (notes de frais). Une catégorie de dépense peut être refacturée au prix coûtant ou au prix de vente sur la commande du client.
Pour le détail des options, la documentation officielle Odoo 19 sur la facturation au temps passé reste la référence.
Exemple : tableau de rentabilité par projet
En Odoo 19.0, chaque projet facturable affiche un panneau de rentabilité dans son tableau de bord. Il agrège le chiffre d'affaires facturé et à facturer, ainsi que les coûts, dont celui des feuilles de temps. Ce coût repose sur le coût horaire renseigné sur la fiche de chaque employé. Les montants remontent aussi en comptabilité analytique, sur le compte analytique du projet.
Mise à jour du 27/09/2026 : depuis la SaaS 19.2 (Odoo Online), et pour toutes les bases avec Odoo 20, le panneau de rentabilité du tableau de bord projet est remplacé par des rapports dédiés au budget et aux marges réelles et prévisionnelles. Le principe ne change pas : coûts et revenus remontent sur le compte analytique du projet.
Prenons un exemple hypothétique : une agence de 8 personnes vend une refonte de site au forfait de 12 000 €, estimée à 120 heures. Le coût horaire moyen de l'équipe est fixé à 45 €. En parallèle, une ligne de régie à 90 € de l'heure couvre les évolutions hors périmètre.
| Poste (exemple fictif) | Vendu | Réalisé | Montant |
|---|---|---|---|
| Refonte au forfait | 120 h | 150 h | 12 000 € facturés |
| Évolutions en régie | à l'heure | 20 h | 1 800 € facturés |
| Coût des feuilles de temps | – | 170 h x 45 € | 7 650 € |
| Marge du projet | – | – | 6 150 € |
Lecture : le forfait a dépassé de 30 heures, soit 1 350 € de marge perdue sur cette ligne. Sans la ligne de régie, les 20 heures d'évolutions auraient elles aussi été absorbées. Le tableau montre où la marge fuit, tâche par tâche. Il sert aussi à mieux chiffrer le prochain devis de ce type.
L'IA va-t-elle remplir vos feuilles de temps ?
C'est la promesse qui circule le plus : « avec Odoo 20, l'IA saisit les temps à votre place ». Nous avons vérifié dans la documentation officielle. La réalité est plus nuancée, et plutôt rassurante.
Ce qui existe déjà : l'Assistant Feuilles de temps
Disponible sur Odoo Online depuis la SaaS 19.1 (janvier 2026) et documenté en version 20.0, l'Assistant Feuilles de temps s'appuie sur ActivityWatch, une petite application installée sur le poste, complétée, si besoin, d'une extension Chrome ou Firefox. Elle observe les fenêtres, les onglets et les adresses consultées. Des règles reconnaissent l'activité (un ticket GitHub, un document Google, une réunion Meet) et proposent une ligne de temps rattachée au bon projet et à la bonne tâche. Les événements du calendrier et du Planning complètent les suggestions. Depuis la 19.4, les règles se partagent entre collègues.
Le collaborateur garde la main : il sélectionne une suggestion, puis la crée. Rien n'est saisi à son insu.
Ce que ce n'est pas : de l'IA générative
La page de documentation ne parle pas d'intelligence artificielle. Le libellé de la ligne n'est pas rédigé par une IA, il vient du modèle défini dans la règle. Pour une agence qui travaille sur des projets clients confidentiels, c'est une bonne nouvelle.
Mise à jour du 28/09/2026 : dans le résumé de sa conférence à l'Odoo Experience 2026 (24 septembre), un développeur d'Odoo décrit un moteur de règles complété par un apprentissage sur le poste. Aucune donnée ne quitte l'ordinateur et aucune IA générative n'est mentionnée.
Ce que promettent les concurrents
Le marché est coupé en deux. Timely met en avant une IA qui remplit la feuille entière et rédige les descriptions, à valider ensuite. Memtime revendique l'inverse : pas d'IA, des règles et des données locales, au nom de la confidentialité et de la fiabilité. Odoo a choisi le second camp.
Où l'IA d'Odoo aide vraiment une agence
- Les agents IA (depuis la 19.3) créent ou modifient des fiches, y compris à partir d'un fichier.
- Une automatisation Studio « Mettre à jour avec l'IA » peut affecter une tâche au collaborateur le plus compétent : c'est l'exemple même de la documentation.
- L'agent Demander à l'IA résume un fil de discussion avant un point client.
Notre conseil : activez l'assistant, partagez quelques règles d'équipe et gardez la validation des feuilles de temps décrite plus haut. La suggestion accélère la saisie, la validation protège la facture.
- Disponible · SaaS 19.1Assistant Feuilles de tempsSuggestions de lignes de temps à partir de l'activité du poste, du calendrier et du Planning. Chaque ligne est validée par le collaborateur.Source
- Idée reçue« L'IA d'Odoo 20 remplit vos temps »Aucune annonce dans les notes de version d'Odoo 20. Conférence du 24/09 : règles et apprentissage local, aucune IA générative mentionnée, données gardées sur l'ordinateur.Source
- Disponible · SaaS 19.3Agents IA qui créent des fichesUn agent crée ou met à jour des fiches, y compris à partir d'un fichier téléversé.Source
- DisponibleAutomatisation « Mettre à jour avec l'IA »Exemple documenté : affecter une tâche au salarié le plus compétent.Source
- Non trouvéDescriptions de temps rédigées par l'IAAucune annonce dans la documentation 20.0 ni dans les conférences de l'Odoo Experience (24–26/09) consacrées aux feuilles de temps.
Questions fréquentes
Peut-on facturer au temps passé sans que tous les collaborateurs aient une licence Odoo ?
Pour que chacun saisisse ses propres temps, chaque collaborateur doit être utilisateur d'Odoo. Un manager peut saisir des temps pour un employé sans accès, mais on retombe alors dans la ressaisie. Pour une agence, la saisie concerne de toute façon toute l'équipe de production.
Mise à jour du 27/09/2026 : Odoo 20 crée une licence « Light User » à 7,90 € par mois (prix affiché, sur devis). Son périmètre, détaillé sur la page tarifs, couvre notamment congés, présences, notes de frais et planning, sans les feuilles de temps, et exclut l'app Projet : comptez un utilisateur complet par collaborateur qui saisit ses temps (précisé le 28/09/2026). Et sur une base en Odoo 20, le contrat Enterprise du 24 septembre 2026 rend payant l'employé sans accès : toute fiche employé active non liée à un utilisateur interne actif est facturée comme un Light User (précisé le 28/09/2026).
Comment éviter de facturer des heures non contrôlées ?
Activez la validation des feuilles de temps et le réglage qui limite la facturation aux temps approuvés. Seules les heures validées par le manager arrivent sur la facture.
Peut-on appliquer des taux horaires différents selon le profil ?
Oui. Il suffit de créer un produit de service par profil (développeur, chef de projet, designer) avec son propre prix, puis de rattacher les temps de chaque profil à la bonne ligne de commande.
Conclusion
La facturation au temps passé fiable ne dépend pas d'un meilleur tableur. Elle dépend d'une chaîne continue : devis, tâches, temps validés, facture, rentabilité. Odoo 19 couvre cette chaîne nativement. Le travail consiste à bien la paramétrer pour votre façon de vendre. Chez Investigmatik, on commence toujours par là : comprendre comment vous vendez avant de configurer quoi que ce soit. Si votre agence veut passer à cette organisation, découvrez notre approche d'intégration Odoo dédiée aux agences web.
Vos factures ne reflètent pas le temps réellement passé ?
Lors d'un appel, nous identifions avec vous où vos heures se perdent entre le devis, la production et la facture.
Réserver un appel diagnostic gratuit