42 applications, chacune pour un besoin précis, toutes rattachées aux mêmes contacts et aux mêmes projets. Cliquez une tuile pour voir ce qu'elle fait. La pastille indique la licence : LGPL-3 est libre sans condition, BUSL-1.1 est à source ouverte et libre d'usage pour vos propres opérations.
Les applications ci-dessous s'ajoutent aux 35 d'Odoo 18 Community, elles ne les remplacent pas : CRM, Ventes, Facturation, Inventaire, Achats, Projets, Employés, Point de vente, Site web et les autres restent là, sur les mêmes contacts et les mêmes projets.
Une période datée sur la fiche du contact, avec la relève : à qui écrire pendant ce temps-là.
Le bandeau apparaît là où on travaille, sur le fil de discussion d'une tâche, d'une opportunité ou d'une fiche, et pas seulement au moment d'envoyer. Un clic programme le message pour le lendemain du retour, et un rappel revient ce jour-là en portant l'objet du dernier échange, pour qu'il y ait autre chose à dire que « je reprends contact ».
Une fermeture posée sur l'entreprise avertit pour chacun de ses gens, et les congés collectifs d'un secteur, publiés un an d'avance, se sèment d'un coup.
Le module lit aussi ce qui existe déjà : les répondeurs d'absence qui arrivent dans le courrier, et le calendrier où vous notiez ces vacances à la main avant d'avoir un module. Il en tire la période, la propose, et n'écrit jamais rien tout seul.
⚠️ Rien n'est jamais bloqué : écrire à quelqu'un en vacances est souvent exactement ce qu'on veut, pour que ça l'attende.
Comparable à La détection d'absence de Salesloft ou Outreach, sortie de la cadence de démarchage


Une rencontre se prépare, se tient, puis se perd. L'ordre du jour dort dans un courriel, les décisions dans les notes de quelqu'un, et six mois plus tard personne ne sait qui avait tranché quoi.
Un ordre du jour prépare la rencontre à venir : ses objectifs, ses sujets avec leur durée et leur intervenant, les éléments d'action à discuter. Un compte rendu raconte la rencontre tenue : les sujets abordés, les décisions avec leur décideur, les présences, et le verbatim. Les deux se rattachent au même événement de calendrier et au même projet, sans ressaisie.
⚠️ Le suivi se fait par exception : une rencontre est présumée mériter un ordre du jour et un compte rendu, et la liste montre étape par étape où chacune en est. C'est l'inverse du réflexe habituel, qui ne montre que ce qui a été fait et laisse le reste invisible.
Les tâches ouvertes du projet peuvent s'inviter d'elles-mêmes à la prochaine rencontre. Les décisions se versent dans les matrices de connaissances, là où on les cherchera. Le compte rendu sort en PDF à votre image, prêt à être envoyé.
La capture audio et la transcription passent par un traitement que vous hébergez, pas par un service tiers.
Comparable à Otter.ai + Fellow.app, intégré

Un courriel qui compte finit collé dans une tâche, ou pas du tout. Entre la boîte de réception et le dossier, il y a un copier-coller que personne n'aime faire et que tout le monde oublie.
La boîte réunit deux sources en une seule liste. Votre compte IMAP, relevé toutes les cinq minutes, et Symbifox lui-même : tout courriel parti d'un fil de discussion ou reçu par la passerelle s'y projette aussi. Les deux se rejoignent sur l'identifiant unique du message, donc un même échange n'apparaît jamais deux fois.
Le classement au dossier rattache un courriel au fil de la fiche dont il parle : la tâche, le billet, le contact, l'opportunité, la facture. Deux clics, et l'échange vit là où quelqu'un le cherchera dans six mois.
⚠️ Les comptes sont par personne, jamais sous le compte d'administration. Une boîte relevée par un compte partagé rend les courriels de chacun lisibles par tous, ce qui n'est ni voulu ni rattrapable après coup.
Compatible avec Migadu, Microsoft 365, Gmail et tout serveur IMAP standard.
Comparable à Outlook ou HubSpot Inbox, dans Odoo



Les liens existent déjà dans votre base : prise de rendez-vous, dépôt sécurisé, salle de rencontre, courriel, téléphone. La page les résout au moment de l'affichage plutôt que de les recopier.
C'est toute la différence. Quand le lien de rendez-vous de quelqu'un change, sa page suit, et le QR déjà imprimé dans sa signature continue de pointer au bon endroit, puisqu'il encode l'adresse de la page et non celle du lien. Un service hébergé de pages de liens ne peut pas faire ça.
Trois natures de page. Une par employé, créée et rafraîchie sans intervention. Une par organisation cliente : le point d'entrée qu'on envoie à l'ouverture d'un mandat, avec à qui parler, où déposer un document et où retrouver ses affaires au portail; son adresse est tirée au sort plutôt que déduite du nom du client, et elle porte une échéance annoncée au conseiller avant qu'elle tombe. Une ponctuelle enfin, sans propriétaire, armée d'une expiration dès sa création.
⚠️ Un lien de portail ne s'affiche que si quelqu'un de l'organisation a vraiment un compte : un bouton qui n'ouvre qu'un écran de connexion est le pire lien d'un courriel d'accueil.
Cinq allures, thème clair ou sombre selon l'appareil, sélecteur FR/EN, et un QR à la marque dont la lisibilité est mesurée et non supposée.
Comparable à Linktree ou Carrd, branché sur vos vraies données

Le texto reste le canal le plus rapide et le moins documenté. L'échange qui décide d'un rendez-vous vit sur un cellulaire, et le dossier n'en garde rien.
Une ligne est un numéro rattaché à une personne de l'organisation. Une conversation regroupe tout ce qui s'est échangé avec un même numéro, les messages d'un côté, les appels de l'autre. Un rattachement pose la trace d'un message ou d'un appel dans le fil d'une fiche, une tâche ou un billet.
Les SMS et MMS partent et arrivent en direct par VOIP.ms, depuis un espace de conversation intégré, avec un compteur de non-lus dans la barre du haut. Vos sauvegardes Android et votre historique d'appels s'importent, ce qui fait entrer l'existant plutôt que de repartir à zéro.
⚠️ Tout ce qui entre ici appartient à quelqu'un. Une ligne a un propriétaire, et les conversations tenues dessus sont ses données. Un fil marqué confidentiel sort des listes et des recherches et reste à la personne qui le détient.

Écrire la même note sur trente fiches se fait une fiche à la fois, ou pas du tout. C'est souvent le « pas du tout » qui gagne, et la trace de la décision manque là où on la cherchera.
Sélectionnez plusieurs enregistrements dans n'importe quelle vue liste, puis publiez la même note sur le fil de discussion de chacun, en une seule opération. L'action paraît d'elle-même sur tous les modèles dotés d'un fil, sans configuration : un module installé demain l'aura aussi.
⚠️ C'est une note interne par défaut. L'envoi en tant que message aux abonnés existe, mais derrière une confirmation : trente notes ne dérangent personne, trente courriels partis d'un geste se rattrapent mal.
Comparable à Les actions de masse de Notion ou Asana, dans le chatter Odoo
Une lettre officielle sort encore trop souvent d'un traitement de texte, avec l'adresse recopiée à la main depuis Odoo et le papier à en-tête rattrapé d'une version à l'autre.
Ici, la lettre réunit l'expéditeur, un destinataire tiré de vos contacts, la date, l'appel, le corps et la salutation. Elle prend une référence à la finalisation, et à ce moment le nom et l'adresse du destinataire se figent tels qu'ils étaient ce jour-là : une adresse corrigée l'an prochain ne récrit pas la lettre partie.
Trois objets préparés d'avance font le gros du travail. Un modèle porte un objet et un corps types avec des champs de fusion remplacés par les valeurs du destinataire. Un bloc de texte est un paragraphe réutilisable, rangé par catégorie et rappelé par un raccourci. L'en-tête décide de l'habillage, de la bannière foncée au papier déjà imprimé.
⚠️ L'habillage est verrouillé. L'auteur choisit sa mise en page, jamais ses couleurs ni son logo, et chaque société de l'instance émet ses lettres à sa propre image. C'est la seule façon qu'une correspondance reste reconnaissable quand dix personnes l'écrivent.
Comparable à Word + publipostage, branché à votre Odoo

Proposer une heure par courriel coûte trois allers-retours et finit souvent sur un créneau déjà pris ailleurs.
Un type de rendez-vous porte tout ce qui se répète : la durée, le lieu, le calendrier consulté, les courriels envoyés, le formulaire posé au demandeur. Une ressource est ce qui doit être libre pour que la rencontre ait lieu, une personne, une salle, un véhicule; une combinaison regroupe ce qui doit l'être en même temps.
Un créneau offert au visiteur est donc un calcul, jamais une liste écrite d'avance : le calendrier de disponibilité ouvre la plage, la combinaison la confirme, et l'agenda la retire dès qu'elle est prise. Les disponibilités viennent de votre calendrier réel, pas d'une copie à tenir à jour.
La page est publiée sur votre domaine, à vos couleurs. Chaque réservation confirmée pose l'événement au calendrier, envoie son invitation, crée la fiche de contact avec sa langue, et peut ouvrir une tâche de projet. Le formulaire d'accueil pose les questions avant la rencontre plutôt que pendant.
Les consentements demandés au passage sont ceux de la Loi 25, gardés avec la réservation : une prise de rendez-vous recueille des renseignements, et l'outil le traite comme tel.
Comparable à Calendly ou Cal.com (vos données, votre domaine)
Fixer une rencontre à six personnes coûte une douzaine de courriels, et le créneau retenu finit souvent par ne plus être libre chez l'organisateur.
L'organisateur propose des créneaux déjà libres dans son agenda. Chaque personne invitée répond créneau par créneau, oui, si nécessaire, non, depuis une page qui se lit sur un téléphone et dans son propre fuseau horaire.
Un créneau cesse d'être viable dès qu'une personne obligatoire y répond non : c'est ce qui distingue un sondage utile d'un tableau de cases à compter à la main.
⚠️ Les créneaux proposés n'occupent pas l'agenda. Les réservations publiques continuent de passer pendant que le sondage court, parce que bloquer six créneaux pour en retenir un rendrait l'agenda inutilisable une semaine sur deux.
À la clôture, la rencontre part par le chemin habituel : événement d'agenda, invitation .ics, salle de visioconférence, rappels.
Une campagne de démarchage se perd rarement faute d'effort. Elle se perd parce qu'une cible tombe entre deux relances et que personne ne s'en aperçoit.
Une campagne réunit une liste de cibles, une cadence et le suivi de chaque dossier jusqu'à sa conclusion. Une cible est un dossier : une organisation ou une personne, sa personne-ressource, ses coordonnées et son historique. Une interaction est un contact journalisé, appel, courriel, lettre, texto ou rencontre, avec son sens, son résultat et un résumé.
⚠️ La cadence appartient à la campagne, pas à la discipline de chacun. Elle fixe, par canal, combien de contacts faire et à quel intervalle; le module en déduit la date du prochain contact de chaque dossier et affiche en tout temps qui est en retard, qui n'a jamais été joint, et qui a répondu.
Une demande de ne plus être sollicité se propage à toutes vos campagnes, présentes et futures. Un retrait qui ne vaudrait que pour la campagne en cours est un retrait qui n'en est pas un.
Les réponses reçues, les appels réellement passés et les rendez-vous pris s'y inscrivent seuls.
Comparable à Lemlist ou Salesloft, dans votre Odoo

Le blogue d'Odoo sait si un article est publié ou non, et rien d'autre : ni son pilier, ni la cadence du flux, ni ce qui bloque quoi, ni si la traduction suit.
Une entrée éditoriale porte son angle, sa promesse, son mot-clé visé, ses sources vérifiées et la liste de ce qu'il reste à faire. Un calendrier est un flux avec ses règles : cadence visée, plancher de mots, langues exigées, piliers avec leur part visée.
⚠️ Le principe tient en une phrase : ne stocker que les décisions, calculer tout le reste. La date de la dernière publication, le ratio par pilier, le nombre de mots, la complétude des langues ne se saisissent jamais à la main, donc rien ne dérive.
Un bouton propose le prochain article à sortir en expliquant chaque point de son classement, plutôt que de rendre un verdict. Une garde de pré-vol refuse la publication tant que la liste n'est pas verte, et elle vaut aussi pour une publication différée : c'est justement celle qu'on oublie de vérifier.
Les contrôles de style et d'accessibilité sont de simples règles, sans modèle d'intelligence artificielle : ils tournent toujours, y compris quand le réseau est coupé.
Comparable à Un calendrier éditorial Notion ou Airtable, adossé à votre blogue

Le papier voyage mal. Le reçu du fournisseur reste dans un manteau puis dans une pile, la carte d'affaires ramassée au salon se ressaisit trois semaines plus tard, et le document signé attend d'être au bureau pour rejoindre son dossier.
Cette page ouvre l'appareil photo et range à la place. La carte devient un contact, avec les doublons signalés avant d'écrire. La facture devient un brouillon de facture fournisseur, jamais une écriture, avec sa photo au fil. Le document rejoint le bloc-notes avec un rappel qui devient une activité, ou directement le fil d'une fiche cherchée au téléphone.
⚠️ Une facture numérisée reste un brouillon. Une lecture automatique qui se comptabiliserait seule ferait passer une erreur de lecture pour une écriture décidée.
Elle s'installe à l'écran d'accueil comme une application, sur Android comme sur iPhone, sans boutique ni téléchargement, et porte aussi sa tuile dans la grille des applications pour qui travaille au poste.
Chaque tuile est gardée par le droit du geste qu'elle fait : elle n'apparaît qu'à qui peut déjà créer un contact, une facture ou une note, et joindre une pièce à une fiche exige le droit de la modifier, pas seulement de la lire.
Comparable à Une application de numérisation, sans le septième paquet à installer et à entretenir
Deux questions que personne ne sait où écrire, et qui finissent dans un fichier de diagramme périmé le jour où il est fini.
La première est la chaîne de commande : un champ « supérieur immédiat » sur la fiche, distinct du rattachement à la société, parce que travailler chez quelqu'un et relever de quelqu'un sont deux faits différents. Un responsable de filiale qui répond au directeur du groupe est une structure réelle : la saisie le signale, elle ne le refuse pas, et le dessin montre le lien avec le nom de l'employeur sous le sien.
La seconde est la détention : qui détient quelle société, pour quelle part, dans quelle catégorie d'actions, avec droit de vote ou non, depuis quelle date et d'où vient l'information.
⚠️ Le pourcentage vit sur le lien et non dans la boîte, ce qu'un arbre ordinaire ne sait pas porter : une société a plusieurs détenteurs, chacun pour une part. Cent pour cent n'est jamais exigé, parce qu'une structure connue à moitié est le cas normal d'un prospect. Ce qui est refusé, c'est le cercle fermé, presque toujours un détenteur et une détenue intervertis.
Les deux dessins sortent au même endroit : un écran où l'on déplie et replie, et un PDF vectoriel aux couleurs de votre organisation. Une structure trop profonde pour tenir sur la page le dit, au lieu de se tronquer en silence.
Comparable à Un outil de diagramme, sans le fichier qui vieillit le jour où il est fini


Un canal de clavardage fait défiler; un babillard tient. Ce n'est pas la même chose, et c'est pour ça qu'une annonce importante se perd dans le premier.
Chaque publication s'adresse à tout le personnel, à des départements ou à des groupes. ⚠️ Qui n'en fait pas partie ne la voit nulle part, pas même par un export ou un lien direct : l'audience est une règle d'accès, pas un filtre d'affichage.
La lecture obligatoire écrit une ligne nominative et datée, part par courriel avec le lien pour confirmer, et la rédaction voit qui manque à l'appel. Une politique « envoyée à tous » ne prouve rien; une politique confirmée par vingt-huit personnes sur trente-deux dit exactement où en est le dossier.
Le signalement va à la personne désignée, et à elle seule : elle reçoit une activité et un courriel qui ne dit rien du contenu, et le dossier garde une copie de ce qui a été signalé.
Cinq ponts remplissent le fil tout seuls : carte de fête livrée, badge remis par un collègue, résultats d'une vague de pulse, événement à venir, et la tuile de ce qu'il vous reste à lire.
Comparable à Microsoft Viva Engage, sans le fil ouvert ni les communautés



La carte que tout le bureau signe se fabrique d'habitude dans un chiffrier de dates de fête et une chaîne de courriels. Les deux posent le même problème : la personne fêtée finit par l'apprendre.
Un lien et un code QR suffisent : chacun ajoute son mot, sa photo ou son GIF, et la carte part à la date choisie. Ce qui distingue le module tient dans deux règles plutôt que dans deux écrans.
⚠️ La première : la date vient de la personne, jamais du dossier RH. On lui demande le jour et le mois, sans l'année, et elle répond parmi quatre choix dont « non merci », qui la retire de tout. Son refus reste invisible à ses collègues comme aux ressources humaines, sinon il la dénoncerait.
La seconde : la surprise est posée dans la règle d'accès, alors une liste, un export ou un rapport ne peuvent pas la contourner.
Le calendrier couvre aussi l'anniversaire d'embauche et ses jalons, la bienvenue, le départ, la retraite, les félicitations et les condoléances. La personne qui organise reçoit un rappel dix jours avant, avec le bouton qui crée la carte, parce qu'un calendrier que personne ne regarde ne fabrique rien. Une carte restée vide n'est jamais livrée.
On y écrit aussi à la main, au doigt ou au stylet. À la livraison, la carte part avec ses souvenirs : un PDF et une page à garder hors du système, et à une adresse personnelle si la personne l'a donnée, parce qu'une carte dans la base disparaît un jour avec le compte.
Comparable à Kudoboard, sans l'abonnement ni le tableur des dates de fête

Odoo sait qui travaille chez vous. Il ne sait pas quelle convention couvre cette personne, depuis quand elle a de l'ancienneté dans son unité, ni quel délai court sur le grief déposé la semaine dernière.
Ce module ajoute cette moitié-là. L'unité d'accréditation, portée par une société : un groupe dont chaque établissement est une société distincte a autant de conventions que d'établissements, chacune avec sa propre échéance. La convention et ses articles rangés par sujet, qui se retrouvent sans être cherchés. L'ancienneté, portée par l'appartenance à l'unité et non par le contrat : ce n'est pas la même, l'une ouvre un avantage et l'autre décide d'une mise à pied.
La liste d'ancienneté affichée est une photo datée, pas une vue qui se recalcule. Une correction faite le mois suivant ne récrit pas l'affichage, et c'est tout l'intérêt : un rang se conteste contre ce qui a été affiché, pas contre l'état du jour.
Le grief vit au même endroit pour les deux parties, et chaque étape porte le délai de la convention et l'échéance qui en découle. Un dossier ne se perd pas sur le fond, il se perd sur le calendrier.
Les cotisations se décrivent par une règle qui porte le pourcentage et le montant fixe ensemble, se déclarent par période, et se rapprochent de ce que le syndicat a reçu. ⚠️ La cotisation suit l'unité, pas l'adhésion : l'article 47 du Code du travail impose la retenue à toute personne salariée de l'unité, membre ou non. Le module sépare donc la couverture et l'adhésion, l'une décidant du prélèvement et l'autre du droit de vote.
Une organisation sans syndicat ne voit rien changer : l'absence d'accréditation est un état lisible, pas un trou.


Ce que la convention impose à l'employeur, et quand. Une obligation porte son échéance, sa récurrence et son rappel : la personne responsable reçoit sa tâche avant la date, parce qu'une obligation dont personne n'est averti est une obligation manquée. Faite, une obligation annuelle crée la suivante et l'ancienne reste au dossier avec sa date, puisque c'est cet historique de conformité qu'un syndicat ressort.
La liste d'ancienneté affichée se compose d'un bouton à la date choisie, puis se fige. Une erreur se corrige en affichant une liste corrigée et datée, ce qui laisse la trace de la correction au lieu de l'effacer.
Les affichages de poste distinguent trois portes vers le même poste : l'affichage ordinaire, la supplantation et le rappel. Chaque candidature porte son rang au moment de l'affichage, recopié. ⚠️ Octroyer à une personne moins ancienne n'est pas interdit, mais le motif doit être écrit : c'est ce texte qu'on relira en grief.
La remise se prépare d'une ligne par personne couverte, et la règle de la convention s'applique à l'assiette que vous saisissez. L'écart entre le déclaré et le calculé reste visible : il s'explique ou se corrige, il ne s'efface pas.
Le pendant du côté employeur. Les adhésions gardent leur histoire : une personne quitte et revient, et c'est l'historique qui répond à « depuis quand est-elle membre ». Adhérer ne change jamais la couverture, qui vient de l'accréditation.
Les assemblées comptent le quorum sur les membres présents, pas sur l'effectif couvert : dans une unité où beaucoup cotisent sans avoir adhéré, ces deux nombres diffèrent nettement. La part du pour se calcule sur les votes exprimés, l'abstention restée dehors, faute de quoi des votes adoptés seraient comptés perdus.
Les délégués portent une banque de libérations datée, parce que ce qui se conteste n'est pas le principe mais le solde le jour d'un refus. Une libération refusée compte pour zéro heure et reste au dossier, avec son motif écrit.
Le rapprochement est la raison d'être du reste : ce que le syndicat a reçu, ce que l'employeur déclare avoir remis, et l'effectif couvert de l'unité, côte à côte. Un relevé sans remise liée n'est jamais dit rapproché : l'absence de comparaison ne doit pas se lire comme une comparaison réussie.
Odoo suit très bien le pipeline : le poste, la personne, la candidature, les étapes, les motifs de refus. Il s'arrête juste avant l'évaluation elle-même, qui tient dans un champ de notes libre et un questionnaire par poste, sans pondération, sans tour, sans panel et sans comparaison d'un candidat à l'autre.
Ce module reprend là. Vous écrivez une grille par rôle et par tour, avec des critères pondérés et une échelle décrite en comportements observables. ⚠️ Chaque membre du panel dépose sa notation avant de voir celle des autres, ce qui évite que le premier avis exprimé tire tous les suivants.
Un refus prononcé après une entrevue tenue exige un motif écrit, et le nom de la personne qui a décidé reste au dossier. Une grille publiée est gelée : la séance de l'an dernier se relit exactement telle qu'elle a été notée.
Aucun classement automatique n'est produit. Le score aide une personne à trancher, et un critère éliminatoire signale sans écarter personne : un outil qui range les candidats décide à votre place et vous laisse la responsabilité.
Huit modules s'ajoutent d'eux-mêmes au fil des besoins : les quatre courriels au candidat récrits, un portail où la personne suit son dossier, l'offre d'emploi sur votre papier en-tête et son envoi en signature, la conservation et la destruction prévues par la Loi 25 avec une mesure anonymisée qui survit aux notations détruites, les dépenses et le coût par embauche, et le rendement de chaque site d'emploi mesuré par un lien tracé.
Comparable à Workable ou Recruitee, sans sortir vos candidats de chez vous


Une journée de travail se passe rarement dans un seul écran. On saute des activités aux tâches, des tâches au courriel, du courriel au calendrier, et chaque saut coûte le temps de retrouver où on en était.
Un bureau est une mise en page nommée qui affiche ces écrans côte à côte. Chaque panneau pointe vers un écran existant et garde sa propre barre de recherche, son sélecteur de vues et ses favoris : ce n'est pas une tuile résumée, c'est l'écran complet, utilisable sur place.
Vous en créez autant que vous avez de contextes. Six mises en page, un raccourci clavier par bureau, et au choix un créneau horaire : le bureau du matin s'ouvre le matin, celui de la revue de portefeuille l'après-midi.
⚠️ Les bureaux sont personnels. Celui d'une collègue ne paraît pas dans votre liste, et c'est voulu : une mise en page imposée à tout le monde redevient un tableau de bord que personne ne regarde.
Comparable à Salesforce Lightning App Builder, version libre

Une chose à retenir arrive rarement au moment où l'on a le bon écran ouvert. Elle arrive pendant un appel, au milieu d'un devis, et elle finit sur un bout de papier ou dans un courriel qu'on s'envoie à soi-même.
Une note se prend depuis n'importe quel écran, par l'icône de la barre du haut ou par un raccourci clavier, sans changer d'onglet. Elle est privée par défaut, mise en forme, et s'attache à une ou plusieurs fiches : un contact, un devis, un projet, un billet. Toute fiche qui a un fil de discussion peut en porter.
On la retrouve par la recherche, par ses étiquettes, par l'épingle, ou depuis la fiche liée elle-même grâce à un bouton d'accès rapide. Le jour où la note devient une chose à faire, elle se convertit en activité datée ou en tâche de projet sans qu'on ressaisisse le contexte.
C'est ce dernier point qui la distingue d'un carnet : une note qui ne sait pas à quoi elle se rapporte oblige à raconter deux fois la même histoire.
Comparable à Apple Notes, mais lié à vos enregistrements

Une cartographie de processus se livre en PDF, se range dans un dossier partagé, et cesse d'être vraie au premier changement. Six mois plus tard, on la refait.
Ici, les pools, les couloirs, les nœuds et les flux vivent en enregistrements, rattachés à un client et à un projet, versionnés. Le modèle fait foi : le PDF, le .bpmn et le .drawio n'en sont que des rendus, et on peut toujours en produire un neuf.
Une cartographie se découpe en niveaux : vue d'ensemble au niveau 1, sous-processus repliés en 2 et 3, chacun une page autonome. C'est ce qui permet de montrer l'ensemble à une direction et le détail à l'équipe sans tenir deux documents.
Chaque étape porte son propre fil de discussion, ses photos d'atelier et ses documents. C'est là que se règle la question qui tue les cartographies : où est passée la remarque qu'untel avait faite sur l'étape 7.
Une cartographie de l'état actuel cesse d'être un livrable ponctuel pour devenir un référentiel qu'on travaille en continu. Export .bpmn et .drawio pour repartir dans un éditeur tiers.
Comparable à Lucidchart ou Visio, rattaché à vos dossiers


La ludification échoue quand elle récompense ce qui est facile à compter plutôt que ce qui compte. Un compteur de clics finit par produire des clics.
Fox Quest branche ses points d'expérience sur l'activité réelle : tâches terminées, feuilles de temps déposées, billets réglés, rencontres tenues. Le niveau se franchit par palier, dix niveaux à thème renard de Renardeau à Kitsune. Le badge se gagne à un jalon ou s'attribue à la main par un gestionnaire, en six catégories et cinq raretés.
Les récompenses se configurent et sont concrètes : carte-cadeau, journée flex, matériel d'équipe, palier de bonus. Un point qui ne mène à rien cesse d'être regardé au bout d'un mois.
⚠️ Le dosage est le vrai sujet. L'application est faite pour mettre un peu de jeu là où c'est utile, pas pour transformer une équipe en cohorte d'application d'apprentissage. Les règles se retirent aussi facilement qu'elles s'ajoutent, et rien ne dépend d'elles.

Un billet porte un numéro, un intitulé, une personne qui demande et une priorité. Odoo sait tenir cette liste. Ce qu'il ne sait pas dire, c'est pourquoi un dossier dort depuis six jours.
Ce module ajoute un état d'attente indépendant de l'étape : un billet peut être « en cours » du côté de l'équipe et bloqué chez le client ou chez un tiers. Confondre les deux fait porter à l'équipe un délai qui n'est pas le sien.
Chaque billet se rattache à un projet et à la banque d'heures de l'équipe : le temps saisi sur le billet décompte du solde convenu, sans double saisie et sans rapprochement de fin de mois. Les macros gardent les réponses qu'on réécrit dix fois par mois, et les délais de service se mesurent sur l'étape, pas sur l'âge du billet.
Le formulaire public est propre à chaque équipe, sur votre domaine et à vos couleurs. ⚠️ Il accuse réception immédiatement : une demande sans réponse automatique est une demande qu'on réécrit par courriel, et vous en traitez alors deux.
À la clôture, un sondage de satisfaction part de lui-même. C'est un fork allégé du module OCA helpdesk_mgmt, et non un produit séparé : ce qui vient d'Odoo reste d'Odoo.
Comparable à Zendesk ou Freshdesk, version PME

Chercher dans un ERP suppose de savoir d'avance où la chose se trouve. On ouvre l'application, puis la liste, puis on tape. Trois gestes avant le premier caractère utile.
Cmd+K ouvre une seule barre qui traverse près de vingt-cinq types de données : contacts, opportunités, projets, tâches, rencontres, courriels, SMS, appels, factures, demandes de signature, transferts sécurisés, matrices, résolutions, articles, produits, documents.
Tapez un numéro pour sauter directement à une tâche ou à un billet. Les fiches actives passent en tête et les dossiers clos sont grisés : une recherche qui remonte un dossier fermé au premier rang fait perdre plus de temps qu'elle n'en sauve.
Navigation aux flèches, ouverture d'un clic ou dans un nouvel onglet avec Ctrl+Entrée. Rien à configurer : la palette suit ce qui est installé.
Comparable à Cmd+K Linear ou Notion, dans Odoo
Une date d'échéance dit quel jour, jamais quel moment. Or beaucoup de choses à faire n'ont de sens qu'à une heure précise : l'appel se passe le matin, la relance à l'heure du midi, la sauvegarde hors des heures de bureau.
Ce module ajoute à la tâche une plage horaire indicative en plus de son échéance : matinée, midi, fin de journée, hors heures. Elle paraît sur la carte du kanban et sert de filtre, ce qui permet d'ouvrir sa journée sur ce qui se fait maintenant plutôt que sur tout ce qui est dû aujourd'hui.
⚠️ C'est une indication, pas une contrainte. Rien ne se déclenche à l'heure dite et rien ne se bloque en dehors : une plage qui déclencherait une action deviendrait une planification, et une planification se défend, se justifie et se maintient.
La même plage sert ailleurs dans Symbifox, notamment pour décider quel bureau s'ouvre à quel moment de la journée.

Une tâche qui attend une réponse du client n'est pas « en cours », et elle n'est pas « bloquée » non plus. Faute d'un mot pour le dire, elle reste en cours, et l'équipe porte un délai qui n'est pas le sien.
Ce module ajoute deux états distincts, Attente client et Attente externe, à côté de ceux d'Odoo. Ils sont visuellement distincts dans le kanban et pleinement compatibles avec les filtres et les rapports existants : un état ajouté qui casse les rapports ne sert qu'une semaine.
⚠️ L'état est distinct de l'étape. Une tâche peut être à l'étape « En cours » et en attente d'un tiers, et c'est précisément la combinaison qu'on veut voir : l'étape dit où en est le travail, l'état dit pourquoi il n'avance pas.
Le même mécanisme sert aux billets d'assistance, pour la même raison : mesurer un délai de réponse sans distinguer qui fait attendre donne un chiffre que personne ne peut défendre.
Comparable à Le pattern « statut d'attente » présent dans la plupart des outils de gestion de projet
Deux personnes ouvrent la même tâche à deux jours d'écart. On en archive une, et tout ce qu'elle portait part avec elle : la conversation, les pièces jointes, les heures saisies dessus.
Ce module déplace le contenu avant d'archiver. Le fil de discussion, les activités, les suiveurs, les pièces jointes, les heures et les dépendances sont réattribués à la tâche conservée, puis les autres sont archivées, vides.
Les heures comptent le plus : elles sont facturables, elles alimentent la banque d'heures et la rentabilité du projet. Une heure piégée dans une tâche archivée n'est ni perdue ni visible, ce qui est la pire des deux situations.
⚠️ Les tâches sources sont archivées, jamais supprimées. Leur numéro reste valide et une référence ancienne continue de mener quelque part, parce qu'un lien mort dans un courriel de l'an dernier ne s'explique plus.
Comparable à La fusion de tickets de Zendesk, pour vos tâches Odoo
Les fichiers d'un dossier vivent sur Nextcloud, le dossier vit dans Symbifox, et la personne passe sa journée entre deux onglets à recopier des liens.
Trois portes mènent aux mêmes fichiers : un onglet sur la fiche d'un projet ou d'une tâche, borné au dossier de cet enregistrement; une application complète au menu principal; et un lanceur de la barre du haut qui fait glisser l'explorateur par-dessus l'écran en cours.
Arborescence à gauche, aperçu intégré, téléversement par glisser-déposer, déplacement, liens de partage configurables, ouverture des documents bureautiques directement dans Nextcloud.
⚠️ Chaque personne navigue avec son propre compte Nextcloud, connecté une seule fois par l'authentification de votre organisation. Nextcloud applique donc ses propres droits, et chaque partage porte le nom de qui l'a créé. Un explorateur qui passerait par un compte de service montrerait à tout le monde les dossiers de tout le monde.
Symbifox ne remplace pas Nextcloud : vos fichiers restent chez vous, sur votre serveur.
Comparable à L'explorateur de fichiers de SharePoint, sur votre propre Nextcloud
Une pastille NFC ne déclenche rien toute seule. Elle porte quelques dizaines d'octets, et le seul format que les deux téléphones lisent sans application est un lien. Le téléphone l'ouvre, et c'est le serveur qui agit : c'est ce qui permet d'ajouter un geste sans que personne ait à mettre son téléphone à jour.
⚠️ Ce qui est gravé est un code public, jamais un secret : une puce se lit à quatre centimètres sans votre accord et se recopie pour quelques sous. L'identité vient d'ailleurs, et c'est ce qui sépare les trois portes : l'application Android avec le jeton de l'appareil apparié; le navigateur avec la session déjà ouverte; et la puce signée NTAG 424 DNA, qui signe chaque lecture et vaut pour une personne sans compte. Chaque geste s'exécute avec les droits du porteur, jamais plus.
Les gestes livrés : ouvrir la fiche, prendre et rendre un équipement, réserver une salle, noter sa présence, démarrer un chronomètre, faire une tournée de points dans l'ordre, signaler un problème qui ouvre un billet déjà rempli. Une pastille peut poser une question avant d'agir, ou proposer un menu.
Elle peut aussi demander une grille : conforme ou non, une valeur mesurée avec sa plage, un choix, une note. L'extincteur du mois, la porte coupe-feu, le cadenas. Le relevé est immuable une fois écrit, l'anomalie est suivie jusqu'à sa correction, et le registre sort en PDF avec l'article du règlement en tête.
Sans réseau, le tapotement est gardé avec son heure et part au retour du signal, la grille comprise. Un code QR imprimé à côté fait le même travail pour un téléphone sans NFC. Les puces signées se préparent depuis l'application, mais la clé de la société ne descend jamais dans un téléphone.
Comparable à Un lecteur de rondes et son logiciel, remplacés par une pastille à un dollar et le téléphone qu'on a déjà


Un assistant qui ne voit pas vos données répond dans le vide, et un assistant qui les voit depuis un service tiers vous fait sortir vos dossiers de chez vous. Gen répond aux deux problèmes en même temps.
Il s'ouvre de deux endroits : un panneau latéral qui suit la fiche que vous lisez, et une page pleine largeur avec toutes vos conversations. Une conversation ouverte depuis le panneau retient la fiche d'origine, et le panneau ne montre ensuite que ce qui la concerne.
Une consigne est une directive courte que l'assistant respecte partout, ou seulement sur un type de fiche : c'est là qu'on écrit le ton de la maison plutôt que de le redemander à chaque fois. Chaque tour est compté, en jetons, en durée et en coût équivalent, et les étapes qu'il a suivies restent lisibles : lire une tâche, chercher dans les courriels.
⚠️ L'assistant écrit sous votre identité. Une tâche qu'il ouvre porte votre nom dans l'historique, pas celui d'un robot anonyme, et il ne fait rien que votre compte n'aurait pas le droit de faire.
La connexion au modèle se fait depuis votre serveur : aucune donnée ne transite par un service qui n'est pas le vôtre.
Comparable à Microsoft Copilot, version self-hosted

Une facture fournisseur arrive en PDF et repart en saisie manuelle : le fournisseur, la date, le montant, la ventilation des taxes, les lignes. Quarante par mois, c'est une journée de travail qui ne produit rien.
Déposez le PDF. L'extraction rend le fournisseur, les dates, les montants, la ventilation TPS et TVQ et les lignes de détail, puis prépare le brouillon comptable.
⚠️ La validation humaine reste obligatoire, et l'écran est fait pour ça : les valeurs extraites se relisent d'un coup d'œil, à côté de l'image d'origine. Une extraction qui se comptabiliserait toute seule ferait passer une erreur de lecture pour une écriture décidée.
Le compte analytique se pose au passage, ce qui répartit la dépense par projet ou par client sans rien changer aux livres, et alimente la rentabilité affichée ailleurs.
Le traitement se fait depuis votre serveur. Une facture fournisseur porte vos prix, vos volumes et vos partenaires : elle n'a pas à sortir de chez vous pour être lue.
Comparable à Dext (ex-Receipt Bank), version libre et self-hosted
Un wiki vieillit mal parce que rien n'y dit quelle version a été distribuée, à qui, ni quand elle doit être revue.
Un document est une fiche : un nom, une référence, un type, un responsable, une date de prochaine révision. Son contenu vit dans des versions, chacune avec son numéro, son journal des modifications, son approbateur et sa date d'entrée en vigueur. Publier une version fige son contenu : c'est celle-là qui a été distribuée, et elle ne bougera plus.
Une distribution relie une version à quelqu'un, client ou employé, et enregistre l'envoi, la méthode et l'accusé de réception. C'est ce qui permet de répondre à « qui avait reçu la politique de mots de passe en février » sans rouvrir une boîte de courriels.
Les matrices suivent les livrables d'un mandat : statut, responsable, dates, pièces jointes, tâches liées. Les décisions prises en rencontre s'y versent, là où on les cherchera.
Plus qu'un wiki, moins qu'un ERP : le corps d'un document peut se rédiger ici, section par section, ou rester un pointeur vers un fichier externe.
Comparable à Notion ou Confluence, structuré par projet


Écrire à un contact demande de se rappeler de choses qui ne sont notées nulle part : on le tutoie ou on le vouvoie, son adjointe doit être en copie, et son associé a demandé à ne plus l'être.
Chaque contact porte son registre, sa salutation, sa clôture, et ce qu'il faut savoir avant de lui écrire. Au moment de composer, le bandeau lit les destinataires eux-mêmes, en À et en copie, et rappelle qui doit être en copie, qui l'est d'habitude et qui a demandé à ne plus l'être. Le bouton ajoute les copies dans le bon champ.
⚠️ Les règles de copie sont proposées, jamais appliquées : elles se déduisent des courriels réellement envoyés, avec le constat qui les motive, et rien ne bouge avant votre confirmation. Une copie ajoutée d'office finit par envoyer une mauvaise nouvelle à la mauvaise personne.
La relation se mesure chaque jour sur les messages eux-mêmes : vos courriels restés sans réponse, la longueur de ce que vous écrivez, le dernier échange dans chaque sens. Ce sont des faits, pas un score inventé.
Couplé au module d'expérience client, le persona montre aussi la dernière note du contact et son commentaire, là où vous lui écrivez.
Comparable à Salesforce Einstein Insights, version PME et libre



Un carnet de contacts se dégrade tout seul. Les titres changent, les numéros aussi, et personne n'ouvre une fiche pour corriger un poste qu'il ne compose jamais.
Numérisez une carte d'affaires, enrichissez un contact depuis les signatures de ses courriels en un clic ou en lot, créez un contact à partir d'un courriel reçu, importez des vCards, repérez les doublons.
Au salon ou en visite, la numérisation vit sur une page mobile installable : une adresse à ouvrir, aucune application à télécharger, et c'est l'appareil photo du téléphone qui prend la carte.
⚠️ L'enrichissement ne remplace jamais une valeur déjà saisie, et chaque ajout est journalisé. C'est la seule règle qui rend l'automatisme acceptable : un outil qui écrase un numéro corrigé à la main se fait couper au bout d'une semaine.
Un score de complétude met en évidence les fiches à compléter, plutôt que de laisser chercher. Les appels au modèle tournent sur votre propre infrastructure.
Comparable à Clearbit ou Dropcontact, en libre et self-hosted
Les codes à usage unique d'une équipe vivent sur le téléphone de quelqu'un. Personne ne sait ce qu'on détient pour qui, et un départ se découvre le jour où il faut entrer quelque part. Ce module met le coffre dans Odoo, chaque code rattaché à son client et à son mandat, et la fiche du client dit combien vous en tenez pour lui.
La propriété qu'il achète est plus rare que la fonction : le serveur ne détient aucune graine lisible. Le chiffrement se fait dans votre navigateur, la clé dérive d'une phrase qui ne part jamais, et les codes se calculent dans la page. Nous ne pouvons pas produire vos codes, et ce n'est pas une promesse : c'est vérifiable dans le code publié.
Ouvrez d'une empreinte ou d'une clé matérielle, gardez un code de relève hors ligne pour le jour où la phrase se perd. L'archive sort de la liste de tous les jours ce dont vous vous servez deux fois par an, sans rien détruire : le code y vit encore, et la recherche l'y retrouve. Un assistant lit le domaine de vos adresses et propose un rangement pour tout un coffre, que vous corrigez avant qu'il n'écrive.
⚠️ Et vous n'êtes enfermé nulle part : l'export chiffré est le défaut, un export en clair existe derrière votre phrase, avec une adresse otpauth:// par code que n'importe quel autre gestionnaire sait relire.
Un module de formation en ligne joue des contenus. Celui-ci tient le registre, ce qui n'est pas le même travail.
Une exigence dit qui doit quoi, et elle prend deux formes qui ne se réduisent pas l'une à l'autre : une activité précise que chaque personne visée doit avoir suivie et gardée valide, ou un nombre d'heures dans certaines catégories, avec les catégories qui ne comptent pas. De cette règle naît une ligne par personne, avec son échéance et son état : c'est cette liste-là qu'on montre à l'inspecteur.
En face, la réalisation porte la preuve : la vraie date, les heures, l'organisme, le numéro, l'attestation en pièce jointe, et la date d'expiration.
⚠️ Rien ne s'écrase : trois secourismes en neuf ans laissent trois lignes, et la suite se montre. L'expiration bouge toute seule, portée par une tâche quotidienne et non par un champ figé le jour où on l'a écrit.
Et ce qui manque ne vaut pas zéro : une ligne sans heures est marquée incomplète et sort des totaux, au lieu d'y entrer pour une valeur nulle qui ressemble à une mesure.
Comparable à Un LMS d'entreprise, ramené à ce qui se prouve

Le lecteur de contenus d'Odoo ne garde aucune date de complétion, et la ligne qu'il ajoute au dossier de l'employé porte la date du recalcul.
Ce pont écrit la réalisation au moment où la complétion arrive, avec les heures du cours. La personne qui n'a pas de compte en reçoit un, sans quoi le cours ne rapporte jamais rien.
Il regarde aussi le contenu : quand un cours gagne ou perd des chapitres après coup, le registre le signale sans rien décider. Monter la version fait refaire le cours à ceux qui l'avaient suivi; prendre acte fige le compte sans rien redemander.
⚠️ Corriger une coquille ne doit faire refaire le cours à personne, et c'est pour ça que la décision reste à une personne plutôt qu'à une règle.
Odoo 18 ne connaît aucun format de cours normalisé : son lecteur accepte une image, un article, un document, une vidéo ou un questionnaire, et c'est tout. Un organisme qui livre sa formation en SCORM, ce qui est le cas de la quasi-totalité d'entre eux, n'a donc aucun moyen de la faire jouer ni de faire remonter le résultat.
Ce module ajoute le type manquant, avec les deux API que la norme impose, celle de 1.2 et celle de 2004, parce qu'un catalogue en contient toujours des deux.
La complétion remonte jusqu'au registre par le crochet du lecteur : il n'y a qu'un seul chemin d'écriture.
⚠️ Le module dit ce qu'il ne fait pas : le séquencement SCORM 2004 n'est pas appliqué, et il l'annonce sur la fiche. Un lecteur qui prétend séquencer et se trompe est pire qu'un lecteur qui annonce qu'il ne séquence pas.
Odoo Événements sait déjà tenir une séance : la date, le lieu, les places, les inscriptions, le pointage. Ce pont ne le refait pas.
Il apporte les deux choses qu'une séance de formation exige et qu'un événement ne porte pas : la feuille de présence signée, produite en PDF avec les signatures apposées, et l'écriture au registre.
⚠️ Il corrige aussi deux faux amis du natif. La « date de présence » d'Odoo vaut l'instant du clic : une séance de mars pointée en septembre serait datée de septembre, et le registre daterait la formation du jour où quelqu'un s'en est souvenu. Le pont prend la date de la séance.
Et une inscription annulée garde sa date de présence, parce que le calcul ne s'efface jamais : lire ce champ ferait compter des présents qui ne sont pas venus.
Une présence non signée est consignée et marquée incomplète, jamais perdue : la personne était là.
Certaines formations ne sont pas des cours : ce sont des documents à lire, et la preuve attendue est un accusé daté, parfois signé, versé au dossier de la personne. Une politique de prévention, un processus d'accueil en plusieurs modules, une procédure qui change.
Distribuer une version, c'est assigner la formation. L'accusé écrit la réalisation, datée du moment où il arrive et rattachée à la version lue, pas au document en général. Une nouvelle version rouvre l'obligation de ceux qui n'ont accusé que l'ancienne, parce qu'une politique qui change doit être relue.
⚠️ Une signature exigée est exigée pour de vrai : tant qu'elle manque, rien n'est consigné. Une case cochée ne remplace pas un document daté et signé.
Quand un processus d'accueil comporte plusieurs modules, chacun a le sien, ce qui est la seule forme qui permette de dire lequel manque.
Une cartographie dit ce qui se fait et par quel rôle. Le registre dit qui doit savoir le faire. Entre les deux manquait une information que personne ne détenait : qui tient le rôle.
Le pont l'ajoute au couloir, et une exigence de formation peut alors viser ce couloir plutôt qu'une liste de noms recopiée à la main, qui se périme au premier départ. Quelqu'un qui entre dans le rôle hérite de l'exigence; quelqu'un qui en sort cesse d'en relever.
⚠️ Un couloir sans personne ne vise personne, et surtout pas tout le monde par défaut.
Depuis une étape de la carte, on voit ce qu'il faut savoir pour la tenir, et de là qui est à jour. L'entraînement à la tâche se consigne avec ce qui en tient lieu de preuve : le formateur, l'apprenant, l'étape travaillée, et la confirmation des deux. Une formation que seul le formateur déclare n'est pas une formation reçue.
Le registre sait ce qu'une formation a coûté : les heures, le taux horaire, les cotisations de l'employeur, les frais. Le budget sait ce qu'on avait prévu. Ce pont met les deux en face.
Une ligne budgétaire nomme des catégories de formation et son réalisé prend le coût des formations suivies dans la période, sans écriture comptable. Ce qui est dû et pas encore suivi apparaît comme engagé, pas comme une surprise de fin d'exercice.
⚠️ Le refus est partagé par les deux modules : une formation incomplète n'entre pas dans le réalisé, ses heures s'ajoutent aux heures non valorisées là où le budget les signale déjà, et une obligation qu'on ne sait pas chiffrer est comptée plutôt que silencieusement sautée.
Un engagement sous-évalué est pire qu'un engagement absent, parce qu'il a l'air renseigné.
La surface mobile du registre : mes obligations avec leur échéance, mes réalisations avec leur date d'expiration, et ce qu'on m'a demandé.
⚠️ Trois refus assumés.
Aucune route ne prend d'identifiant d'employé : la personne est déduite du jeton, jamais de ce que le client envoie, parce qu'un paramètre qu'on n'accepte pas est un paramètre qu'on ne peut pas forger. Le registre d'une organisation contient précisément ce que les gens n'ont pas à savoir les uns des autres.
Rien ne s'écrit au registre depuis le téléphone : une preuve de formation se dépose, elle ne se déclare pas.
Et un compte sans fiche d'employé rend une liste vide plutôt qu'une erreur : ne pas être au registre n'est pas une panne.
Trois obligations qu'un registre générique ne porte pas.
L'attestation d'abord : l'employeur doit pouvoir en délivrer une à qui a suivi une formation qu'il a donnée lui-même, quand le formateur externe n'en délivre pas. Le PDF porte l'objet, les heures, les dates, le formateur, et la bonne personne morale : celle de la réalisation, pas celle de qui imprime.
La conservation ensuite : six ans après la dernière année à laquelle la pièce se rapporte, calculée, et la suppression d'une ligne encore couverte est refusée.
Le relevé enfin : la masse salariale, la participation minimale, les dépenses admissibles calculées en heures multipliées par le taux horaire, l'excédent reporté et, s'il y a lieu, la cotisation.
⚠️ Les réalisations incomplètes en sont écartées et listées à part, avec leurs heures : un relevé qui avale les trous rend un chiffre faux qui a l'air juste. Le document dit lui-même qu'il appuie la déclaration sans la remplacer.
Onze références réglementaires sont livrées, citées au long.
Une allergie est un renseignement de santé, donc sensible au sens de la Loi 25. Un champ visible de toute l'entreprise et un champ réservé à qui organise les repas ne sont pas la même fonctionnalité.
Ici, la personne concernée et l'administration lisent la fiche, jamais le gestionnaire direct ni le reste du personnel. Chacun déclare la sienne lui-même, parce qu'un consentement dont le titulaire ne peut pas se servir n'en est pas un.
Le catalogue charge d'office les allergènes prioritaires reconnus au Canada, plus le latex, les piqûres et les produits parfumés.
⚠️ Et surtout : la liste de service, qui donne les contraintes alimentaires d'un groupe sans les noms, avec le nombre de personnes et la gravité la plus élevée. C'est ce qu'on transmet à un traiteur, au lieu de faire circuler un dossier médical pour commander des sandwichs.
Le pont vie privée ajoute le consentement exprès, la conservation liée au lien d'emploi et une purge livrée éteinte.
Comparable à Le tableur d'allergies dans le tiroir des RH, en conforme

Faire signer un document coûte un abonnement par utilisateur, ou une impression, une signature et un numériseur. Les deux chemins sortent le document de votre système.
Une demande de signature réunit un PDF, un ou plusieurs signataires et des pavés placés sur les pages : signature, paraphe, date, nom, courriel, texte, nombre, case à cocher, liste de choix. Chaque signataire reçoit un lien qui lui est propre et n'a besoin d'aucun compte.
Quand la dernière personne a signé, le document est scellé : sceau numérique PAdES que les lecteurs PDF affichent comme « signé et non altéré », certificat de complétion, et piste de vérification inaltérable avec horodatage, adresse, empreintes SHA-256 et horodatage RFC 3161 optionnel.
⚠️ La page de vérification publique est ce qui rend la piste opposable. Le tiers qui reçoit le PDF y dépose son exemplaire et voit s'il correspond, calculé dans son propre navigateur, sans rien téléverser : il n'a donc pas à vous faire confiance pour vérifier votre document.
Un code QR optionnel estampé sur le document y mène. Envoyez un devis, un bon de commande ou une résolution corporative en un clic.
Comparable à DocuSign ou le module Sign d'Odoo Enterprise, dans votre Odoo

Un fichier de plusieurs gigaoctets part en pièce jointe qui rebondit, ou par un service gratuit qui héberge les données du client ailleurs et n'en garde aucune trace.
Un transfert réunit un expéditeur, des destinataires, un objet, un message, des fichiers et une échéance. Le lien de partage porte un jeton qui ne se devine pas et cesse de fonctionner à l'échéance. Le code du destinataire est à usage unique, envoyé par courriel ou par SMS : tant qu'il n'est pas saisi, ni le message ni les fichiers ne s'affichent.
Le téléversement va du navigateur au stockage objet directement : les gros fichiers ne transitent jamais par le serveur, ce qui est la seule façon d'envoyer plusieurs gigaoctets sans le mettre à genoux.
⚠️ Le journal d'accès consigne chaque événement, de la création à la purge, avec horodatage, adresse et empreintes. C'est ce qui permet de répondre à la question qui compte en cas d'incident : qui a ouvert quoi, et quand.
Purge automatique à l'échéance, données hébergées au Canada, page publique à votre marque selon le domaine par lequel le visiteur arrive.
Comparable à WeTransfer ou SwissTransfer, avec la conformité Loi 25 en plus

Une formation annuelle en sécurité se suit en accéléré et s'oublie en deux semaines. Ce qui change un comportement, c'est de se faire prendre sans conséquence.
Un modèle de leurre réunit le faux courriel, la page d'atterrissage, la page éducative montrée ensuite et le cours assigné en cas d'échec. Une campagne envoie ce modèle à un groupe, à une date choisie, étalée ou non. Un résultat est une ligne par personne et par campagne : envoyé, ouvert, lien suivi, formulaire soumis, et surtout leurre signalé.
Le signalement compte autant que l'échec. Un bouton « Rapporter comme malveillant » vit dans la boîte de chacun, et une organisation où l'on signale vite se défend mieux qu'une organisation où personne ne clique.
⚠️ En cas d'incident réel, le rappel de courriels retire un message des boîtes Microsoft 365 ou IMAP, avec une quarantaine réversible : une suppression définitive sur un faux positif coûte plus cher que le message.
Les profils de risque sont par personne, et servent à cibler la formation, pas à classer les gens.
Comparable à KnowBe4 ou Terranova, en libre dans votre Odoo


Un audit TI se raconte facilement et se prouve difficilement. La question qui revient n'est pas « avez-vous des sauvegardes » mais « lequel de vos quatre fournisseurs les tient, et depuis quand ».
Cinq notions suffisent. Un élément d'audit est un thème à vérifier : quatorze sont livrés avec le module, des politiques aux sauvegardes. Un fournisseur TI est un tiers qui touche aux données de l'organisation auditée. Un client audité est le dossier du mandat. Une évaluation est le croisement d'un client, d'un fournisseur et d'un élément : c'est la case de la grille, et elle porte un statut. Un point de vigilance est un risque relevé en cours de mandat, avec sa priorité et sa personne responsable.
Le croisement est ce qui change tout. Évaluer un élément sans nommer le fournisseur qui le porte donne un rapport qu'on ne peut pas remettre à quelqu'un pour qu'il agisse.
Le tableau de bord résume chaque mandat en trois nombres, les éléments verts, jaunes et rouges, sans ouvrir le dossier. La couverture y figure à côté du taux d'adéquation : un mandat à 100 % d'adéquat sur 30 % d'évalué n'est pas un bon mandat.
Co-développé avec PME Conforme pour les audits Loi 25 des PME et OBNL québécois.
Comparable à Vanta ou Drata, adapté à la Loi 25



Faire jouer de la musique dans vos locaux donne lieu à des redevances, et le montant n'est pas final. Les tarifs de musique d'ambiance sont en instance devant la Commission du droit d'auteur, qui peut les homologuer des années plus tard, avec effet rétroactif.
Un établissement est le lieu où la musique joue : sa superficie, ses usages et ses jours d'exploitation forment l'assiette. Une période de licence est une tranche payée, avec son échéance de renouvellement, sa date de règlement et sa référence de paiement. Une ligne de redevance applique un tarif à une période et porte, en face, ce qui a réellement été payé.
⚠️ Le référentiel est daté : chaque période porte à la fois le taux proposé et le taux homologué. C'est ce qu'aucun chiffrier ne sait faire, parce qu'un chiffrier ne sait pas dire « pas encore homologué », et qu'une case vide se lit comme un zéro.
Un bouton chiffre l'exposition depuis 2020 : ce que vous avez versé sous un tarif que rien ne rend définitif, et ce que vous pourriez encore devoir.
Aucune musique ne transite : le module suit votre conformité, il ne diffuse rien.
Comparable à Le suivi qu'aucun chiffrier ne fait, parce qu'un chiffrier ne sait pas dire « pas encore homologué »

Un consentement qu'on ne peut pas reconstituer n'en est pas un. La question posée en vérification n'est pas « avez-vous demandé » mais « quel texte exact la personne a-t-elle accepté, et quand ».
Une finalité dit pourquoi vous collectez. Un avis est le texte présenté à la personne : il est versionné et chaque version porte une empreinte, ce qui permet d'affirmer plus tard ce qui a été accepté. Un consentement relie une personne, une finalité, une version d'avis et des preuves : fichier signé, capture, journal du portail.
Les préférences de contact disent par quel canal une personne accepte d'être jointe, avec un interrupteur Ne pas contacter qui prime sur tout le reste.
Le volet documentaire suit la même logique : calendrier de conservation, registre de destruction, registre d'incidents, traitement des demandes d'accès.
⚠️ Le moteur est multi-cadres. La Loi 25 est intégrée; des modules compagnons couvrent le RGPD, le UK GDPR, la LPRPDE et le Privacy Act 2020 néo-zélandais. Les courriels et les certificats s'adaptent au cadre applicable, parce qu'un délai de réponse et une définition d'incident ne sont pas les mêmes d'un régime à l'autre.
Comparable à OneTrust ou Didomi, version PME


Odoo Community n'a pas de vue Gantt, et ses tâches n'ont aucune date de début. On dessine donc l'échéancier ailleurs, et il diverge du projet dès la première semaine.
Le module apporte les deux, sans aucune bibliothèque Gantt : une seule géométrie est calculée côté serveur, et l'écran, le PDF, le PNG, le SVG, le classeur et le fichier Microsoft Project la tracent tous à l'identique. Deux rendus qui divergent, c'est deux vérités présentées au même client.
Un échéancier se dessine sur un projet, ou hors projet quand il s'agit d'illustrer une offre de service sans créer quarante tâches. Le couloir regroupe les barres par étape, jalon, personne, société, ou rien.
⚠️ Un début manquant ne se cache pas : la barre porte un trait pointillé et dit d'où vient sa date. Un échéancier qui devine une date de début sans le dire donne un plan que personne ne peut vérifier.
Import et export MSPDI et Excel dans les deux sens. Partageable au portail sans acheter un siège par personne.
Comparable à Un abonnement Gantt par utilisateur, ou Enterprise

Travailler avec un client sur ses tâches suppose habituellement de lui ouvrir un compte chez vous, ou de lui demander d'ouvrir un compte chez lui. Les deux coûtent, et les deux fuient.
Deux instances qui se font confiance se jumellent par invitation, entre administrateurs : l'une émet un code à usage unique, l'autre l'accepte. Un secret partagé naît des deux moitiés, aucune des deux ne le choisit seule, et il signe ensuite chaque message.
Une tâche fédérée apparaît chez l'autre dans un projet fermé, assignée à la personne qu'il a choisie. L'état, l'échéance, les messages et les petites pièces jointes suivent dans les deux sens.
⚠️ Ce qui ne traverse pas compte autant. Les notes internes restent chez leur auteur, et un message qui commence par 🔒 aussi. Rien ne se supprime jamais : retirer un partage arrête l'échange, il n'efface pas ce qui a été dit.
Seuls les projets qui nomment un pair proposent le partage, ce qui évite qu'une tâche parte chez un partenaire par un clic distrait.
Comparable à Nextcloud partage fédéré, Asana invités, Jira collaborateurs externes


Dans un mandat d'accompagnement, la question qui revient n'est pas « est-ce que ça avance » mais « qu'est-ce que vous attendez de moi ». Elle revient parce que la réponse n'est écrite nulle part où le client puisse la lire.
Chaque étape du mandat est documentée : ce qui s'y fait, ce qui doit être fourni, et par qui. L'équipe travaille sur un tableau de bord interne; le client ouvre un portail libre-service et voit où on en est, ce qui s'en vient, et ce qui reste de son côté.
⚠️ La partie qui change les choses est la dernière : dire au client ce qu'il doit fournir, avec sa date. Un suivi qui ne montre que l'avancement de l'équipe déplace la relance du client vers vous sans réduire le nombre de relances.
C'est fait pour les mandats linéaires, ceux qui passent par les mêmes étapes à chaque fois. Un mandat qui bifurque à chaque client se suit mieux en projet ordinaire.
Comparable à Asana Goals + un portail client maison
Vendre un forfait d'heures est simple. Savoir ce qu'il en reste, au milieu du mois, sans ouvrir un chiffrier, l'est moins.
Une banque d'heures est une fiche par client, pas un compte comptable. Le solde tient en une phrase : les crédits et les ajustements, moins les débits. Un débit est chaque ligne de feuille de temps saisie sur un des projets inclus. Un crédit est chaque ligne de facture validée, filtrée par société, par partenaire de facturation et par produit. Un ajustement est une entrée manuelle pour ce qui échappe aux deux autres : une reprise, une correction, une remise.
⚠️ L'application lit les feuilles de temps et les factures, elle ne les modifie jamais. Une banque qui récrirait une heure saisie ferait diverger la facturation de ce qui a été fait.
Le solde paraît au portail client en temps réel, et une alerte part au seuil convenu. Un client averti à dix heures restantes recharge; un client averti à zéro négocie.
Comparable à Le concept « hour bank » des cabinets-conseils, automatisé

Le temps se note après coup, de mémoire, en fin de semaine. C'est la source d'erreur la mieux documentée de la facturation à l'heure.
Un chronomètre se démarre depuis n'importe quelle tâche, depuis un kanban ou depuis la liste des tâches récentes. Plusieurs peuvent tourner à la fois et se mettre en pause, parce qu'une journée réelle n'est pas une file d'attente.
À l'arrêt, la durée est proposée selon votre arrondi et la feuille de temps s'écrit d'un geste. L'arrondi se règle une fois : facturer à la minute près donne des factures que personne ne relit.
L'application Android fait la même chose hors du navigateur, avec une notification persistante, un widget d'écran d'accueil, et le partage d'un lien de tâche pour démarrer son chrono depuis un courriel.
Le chrono vit dans la barre du haut : il reste visible quel que soit l'écran ouvert, ce qui est la seule façon de ne pas oublier qu'il tourne.
Comparable à Toggl ou Harvest, intégré nativement à Odoo
Mesurer la satisfaction est facile. Ne pas fatiguer les mêmes personnes en le faisant, et faire quelque chose du résultat, l'est beaucoup moins.
Un feedback est une entrée du registre : une note, un commentaire ou les deux, avec sa date, son canal et le client concerné. Un programme relie un sondage à une intention de mesure et fixe le gabarit d'invitation, le délai de rappel et la cadence minimale entre deux sollicitations.
⚠️ Les garde-fous sont globaux, pas par programme : un délai de repos par contact tous canaux confondus, une liste « Ne pas contacter », et l'exclusion des dossiers en recouvrement. Trois programmes qui se respectent chacun peuvent, ensemble, écrire quatre fois au même client en un mois.
Le score NPS se calcule sur une fenêtre honnête et reste masqué sous dix réponses : un score sur trois réponses n'est pas un score, c'est une anecdote avec une décimale.
La boucle fermée sur les détracteurs porte une échéance. Le registre de plaintes est calqué sur ISO 10002 : accusé de réception réel, cause fondamentale, suivi de satisfaction. Les témoignages restent verrouillés tant qu'un consentement n'est pas consigné.
Comparable à Qualtrics ou Delighted (l'essentiel, dans votre Odoo)

Odoo Communauté ne livre aucun module de budget.
Celui-ci pose vos postes budgétaires sur des groupes de comptes du grand livre, pas sur des comptes analytiques : un budget fonctionne donc dès le premier jour, même si aucune facture ne porte encore de clé analytique.
Quatre montants, le vocabulaire d'Odoo : prévu, réalisé, engagé et théorique. Le réel n'est jamais recopié, il se relit dans vos livres à chaque affichage.
⚠️ Le théorique suit le calendrier, pas le chronomètre. Une dépense annuelle ne se lisse pas sur douze mois : la répartition mensuelle est saisissable, et quand vos abonnements fournissent un échéancier daté, le théorique s'appuie dessus et le dit. Un prorata du temps écoulé crierait au dépassement chaque mois de renouvellement, et une alerte qu'on ignore ne protège rien.
Un budget ouvert ne se modifie plus : il se révise, et l'original reste lisible. Un contrôle de couverture signale les comptes qu'aucun poste ne couvre et ceux que deux postes comptent en double. Les alertes se déclenchent au franchissement d'un pourcentage et d'un plancher en dollars : un pourcentage seul hurle sur les petits postes, un montant seul reste muet sur les gros.
Et la prévision glissante : un horizon de douze à dix-huit mois qui traverse les exercices, refait chaque mois d'un bouton, où chaque passe garde ses chiffres pour toujours. C'est la comparaison entre deux passes qui apprend quelque chose : « on prévoyait 28 896 $, on prévoit 27 666 $, et la différence, c'est le vrai mois d'août ».
Comparable à Le module Budgets d'Odoo Enterprise, en libre, et qui suit le calendrier plutôt que le chronomètre

Odoo sait ce qu'une campagne a rapporté : montant facturé, pistes, devis, tout est calculé sur utm.campaign. Aucun de ses trente-trois champs n'est un coût. La campagne mesure donc un rendement dont elle n'a pas le dénominateur.
Ce module ne crée pas un registre de dépenses parallèle, qui finirait par diverger de la comptabilité. Il pose un compte analytique par campagne, avec une contrainte d'unicité pour qu'un compte ne serve jamais deux campagnes, et ventile le consommé entre ce qui est passé par la comptabilité et ce qui est du temps interne.
⚠️ Le temps est valorisé par Odoo à partir du coût horaire. Quand ce taux manque, le module compte les heures non valorisées et le dit, plutôt que d'afficher « rien dépensé » : un coût à zéro se lit comme une campagne rentable.
Une migration d'Enterprise vers Community abandonne une partie de vos données par construction : une base Community n'a pas de table pour les billets d'assistance, les articles de base de connaissances, les modèles de signature ni les plans d'abonnement. L'outil d'import les compte dans son sommaire, puis elles s'en vont avec la copie de départ.
Ce module est l'autre bout. Il garde d'abord : tout ce qui a été laissé de côté redevient consultable et cherchable dans votre instance, qu'une destination existe ou non. Il reloge ensuite vers l'équivalent libre, et chaque correspondance affiche ce qu'elle ne sait pas transporter avant d'écrire quoi que ce soit. Un aperçu montre les dix premiers enregistrements tels qu'ils seraient créés, avec la liste de ce qui a été écarté et pourquoi.
Rien n'est pris pour acquis : un contact qui n'existe plus est écarté avec sa raison plutôt qu'écrit au hasard, et chaque enregistrement est créé pour lui-même, de sorte qu'une ligne fautive n'emporte pas les autres.
⚠️ Et dix contrôles passent votre instance en revue après coup, là où l'outil d'import se contente d'imprimer une liste qui vit le temps d'une fenêtre : codes de langue ou de fuseau inexistants, adresse du site restée en essai, tâches planifiées arrêtées, compteurs en retard, pièces jointes dont le fichier n'a pas suivi. Un contrôle qui n'a pas pu regarder le dit, au lieu de se confondre avec un feu vert.

Un parc hébergé se tient dans la tête de quelqu'un jusqu'au jour où cette personne est en vacances et qu'un certificat expire.
L'application ouvre sur un tableau de bord de compteurs plutôt qu'une liste : disponibilité des 24 dernières heures, alertes en cours, services qui expirent à 30, 60 et 90 jours, maintenance, sauvegardes, domaines et sécurité. Trois boutons relancent les contrôles à la demande.
Un service est une chose que vous hébergez pour un client. Autour de lui viennent les conteneurs, les certificats, les sauvegardes restic, les mises à jour disponibles et les échéances de maintenance.
⚠️ Une sonde qui répond n'est pas un service qui fonctionne. Le contrôle de santé distingue le genre de ce qu'il mesure : un service peut être debout, répondre 200, et ne plus rien faire.
L'application couvre aussi le parc client (postes, clés de chiffrement, groupes), les licences logicielles avec leurs sièges et leurs alertes d'expiration, la téléphonie VoIP.ms et les rapports d'authentification courriel DMARC.
Comparable à Plesk ou cPanel, en libre


Il manque toujours un champ. Un numéro de dossier chez le client, une date de renouvellement, une case à cocher que seule votre équipe comprend. La réponse habituelle est un développement, pour trois champs.
Forge reste volontairement étroit : il ajoute des champs à des formulaires existants, et rien d'autre. Il ne crée pas de nouveau type de fiche, ne dessine pas de rapport et ne remplace pas un développement sur mesure.
Cinq objets suffisent. Le champ personnalisé, du texte au montant, de la date au lien vers une autre fiche. L'injection de vue, qui décide où il paraît : formulaire, liste, carte, filtres de recherche. Le bouton stat, qui affiche un compte en haut du formulaire et mène aux fiches comptées. La valeur par défaut, par personne ou par société. Le filtre partagé, offert à l'équipe plutôt qu'à son auteur seul.
⚠️ Forge garde la description de chaque ajout, puis reconstruit ce qu'il faut si une mise à jour efface le montage sous-jacent. Les données saisies dans un champ personnalisé ne sont jamais touchées : c'est la différence entre une personnalisation et une modification qu'on refait à chaque version.
Le module se nomme bf_studio_light dans le code et sur GitHub.
Comparable à Une alternative libre aux outils de personnalisation propriétaires

Une instance de gestion qu'on regarde tous les jours finit par ressembler à celle de tout le monde, et les PDF qui en sortent aussi. C'est le document envoyé au client qui en souffre le plus.
Ce module applique la police Lexend, dessinée pour la lisibilité, partout : interface et rapports PDF. Il pose les couleurs de marque, les logos de société et le favicon depuis les paramètres, sans toucher au code.
⚠️ Le réglage est par société. Sur une instance qui en porte plusieurs, chacune émet ses documents à sa propre image, et une facture ne sort jamais aux couleurs de la société voisine.
La cohérence va du client web jusqu'au PDF : une marque qui s'arrête au bord de l'écran n'est pas une marque, c'est un thème.
Comparable à Aucun équivalent direct côté libre
Une interface de gestion se regarde huit heures par jour, et souvent le soir. Le blanc pur d'Odoo n'a jamais été pensé pour ça.
Ce module bascule l'interface en teintes sombres, sur une palette grise sobre tirée des couleurs de marque. Ce n'est pas une inversion mécanique des couleurs : les fonds, les bordures, les états de survol et les couleurs d'avertissement sont repris un à un, pour que le rouge d'une échéance dépassée reste lisible et ne vire pas au brun.
⚠️ Le bleu de marque ne sert jamais de texte sur fond sombre. Il reste un fond, un trait, un accent. Un bleu clair posé en lettres sur un gris foncé passe les contrôles de contraste sur le papier et fatigue les yeux en pratique.
Le choix est personnel et se fait depuis les préférences du compte. Il ne s'impose pas à l'équipe et ne change rien aux documents produits : un PDF sorti en mode sombre reste un PDF sur fond blanc.
Comparable à Le mode sombre Slack ou Notion, dans Odoo
Un don se compte facilement. Savoir laquelle de vos deux sollicitations l'a produit, et lequel de vos donateurs de l'an dernier n'a rien donné cette année, demande une structure que les chiffriers n'ont pas.
La collecte se bâtit sur quatre niveaux. Le fonds dit où va l'argent et porte le compte analytique qui ventile le don. La campagne est l'effort d'une période, avec son objectif. La sollicitation est un effort précis à l'intérieur de la campagne. La trousse est une variante de cette sollicitation, l'enveloppe imprimée face au courriel.
⚠️ C'est la trousse qui répond à la vraie question : laquelle des deux a fonctionné. Sans elle, on mesure une campagne et on attribue son résultat au canal qu'on préfère.
Les personnes s'appellent des constituants, donateurs, membres et prospects réunis, avec leur sommaire de dons, leur cote, leur foyer et leurs codes de sollicitation. Le rapport des donateurs inactifs nomme ceux qui ont donné l'an dernier et pas cette année.
Formulaire de don public et portail donateur inclus. Les reçus officiels canadiens viennent du module compagnon « Reçus de dons ».
Comparable à Raiser's Edge / Blackbaud, dans votre Odoo

Un reçu de don non conforme n'est pas un détail de mise en page : il expose l'organisme à la révocation de son enregistrement, et le donateur à un refus de crédit.
Les reçus sont conformes aux exigences de l'ARC et de Revenu Québec, en français : numéro d'enregistrement, numérotation annuelle sans trou, montant admissible, dons en nature avec juste valeur marchande et évaluateur, reçus annuels cumulatifs, annulation et réémission.
⚠️ Le montant admissible est le don moins l'avantage reçu, et c'est là que la plupart des outils se trompent : un souper-bénéfice à 200 $ dont le repas en vaut 60 donne un reçu de 140 $, pas de 200 $.
La numérotation sans trou est l'autre exigence qu'on découvre en vérification. Un reçu annulé garde son numéro et se remplace par un reçu de remplacement qui le nomme, plutôt que de disparaître.
Le reçu est une mise en page autonome et à votre marque, pas une facture déguisée, envoyée par courriel avec son PDF joint.
Comparable à Le reçu fiscal de Raiser's Edge, adapté au Canada
Modules à usage unique qui soutiennent les applications : correctifs, ponts, réglages, thèmes.
Ce qui s'ajoute, ce qu'on apprend en le déployant, et rien d'autre. Vous partez quand vous voulez.
Un courriel de confirmation, et rien avant que vous ayez suivi son lien. Pas de traqueur, pas de revente.