Custom Odoo 18 Community Edition modules developed by Les services de consultation Blue Fox, Inc.
Every module in this repository ships its full source. What differs is what you may do with it, and there are three regimes.
65 modules are LGPL-3. Use them, modify them, redistribute them, build a product on them. Nothing is asked in return. These are the single-purpose modules — the UI fixes, the shared helpers, the Nextcloud integrations, the productivity pack. They are free because they are more useful to us being widely used than being held.
223 modules are BUSL-1.1. The source is published and auditable, and you
may run them in production for your own internal business operations — as a
company, as a freelancer, as one person on a laptop. What needs an agreement is
using them to provide a product or service to someone else: hosting them for a
client, reselling them, running them as a managed service. Each version converts
to LGPL-3.0-or-later four years after its release, after which every
restriction falls away. Each cohort therefore carries its own date: most of the
modules flipped in August 2026 convert on 2030-08-12, the ones that were
already BUSL keep their earlier date, and anything flipped since converts four
years from its own release. The LICENSE file inside each module states its
exact parameters, and it governs.
7 modules are AGPL-3, and not by choice: the fundraising, donation-receipt and helpdesk modules extend Odoo Community Association code that is itself AGPL-3, so they inherit it.
Odoo manifests show BUSL modules as Other proprietary because the manifest
schema has no BUSL value. The LICENSE file governs, not the manifest.
If you want to use a BUSL module beyond the grant above, talk to us. We license individually and we are not difficult about it.
Five modules self-host fonts rather than calling a font CDN, so no visitor IP ever reaches a third party. All are under the SIL Open Font License 1.1, which is not the licence covering the module around them — each carries a THIRD-PARTY.md and the full licence text beside the files:
| Module | Typefaces |
|---|---|
bf_sign |
Caveat, Dancing Script, Great Vibes |
bf_lexend |
Lexend |
bf_process |
Lexend |
bf_gantt |
Lexend |
bf_sms_archive |
Noto Emoji |
bf_process bundles Lexend for a stricter reason than rendering: its glyph
advances are frozen into a width table the module measures text with, so the
files are the reference its geometry was calibrated against.
One module vendors a JavaScript library rather than calling a CDN, for the same
reason: no visitor IP reaches a third party, and the version cannot change
under the module's feet. It is under its own licence, not the one covering
the module around it, and carries a THIRD-PARTY.md and the full licence text
beside the file:
| Module | Library | Version | Licence |
|---|---|---|---|
bf_softphone |
JsSIP | 3.11.1 | The MIT License |
bf_softphone loads it lazily, only for a member of the phone group who opens
the panel, so its 240 KB never enter the back-end bundle served to everyone.
Install one of these meta-modules to pull in a coherent set in a single click:
| Bundle | Licence | Includes | Use case |
|---|---|---|---|
bf_productivity_pack |
LGPL-3 | Universal search, bloc-notes, bureau, timesheet timer, daily digest, Lexend, dark mode, branding | Daily-use productivity + UI polish — the free one, start here |
bf_ops_pack |
BUSL-1.1 | Email management, meeting, persona, helpdesk, hour bank, chatter + mail glue | Consulting/MSP operations cockpit |
bf_loi25_suite |
BUSL-1.1 | audit_ti, privacy_consent, project_knowledge_matrix |
Quebec Loi 25 compliance stack |
| Directory | Name | Version | License | Description |
|---|---|---|---|---|
audit_ti |
Audit TI - Loi 25 | 18.0.1.17.2 | BUSL-1.1 | IT security audit management for Quebec's Loi 25 compliance |
bf_activity_calendar_link |
BF Activités - Lien Calendrier | 18.0.1.1.0 | LGPL-3 | Link existing calendar events to activities |
bf_activity_cancel_note |
Symbifox — Activity Cancel Note | 18.0.1.0.1 | LGPL-3 | Cancelling an activity can leave a note in the chatter, like marking it done |
bf_ai_bridge |
AI Bridge (socket transport) | 18.0.1.1.0 | LGPL-3 | The single transport to the AI bridge service |
bf_appointment |
Symbifox Appointment | 18.0.2.64.2 | BUSL-1.1 | Self-service public booking pages (extends resource_booking) |
bf_appointment_meeting |
Symbifox Appointment Agenda | 18.0.1.1.0 | BUSL-1.1 | Creates the meeting agenda when an appointment is booked, and hands the booker its link |
bf_appointment_poll |
Symbifox Appointment Polls | 18.0.1.16.0 | BUSL-1.1 | Availability polling: propose slots, collect answers, book the meeting |
bf_appointment_visit |
Symbifox Property Showings | 18.0.1.2.0 | BUSL-1.1 | Showing appointments for real estate: seller availability, visit register, approval loop, occupied dwellings |
bf_appointment_visit_property |
Visites de propriétés — pont Immeubles | 18.0.1.0.0 | LGPL-3 | Show a dwelling from your portfolio without retyping its address: address, occupant and the 24-hour notice for a rented unit come from the Immeubles socle |
bf_apps_menu |
Menu des applications cherchable | 18.0.1.0.0 | LGPL-3 | The apps menu becomes a keyboard-searchable grid of icons |
bf_attachment_version |
Versionnement des pièces jointes | 18.0.1.1.0 | BUSL-1.1 | Keeps the previous content whenever an attachment is overwritten |
bf_avatar |
Symbifox Avatars | 18.0.1.0.1 | BUSL-1.1 | An avatar in your house style for anyone without a photo, and a builder to make your own |
bf_avatar_gamification |
Symbifox Avatars pour Fox Quest | 18.0.1.0.1 | BUSL-1.1 | Unlock avatar parts with the XP earned in Fox Quest |
bf_babillard |
Babillard | 18.0.1.8.0 | BUSL-1.1 | Announcements with an audience, an expiry date and named read receipts, with a confidential reporting path |
bf_babillard_appointment_poll |
Babillard : sondage de disponibilités | 18.0.1.0.0 | BUSL-1.1 | An editor announces on the feed that a date poll is looking for answers |
bf_babillard_celebrations |
Babillard : célébrations | 18.0.1.1.0 | BUSL-1.1 | A delivered group greeting card appears on the noticeboard |
bf_babillard_event |
Babillard : événements | 18.0.1.1.0 | BUSL-1.1 | Upcoming events appear on the noticeboard and follow their changes |
bf_babillard_gamification |
Babillard : reconnaissance | 18.0.1.1.0 | BUSL-1.1 | A badge given by a colleague appears on the noticeboard |
bf_babillard_home |
Babillard : accueil | 18.0.1.0.2 | BUSL-1.1 | What you still have to read, on the dashboard |
bf_babillard_pulse |
Babillard : pulse | 18.0.1.0.3 | BUSL-1.1 | The displayable results of a closed pulse wave appear on the noticeboard |
bf_babillard_survey |
Babillard : sondages Odoo | 18.0.1.0.0 | BUSL-1.1 | An editor announces an open Odoo survey on the feed, with its link |
bf_bi |
BF BI | 18.0.1.6.1 | BUSL-1.1 | Design and edit dashboards on screen, straight from Odoo's views |
bf_bi_cx |
BF BI - Customer experience | 18.0.1.0.3 | BUSL-1.1 | Customer experience dashboard: NPS, responses, complaints and resolution time |
bf_bi_hosting |
BF BI - Hosting | 18.0.1.0.3 | BUSL-1.1 | Hosting dashboard: services, uptime, backups, storage, expiring domains |
bf_bi_hour_bank |
BF BI - Hour banks | 18.0.1.0.3 | BUSL-1.1 | Hour banks dashboard: balances computed by the hour bank module, adjustments |
bf_bi_report |
BF BI Reports | 18.0.1.0.1 | BUSL-1.1 | Power BI style reports on named measures: slicers, cross-filtering, drill-through, rich visuals |
bf_bi_timesheet |
BF BI - Professional services | 18.0.1.0.3 | BUSL-1.1 | Professional services dashboard: hours, revenue, labour cost and margin |
bf_bloc_notes |
BF Bloc-notes | 18.0.4.2.0 | LGPL-3 | Rich quick notes with multi-record links, one-click activity conversion, free colors and three layouts, keyboard shortcuts, and systray icon (Alt+N) |
bf_budget |
Budgets opérationnels | 18.0.1.0.4 | BUSL-1.1 | Operating budget by ledger position, compared against actual and committed spend |
bf_budget_campaign |
Budgets opérationnels — campagnes | 18.0.1.1.0 | BUSL-1.1 | Ties a campaign to an analytic account: it knew what it earned, now it knows what it spent |
bf_budget_forecast |
Budgets opérationnels — prévision glissante | 18.0.1.0.0 | BUSL-1.1 | A forecast re-made every month over 12 to 18 months, with comparable vintages |
bf_budget_forecast_subscription |
Prévision glissante — amorce par les engagements datés | 18.0.1.0.0 | BUSL-1.1 | Seeds the forecast from the dated renewal calendar instead of a flat average |
bf_budget_subscription |
Budgets opérationnels — engagements récurrents | 18.0.1.0.1 | BUSL-1.1 | Subscriptions become a calendar of dated commitments the budget can count early |
bf_bureau |
BF Bureau — vues multi-panneaux | 18.0.3.3.2 | LGPL-3 | User-configurable dashboards ("desks") with multi-pane Odoo actions, six layouts, keyboard shortcuts, time slots, and a sidebar |
bf_calculator |
BF Calculatrice | 18.0.1.2.0 | LGPL-3 | Top-bar calculator: history, labels in the math, reverse tax, hours, dates, Bank of Canada rates, post to chatter |
bf_calendar_invite |
BF Calendar — usable invitations | 18.0.6.1.1 | LGPL-3 | Branded calendar invitations written in the guests' language, carrying the .ics and a link to the attendee's invitation page, plus a prefilled SMS body. |
bf_calendar_mobile |
Symbifox — Agenda mobile | 18.0.3.7.0 | LGPL-3 | Calendar, deadlines and activities for a mobile client, carrying what CalDAV cannot: the meeting agenda, the minutes, the RSVP and the two reminder gestures |
bf_calendar_nc_talk |
BF Calendar — Nextcloud Talk button | 18.0.1.1.0 | LGPL-3 | Adds a '+ Nextcloud Talk' button next to '+ Odoo meeting' on calendar events. Creates a public Talk conversation via the Spreed OCS API and writes the room URL into videocall_location. |
bf_capture |
Captation audio | 18.0.1.2.4 | BUSL-1.1 | Record a meeting or a memo from a phone; the server names the file and drops it where the rest is already automatic |
bf_celebrations |
Célébrations | 18.0.2.2.0 | BUSL-1.1 | Tableaux de vœux collectifs, calendrier des occasions, et le consentement de la personne qu'on souligne |
bf_celebrations_email |
Célébrations : groupes de destinataires | 18.0.1.0.0 | LGPL-3 | Tend une carte de fête aux groupes de destinataires du composeur de courriels |
bf_charge |
Plan de charge | 18.0.1.1.3 | BUSL-1.1 | What is actually left to do, placed on weeks, against a declared capacity rather than a guessed one |
bf_chatter_chronological |
BF Chatter Chronological View | 18.0.4.2.0 | LGPL-3 | Sort the chatter feed by the email's original Date header instead of insertion id (Python _order + _message_fetch + JS Thread.fetch* patch); cogwheel action to re-parse lost Date headers from quoted body content |
bf_chatter_send_now_force |
BF Chatter — Force Send on Scheduled Send Now | 18.0.1.0.0 | LGPL-3 | The "Send Now" button on a scheduled chatter message sends immediately instead of waiting up to 5 min for the mail queue cron (restores parity with the daily auto-send cron) |
bf_chatter_target |
BF Cible de chatter | 18.0.1.1.0 | LGPL-3 | One search box to pick the record an importer posts onto: every chatter-bearing model at once, no model or project to choose first, pasted Odoo URLs and shorthands resolved inline |
bf_chatter_timesheet |
Symbifox — Feuille de temps depuis le chatter | 18.0.1.3.0 | LGPL-3 | Checkbox in the chatter composer to log a timesheet entry alongside an internal note. |
bf_claude_chat |
Gen | 18.0.1.34.0 | BUSL-1.1 | Chat with Gen, the AI assistant, directly inside Odoo |
bf_claude_chat_cockpit |
Gen — Cockpit | 18.0.1.0.1 | BUSL-1.1 | Vue d'administration des sessions Gen : pannes de flux et consommation |
bf_claude_chat_digest |
Gen — consommation Claude dans le digest quotidien | 18.0.1.3.0 | BUSL-1.1 | Daily digest sections: Claude usage per account (windows, reset, probe state) and the recipient's Gen conversations to follow |
bf_collabora_online |
Collabora Online, correctifs Blue Fox | 18.0.1.3.0 | BUSL-1.1 | Five fixes layered on the upstream Collabora connector, without forking it |
bf_color |
BF Color | 18.0.1.1.2 | LGPL-3 | Free colors resolved per user, per company and by automatic rules, with saved swatches |
bf_color_calendar |
BF Color for Calendar | 18.0.1.0.0 | LGPL-3 | A free color on meeting types, shown on the events' tags |
bf_color_crm |
BF Color for CRM | 18.0.1.0.0 | LGPL-3 | Free colors on CRM tags and opportunities |
bf_color_helpdesk |
BF Color for Helpdesk | 18.0.1.0.0 | AGPL-3 | Free colors on helpdesk tags, teams and tickets |
bf_color_hr |
BF Color for Employees | 18.0.1.1.0 | LGPL-3 | A free color on each employee and employee tag, followed by every agenda that sorts by employee |
bf_color_hr_skills |
BF Color for Skills | 18.0.1.0.0 | LGPL-3 | A free color on skill types |
bf_color_project |
BF Color for Projects | 18.0.1.0.0 | LGPL-3 | Free colors on project tags, tasks and projects, and tasks colored by their tags |
bf_contact_absence |
Symbifox Absences des contacts | 18.0.1.1.0 | BUSL-1.1 | Savoir qu'un contact est absent avant de lui écrire, de lui texter ou de l'appeler |
bf_contact_absence_autoreply |
Symbifox Répondeur d'absence sur statut | 18.0.1.1.0 | BUSL-1.1 | Declare yourself away once, and the responder, the calendar and the return all follow |
bf_contact_absence_calendar |
Symbifox Absences des contacts : calendrier Nextcloud | 18.0.1.1.0 | BUSL-1.1 | Proposer les absences notées à la main dans un calendrier Nextcloud |
bf_contact_absence_mail |
Symbifox Absences des contacts : lecture des répondeurs | 18.0.1.1.0 | BUSL-1.1 | Reconnaître les répondeurs d'absence reçus et proposer la période au lieu de l'écrire |
bf_contact_absence_sms |
Symbifox Absences des contacts : Messagerie SMS | 18.0.1.1.0 | BUSL-1.1 | Voir qu'un contact est absent avant de lui texter |
bf_contact_enrichment |
Enrichissement de contacts | 18.0.2.1.1 | BUSL-1.1 | Business cards (OCR) from the desktop or an installable mobile page, email signatures, vCard import, duplicate detection and completeness scoring, powered by Gen |
bf_corporate_governance |
Symbifox Corporate Governance | 18.0.1.1.0 | LGPL-3 | The minute book of a corporation or an association kept in Odoo: board, shareholder and members' resolutions, registers and a compliance calendar |
bf_credentials |
Symbifox Credentials | 18.0.3.1.1 | LGPL-3 | Encrypted per-project credential vault, with rotation, expiry and a second-factor register |
bf_cx |
Expérience client | 18.0.1.13.0 | BUSL-1.1 | Customer experience measurement: NPS programs, continuous feedback, complaints and consent-tracked testimonials |
bf_cx_ai |
Expérience client : analyse IA des verbatims | 18.0.1.2.3 | LGPL-3 | Sentiment, themes and a one-line summary of customer comments, through the AI bridge |
bf_cx_appointment |
Expérience client : feedback post-rendez-vous | 18.0.1.1.2 | BUSL-1.1 | Three-smiley feedback request when an appointment is completed (opt-in) |
bf_cx_crm |
Expérience client - sondage post-perte CRM | 18.0.1.1.0 | BUSL-1.1 | Automatic win/loss survey when a CRM opportunity is marked lost |
bf_cx_dashboard |
Expérience client - tuile tableau de bord | 18.0.1.1.2 | BUSL-1.1 | NPS tile with pending detractors and open complaints on the Symbifox dashboard |
bf_cx_digest |
Expérience client - digest quotidien | 18.0.1.1.2 | BUSL-1.1 | Customer-experience section (follow-ups, complaints, NPS) in the daily digest |
bf_cx_fundraising |
Expérience client : sondage donateur | 18.0.1.0.1 | AGPL-3 | Donor experience survey after a donation is confirmed (fundraising suite) |
bf_cx_gamification |
Expérience client : XP Fox Quest | 18.0.1.0.0 | BUSL-1.1 | Fox Quest XP for closed-loop follow-ups and resolved complaints |
bf_cx_helpdesk |
Expérience client - pont Helpdesk | 18.0.1.1.1 | BUSL-1.1 | Helpdesk tickets from complaints and detractor feedback, with a dedicated Complaints team |
bf_cx_hosting |
Expérience client : CSAT post-maintenance | 18.0.1.1.2 | BUSL-1.1 | CSAT request after a completed planned maintenance (opt-in) |
bf_cx_mass_mailing |
Expérience client : exclusion des boucles ouvertes (mailing) | 18.0.1.0.0 | BUSL-1.1 | Option to exclude open-CX-loop contacts from a mass mailing |
bf_cx_meeting |
Expérience client - feedback post-rencontre | 18.0.1.2.2 | BUSL-1.1 | Three-smiley feedback request after a meeting report is sent to the client |
bf_cx_onboarding |
Expérience client : panneau de mise en route | 18.0.1.0.0 | BUSL-1.1 | Onboarding panel to set up the Customer Experience module |
bf_cx_portal |
Expérience client : feedback au portail | 18.0.1.0.0 | BUSL-1.1 | Clients view their feedback and submit a comment from the portal |
bf_cx_privacy |
Expérience client - pont Vie privée (Loi 25) | 18.0.1.1.0 | BUSL-1.1 | Formal Law 25 consent flow for testimonials through the privacy module |
bf_cx_sign |
Expérience client : feedback post-signature | 18.0.1.1.2 | BUSL-1.1 | Three-smiley feedback request when a signature is completed (opt-in) |
bf_cx_sms |
Expérience client : invitation de sondage par SMS | 18.0.1.0.0 | BUSL-1.1 | Survey link sent by SMS to contacts without an email address |
bf_cx_subscription |
Expérience client : revenu récurrent à risque | 18.0.1.0.1 | BUSL-1.1 | Recurring revenue at risk on the Customer Experience dashboard tile |
bf_cx_website |
Expérience client : témoignages sur le site web | 18.0.1.1.0 | BUSL-1.1 | Public /temoignages page rendered dynamically from published testimonials |
bf_dark_mode |
Symbifox Dark Mode | 18.0.1.6.0 | LGPL-3 | Dark mode for Odoo using the Symbifox palette |
bf_default_all_companies |
BF Default All Companies | 18.0.1.0.0 | LGPL-3 | Pre-selects every allowed company in the multi-company switcher on first login |
bf_document_approval |
Documents — Approbation à plusieurs | 18.0.1.1.0 | BUSL-1.1 | A policy is published only once everyone who had to weigh in has done so, and its distribution follows the RACI recorded in the knowledge matrix |
bf_document_nextcloud_sync |
Document Nextcloud Sync | 18.0.1.5.0 | LGPL-3 | Document sync between Odoo and Nextcloud via WebDAV |
bf_editorial |
Atelier éditorial | 18.0.1.10.0 | BUSL-1.1 | Editorial calendar, measured cadence and publication gates for the blog: state is derived, only decisions are stored |
bf_editorial_audience |
Atelier éditorial — audience | 18.0.1.2.0 | BUSL-1.1 | An article's readership once the crawlers Odoo does not recognise are taken out, recorded daily before the visitor purge takes the trace away |
bf_editorial_bluesky |
Atelier éditorial — Bluesky | 18.0.1.0.0 | BUSL-1.1 | Post to Bluesky from the editorial workshop, over the AT protocol with an app password |
bf_editorial_genfox |
Atelier éditorial — Gen | 18.0.1.4.1 | BUSL-1.1 | Article suggestion, review and expansion by Gen, as proposals a human reads before applying |
bf_editorial_linkedin |
Atelier éditorial — LinkedIn | 18.0.1.0.1 | BUSL-1.1 | Post to LinkedIn from the editorial workshop, over the versioned API with a member token |
bf_editorial_manual |
Atelier éditorial — canal manuel | 18.0.1.1.1 | BUSL-1.1 | A channel fed by hand: the text is written and proofread in Odoo, the posting happens on the network |
bf_editorial_social |
Atelier éditorial — réseaux sociaux | 18.0.1.5.0 | BUSL-1.1 | Deferred distribution to social networks from the editorial workshop, with a no-duplicate guarantee and measurement coming back |
bf_email_management |
Gestion des courriels | 18.0.11.54.1 | BUSL-1.1 | Unified IMAP inbox + Odoo chatter projection, two-pane OWL folder browser (Apple Mail / Thunderbird), bulk per-row target inference |
bf_email_systray |
Boîte de réception bf.email — barre Odoo | 18.0.2.1.4 | LGPL-3 | Systray button opening the bf.email inbox with a (read + unread) counter |
bf_employee_experience |
Expérience employé | 18.0.1.0.1 | BUSL-1.1 | Benefits catalogue, rule-based eligibility, usage register and retention indicators |
bf_employee_experience_dashboard |
Expérience employé — tuile tableau de bord | 18.0.1.0.1 | BUSL-1.1 | Benefits take-up, and a count of paid benefits nobody claims |
bf_employee_experience_digest |
Expérience employé — digest quotidien | 18.0.1.0.2 | BUSL-1.1 | "Benefits" digest section: pending claims, usages with no entitlement, benefits nobody takes |
bf_employee_experience_expense |
Expérience employé — notes de frais | 18.0.1.0.0 | BUSL-1.1 | An approved expense becomes a benefit usage, at real cost |
bf_employee_experience_health |
Expérience employé — allergies | 18.0.1.2.0 | BUSL-1.1 | Allergies and food allergies, readable only by the person and by whoever organises |
bf_employee_experience_health_privacy |
Expérience employé — allergies, pont vie privée (Loi 25) | 18.0.1.0.1 | BUSL-1.1 | Express consent, retention tied to the employment relationship, destruction on departure |
bf_employee_experience_privacy |
Expérience employé — pont vie privée (Loi 25) | 18.0.1.1.0 | BUSL-1.1 | Declare what the usage register collects, set a retention rule, keep the measurement when the lines go |
bf_employee_experience_pulse |
Expérience employé : pulse | 18.0.1.2.1 | BUSL-1.1 | Anonymous mood pulse and eNPS: separate invitation and answer registers, shuffled batch hand-off, and display thresholds that hold because the answers are readable by no one |
bf_employee_photo_age |
Symbifox Âge de la photo des employés | 18.0.1.0.1 | BUSL-1.1 | Know how old an employee's photo is, and remind them to update it |
bf_expense_ocr |
Lecture des reçus | 18.0.2.1.1 | BUSL-1.1 | Photograph a meal receipt and let the extraction fill in the total, the taxes and the tip — read on the tenant's own Claude subscription, and nothing is pre-filled unless the receipt's own arithmetic balances |
bf_expense_tip |
Pourboire | 18.0.1.0.1 | BUSL-1.1 | The tip on a meal receipt, entered on the expense that carries it and removed from the tax base, so input tax credits are not overstated |
bf_federation |
Fédération | 18.0.1.5.2 | LGPL-3 | Federate two Odoo/Symbifox instances: share an object with the other side, messages and attachments following. The core carries tasks; satellites add deliverables, agendas, process maps and a Discuss channel |
bf_federation_discuss |
Fédération : canal de discussion | 18.0.1.1.1 | BUSL-1.1 | Un canal Discuss par objet fédéré, adossé au chatter qui fait foi |
bf_federation_document |
Fédération : livrables remis | 18.0.1.2.2 | BUSL-1.1 | Remettre un document à un pair fédéré, daté et versionné, et savoir qu'il l'a lu |
bf_federation_gantt |
Fédération : échéanciers | 18.0.1.0.1 | BUSL-1.1 | L'échéancier d'un chantier commun vit chez les deux firmes, et une date déplacée l'est des deux côtés |
bf_federation_meeting |
Fédération : ordres du jour | 18.0.1.1.0 | BUSL-1.1 | L'ordre du jour d'une rencontre paraît chez le pair, qui peut y proposer un sujet |
bf_federation_outreach |
Fédération : suivis de démarchage | 18.0.1.0.1 | BUSL-1.1 | L'agence qui démarche pour son client lui montre ses cibles et ses touches, et le client peut en écarter |
bf_federation_process |
Fédération : cartographies | 18.0.1.2.1 | BUSL-1.1 | La cartographie du client vit chez lui, et la version qui suit y arrive toute seule |
bf_federation_timesheet |
Fédération : relevés des heures | 18.0.1.0.1 | BUSL-1.1 | Le relevé des heures d'une période, remis au partenaire comme un livrable, avec son accusé de réception |
bf_floorplan |
Plans d'étage | 18.0.1.1.3 | BUSL-1.1 | Floor plans drawn from records: rooms, desks, devices and cables, each shape backed by a form, with a built-in SVG editor, PDF and diagrams.net export |
bf_floorplan_hosting |
Plans d'étage : hébergement | 18.0.1.1.0 | LGPL-3 | Hosting endpoints and servers placed on the floor plan, with attention colours and a jump from the device form to its spot |
bf_flux |
Flux RSS | 18.0.1.2.3 | BUSL-1.1 | RSS and Atom feeds polled at their own pace, de-duplicated by stable id, sorted by rules per list, delivered by department, project or person in Discuss and a daily or weekly digest, with a card reader where opened items leave the to-read list, and watched topics (your company, brands, clients) searched in the news with namesakes set aside |
bf_flux_babillard |
Flux RSS : babillard | 18.0.1.0.1 | BUSL-1.1 | Turns a retained feed item into a draft noticeboard post addressed to the list's departments; editors only |
bf_flux_branding |
Flux RSS : bandeau de la maison | 18.0.1.0.1 | BUSL-1.1 | Gives the RSS digest the house mail layout with its own banner title instead of the company name |
bf_flux_ia |
Flux RSS : tri par IA | 18.0.1.1.2 | BUSL-1.1 | Second sort after a list's rules: a language model scores each retained item 0-100 with a one-line reason and flags what cannot wait, sending an email alert behind freshness, one-per-event and daily-cap guards; an outage never blocks delivery |
bf_flux_nextcloud |
Flux RSS : corpus Nextcloud | 18.0.1.0.2 | BUSL-1.1 | Deposits what a list retains into a Nextcloud folder as monthly Markdown files per source, with an index, for a knowledge base read by an agent |
bf_flux_partage |
Flux RSS : partage externe | 18.0.1.0.3 | BUSL-1.1 | Secret share links without login: a public card page and the same items as RSS, one link per recipient, with expiry, visit count and revocation |
bf_follower_cleanup |
BF — Hygiène des notifications (abonnés et activités internes) | 18.0.2.2.0 | LGPL-3 | Crons that remove non-employee followers (customers keep their own invoices, so the portal shows them) and unsubscribe users from the leads they do not sell, plus a guard that never emails an activity notification to a portal account |
bf_fundraising_core |
Levée de fonds — Cœur | 18.0.1.0.0 | AGPL-3 | Donor management and fundraising structure (Funds / Campaigns / Appeals / Packages) on top of the Donation module — comparable to Raiser's Edge |
bf_fundraising_web |
Levée de fonds — Web & Portail donateur | 18.0.1.0.3 | AGPL-3 | Public website donation form + donor portal (giving history and official receipt download) |
bf_gamification |
Fox Quest | 18.0.2.7.1 | BUSL-1.1 | Gamification system with XP, levels, badges, and rewards |
bf_gantt |
Échéancier | 18.0.1.5.7 | BUSL-1.1 | Gantt schedules for Odoo Community, on a project or standalone, shareable on the portal without a seat, exportable to branded PDF, PNG, SVG, XLSX and MS Project |
bf_helpdesk |
Symbifox — Helpdesk | 18.0.4.15.5 | AGPL-3 | Branded helpdesk extension: per-team public form, hour-bank ribbon, waiting states, ntfy critical hook, persona panel, knowledge-matrix link, ticket→meeting, IA triage via Gen, CSAT on close, branded portal, dashboard tile, IMAP gateway hardening, SLA + macros + auto-tag + auto-ack, ticket timesheets (hour-bank deduction), branded client updates |
bf_helpdesk_digest |
Helpdesk — Section du digest quotidien | 18.0.1.0.2 | LGPL-3 | Adds an « Assistance » section to the daily digest: the reader's open tickets and their daily helpdesk notifications |
bf_helpdesk_merge |
Helpdesk — Doublons, fusion et incidents | 18.0.1.3.2 | AGPL-3 | Complete ticket merge (timesheets, attachments, followers, internal notes), duplicate suggestions at creation, parent incidents with a grouped reply |
bf_home |
Accueil Symbifox | 18.0.2.1.0 | BUSL-1.1 | Home screen replacing the app grid, ordered by who is blocked: your day, what waits on others, money, risk — every figure opens its filtered list |
bf_hosting_patch |
Hébergement — Mises à jour du système | 18.0.4.5.0 | LGPL-3 | Fleet update state per installed system — pending packages, kernel, reboots — and applies updates on command via a queue the machines poll |
bf_hosting_patch_digest |
Hébergement — Mises à jour système : section du digest | 18.0.1.1.0 | LGPL-3 | Fleet update section for the daily digest: silent when all is well, always present when a machine stops reporting |
bf_hour_bank |
Banque d'heures | 18.0.1.15.2 | BUSL-1.1 | Automated tracking of client hour banks with threshold-based proactive notifications (unbilled hours, % of allocated budget, balance floor) |
bf_invoice_ocr |
Symbifox — Invoice OCR Scanner | 18.0.1.0.1 | BUSL-1.1 | Extract vendor bill data from PDF attachments via the bf_llm gateway |
bf_labour_relations |
Relations de travail | 18.0.1.0.0 | BUSL-1.1 | Certification, collective agreement, seniority, grievances and union dues, from the employer's side as much as the union's |
bf_labour_relations_employer |
Relations de travail : côté employeur | 18.0.1.1.0 | BUSL-1.1 | Obligations and reminders, the posted seniority list, job postings and movements, dues remittance preparation, the joint committee |
bf_labour_relations_union |
Relations de travail : côté syndical | 18.0.1.0.0 | BUSL-1.1 | Memberships, dues collected and reconciled, meetings and votes, stewards and release time, the grievance seen from the complainant |
bf_letter_writer |
Letter Writer | 18.0.2.0.1 | BUSL-1.1 | Branded official-letter editor: 5 letterhead modes, field merge ({{ }}), reusable templates and quick-text blocks, email + PDF send |
bf_lexend |
Lexend Typeface | 18.0.3.0.0 | LGPL-3 | Adds Lexend across UI/PDF reports and per-company brand color settings (report_brand_primary, report_brand_dark) |
bf_linkpage |
Pages de liens | 18.0.10.0.2 | BUSL-1.1 | Public link page for a person, a client organisation or a one-off, whose links are resolved from your own records rather than retyped, with a branded QR code for email signatures |
bf_llm |
Symbifox — LLM Provider | 18.0.1.0.1 | LGPL-3 | Provider-agnostic LLM access (chat + document/vision extraction) for Symbifox modules |
bf_mail_import |
BF Import courriel (.eml) | 18.0.1.5.0 | LGPL-3 | Import .eml files into the Odoo chatter |
bf_mail_subject_clean |
BF Nettoyage des sujets de courriel | 18.0.1.2.0 | LGPL-3 | Prevents "Re: Re: Re:" stacking on subjects sent through the chatter |
bf_mail_vigie |
BF Vigie courriels (re-router) | 18.0.2.4.0 | BUSL-1.1 | "Re-route" button on bf.email to move a misrouted email to the correct chatter |
bf_mailing_signup |
Inscription publique à une liste d'envoi | 18.0.1.2.0 | LGPL-3 | Plain-HTML newsletter sign-up form with double opt-in, no reCaptcha and no third-party asset |
bf_mass_notes |
Symbifox — Notes en lot | 18.0.1.0.0 | LGPL-3 | List-view Action to post a chatter note (or message) to many selected records at once; binds to all mail.thread models |
bf_meeting |
Rencontres | 18.0.3.65.2 | BUSL-1.1 | Agendas, meeting records, and discussion items unified around calendar.event with automatic reminders |
bf_meeting_call_archive |
Rencontres ↔ Archive d'appels | 18.0.1.0.0 | BUSL-1.1 | Optional link between a meeting record and an archived call |
bf_meeting_portal |
Rencontres - Portail client | 18.0.2.1.0 | BUSL-1.1 | Portal read access to meeting reports that were already emailed to the client |
bf_meeting_timer |
Chronomètre de rencontre | 18.0.1.5.0 | BUSL-1.1 | The real time each agenda topic actually took, and the projected end of the meeting while it is still running. |
bf_membership |
Membres | 18.0.1.0.4 | BUSL-1.1 | The member register of an association, a non-profit or a federation: categories, memberships, renewals and delegates, without depending on an invoice |
bf_membership_account |
Membres : facturation et reçus fiscaux | 18.0.1.0.2 | BUSL-1.1 | Invoices the membership fee in Odoo, follows its payment on the membership, and issues a registered charity's partial tax receipt for money actually received |
bf_membership_assembly |
Membres : AGA et votes | 18.0.1.0.3 | BUSL-1.1 | General meetings of members: notice within the legal delays, voters fixed at a record date, attendance, quorum, proxies, show-of-hands or secret-ballot votes |
bf_membership_assembly_governance |
Membres : AGA et registre corporatif | 18.0.1.0.2 | BUSL-1.1 | A proposal adopted at a members' meeting is entered in the corporate governance resolution register, frozen as voted |
bf_membership_portal |
Membres : portail, adhésion en ligne et répertoire | 18.0.1.2.1 | BUSL-1.1 | The member's portal: membership, renewal and online payment, membership card; a public application form and an opt-in member directory |
bf_music_licensing |
Licences musicales : conformité en établissement | 18.0.1.2.0 | BUSL-1.1 | Tracks the SOCAN and Re:Sound royalties an establishment owes, holding the proposed rate beside the certified one so a retroactive Copyright Board ruling is priced, not discovered |
bf_nextcloud_browser |
Nextcloud File Browser | 18.0.4.1.1 | LGPL-3 | Embedded + standalone Nextcloud WebDAV file browser on projects/tasks, each person on their own Nextcloud account (Login Flow v2, SSO-friendly): folder tree, modal preview, drag-and-drop upload/move, configurable share presets, open-in-Nextcloud for office files, Knowledge Matrix linking, systray launcher |
bf_nfc |
Gestes par pastille NFC | 18.0.2.6.4 | BUSL-1.1 | NFC tags that play a gesture in Odoo: three doors (app token, browser session, NTAG 424 signed tag), menus and questions, bounded offline taps, QR label twin, tag templates and a setup wizard. Signed chips are written from the app with the server driving, so the AES keys never leave Odoo |
bf_nfc_event |
Pastilles NFC : la présence à une séance | 18.0.1.0.1 | BUSL-1.1 | Tap the room's tag to record attendance at the session in progress, registration created if missing |
bf_nfc_gen |
Pastilles NFC : les skills de Gen | 18.0.1.0.1 | BUSL-1.1 | A tag that asks Gen to prepare a meeting's agenda or refine its minutes, from a list the administrator ticks |
bf_nfc_helpdesk |
Pastilles NFC : signaler un problème | 18.0.1.1.0 | BUSL-1.1 | A tag on a customer's equipment opens a ticket already filled in: customer, place, reporter, time |
bf_nfc_inspection |
Pastilles NFC : relevés et registres | 18.0.1.0.2 | BUSL-1.1 | A checklist filled in at every tap, non-conformities followed to their correction, and the register that comes out of it |
bf_nfc_loan |
Pastilles NFC : le prêt d'équipement | 18.0.1.2.0 | BUSL-1.1 | Equipment loans by tag: free you take it, yours you return it, someone else's asks first; reminders past a delay |
bf_nfc_meeting |
Pastilles NFC : la présence à une rencontre | 18.0.1.0.2 | BUSL-1.1 | Tap the meeting room's tag to be marked present at the meeting in progress you are invited to |
bf_nfc_room |
Pastilles NFC : la salle de réunion | 18.0.1.1.0 | BUSL-1.1 | Meeting room door tag: free or taken, take 30 min or 1 h, confirm, release; unconfirmed bookings lose their room |
bf_nfc_round |
Pastilles NFC : les tournées | 18.0.1.1.0 | BUSL-1.1 | Patrol and maintenance rounds: checkpoints tapped in order, offline time kept, one alert per missed round |
bf_nfc_round_inspection |
Pastilles NFC : tournées avec relevé | 18.0.1.0.1 | BUSL-1.1 | A round checkpoint that carries a checklist: the pass and the reading in a single tap |
bf_nfc_timer |
Pastilles NFC : le chronomètre | 18.0.1.0.1 | BUSL-1.1 | NFC tag gestures for the timesheet timer: start, stop, and stop that logs the timesheet in the same request |
bf_no_gateway_bounce |
BF No Gateway Bounce | 18.0.1.0.0 | LGPL-3 | Never auto-reply MAILER-DAEMON bounces to people who write to Symbifox |
bf_oe2oc |
Reprise après migration Enterprise | 18.0.1.0.1 | LGPL-3 | Recover the data an Enterprise-to-Community migration left behind, and check what still needs settling |
bf_onboarding_base |
Symbifox Onboarding Foundation | 18.0.2.2.0 | LGPL-3 | Shared helpers for Symbifox per-module onboarding panels. |
bf_org_chart |
Organigrammes : le moteur de dessin | 18.0.1.2.0 | BUSL-1.1 | Une géométrie, deux rendus : l'organigramme à l'écran et le même en PDF |
bf_org_chart_ownership |
Organigramme de détention | 18.0.1.1.0 | BUSL-1.1 | Qui détient quoi, pour quelle part, et le dessin qui va avec |
bf_org_chart_people |
Organigramme des personnes | 18.0.1.1.1 | BUSL-1.1 | Qui relève de qui, sur les contacts, avec le dessin et son PDF |
bf_otp |
Symbifox OTP | 18.0.12.2.0 | LGPL-3 | One-time-code vault whose server can read no seed: encryption and code generation happen in the browser |
bf_outreach |
Campagnes de démarchage | 18.0.1.4.0 | BUSL-1.1 | Track call, email and letter outreach campaigns, with a follow-up cadence per channel |
bf_outreach_appointment |
Démarchage — rendez-vous | 18.0.1.0.0 | BUSL-1.1 | A confirmed booking logs a meeting and advances the outreach target on its own |
bf_outreach_call |
Démarchage — appels journalisés | 18.0.1.0.0 | BUSL-1.1 | Reconciles the calls actually placed with the outreach targets, duration included |
bf_outreach_email |
Démarchage — réponses courriel | 18.0.1.0.0 | BUSL-1.1 | Recognises replies from outreach targets in the received-email archive |
bf_persona |
Persona des contacts | 18.0.3.2.1 | BUSL-1.1 | What to know before writing to a contact: register and salutation, who belongs in copy and who must never be, and a relationship measured on the mail actually exchanged |
bf_persona_cx |
Persona des contacts - expérience client | 18.0.1.0.0 | BUSL-1.1 | The contact's own feedback in the composer: last score with its comment, open complaints, and the relationship state that follows from them |
bf_policy |
Symbifox — Blue Fox OS Policy | 18.0.2.13.0 | BUSL-1.1 | Manage Blue Fox OS workstations from Odoo: install, sign-in, disk encryption, apps and browser policy served to each machine, with machine enrolment and disk-passphrase escrow |
bf_process |
Cartographie de processus | 18.0.5.0.8 | BUSL-1.1 | Living process maps stored as records, not files: BPMN 2.0 and diagrams.net export, an in-app SVG viewer and editor, per-activity validation sign-off, versioning with freeze and diff, BPMN re-import, an assembled deliverable (cover, contents, appendices), and a target process whose gap to the current state is seeded, owned and tracked |
bf_project_merge |
Symbifox — Regroupement de tâches | 18.0.1.0.0 | LGPL-3 | Merge tasks by reassigning their content (messages, activities, hours, dependencies) to the kept task, then archive the rest. |
bf_property_core |
Immeubles : socle | 18.0.2.10.1 | BUSL-1.1 | The neutral foundation: organisations, buildings, dwellings and occupants, for divided co-ownership and residential rental alike |
bf_property_cx |
Copropriété : satisfaction des occupants | 18.0.1.4.0 | BUSL-1.1 | Ask the occupant how their maintenance request went, once it is closed |
bf_property_finance |
Copropriété : charges et appels de fonds | 18.0.4.7.2 | BUSL-1.1 | Annual budget, allocation of common expenses and calls for contributions |
bf_property_governance |
Copropriété : assemblées | 18.0.2.4.1 | BUSL-1.1 | Co-owners' meetings: notice, quorum, weighted voting and majorities under the Civil Code of Québec |
bf_property_operations |
Immeubles : exploitation | 18.0.7.5.1 | BUSL-1.1 | Buildings and teams: where each piece of equipment is, and who answers for the building |
bf_property_operations_portal |
Immeubles : de la demande au travail | 18.0.2.1.1 | BUSL-1.1 | Route an occupant's request to their building's team, and turn it into the work to be done |
bf_property_operations_privacy |
Exploitation : pont vie privée (Loi 25) | 18.0.1.3.0 | BUSL-1.1 | Record in the Law 25 register what a work shift says about employees |
bf_property_operations_records |
Copropriété : le carnet et l'exploitation | 18.0.3.3.0 | BUSL-1.1 | The maintenance logbook cites the equipment operations keeps, and flags when the two disagree |
bf_property_portal |
Copropriété : portail de l'occupant | 18.0.6.10.2 | BUSL-1.1 | Occupant portal: notices, documents, contact details, maintenance requests, common-area bookings, parcels and visitors |
bf_property_privacy |
Copropriété : pont vie privée (Loi 25) | 18.0.2.1.1 | BUSL-1.1 | Record in the Law 25 register what the co-ownership suite collects, and link the art. 1070 consent to the Law 25 file |
bf_property_records |
Copropriété : carnet, étude et attestations | 18.0.4.7.2 | BUSL-1.1 | Maintenance logbook, contingency fund study, syndicate certificate and the calendar of due dates |
bf_property_securetransfer |
Copropriété : remise sécurisée des documents | 18.0.2.4.0 | BUSL-1.1 | Hand the certificate, the statement of charges and documents to a buyer by secure transfer, and know whether they were read |
bf_property_sign |
Copropriété : signature électronique | 18.0.1.2.0 | BUSL-1.1 | E-signature for the logbook declaration, the art. 1068.1 certificate and meeting minutes |
bf_property_sms |
Copropriété : avis par texto | 18.0.2.2.0 | BUSL-1.1 | Text an occupant about a parcel or an urgent notice, with their express consent |
bf_qr_manager |
Codes QR gérés | 18.0.1.0.2 | BUSL-1.1 | Sheets of QR labels printed ahead of time, linked on first scan, re-linked without reprinting; extends Symbifox Pastilles |
bf_receipt_ca |
Reçus de dons — Canada (ARC + Revenu Québec) | 18.0.1.0.5 | AGPL-3 | CRA + Revenu Québec compliant official donation receipts, in French — eligible amount, advantage, in-kind gifts, void/reissue |
bf_recruitment |
Recrutement : cahier d'entrevues | 18.0.1.2.1 | BUSL-1.1 | Role-specific interview scorecards, multiple rounds, blind panel scoring and a consolidated interview book, grafted onto Odoo recruitment, with a catalogue of 32 ready-made scorecard templates, behaviourally anchored |
bf_recruitment_expense |
Recrutement : dépenses et coût par embauche | 18.0.1.0.2 | BUSL-1.1 | Attach recruitment spend to the job, price the panel time the interview book already measures, and state what a hire cost while owning up to what the figure is missing |
bf_recruitment_letter |
Recrutement : l'offre d'emploi | 18.0.1.0.1 | BUSL-1.1 | Draft the job offer from the application, on the company letterhead, with the terms already on file rather than retyped |
bf_recruitment_mail |
Recrutement : courriels au candidat | 18.0.1.2.0 | BUSL-1.1 | Rewrites the four emails a candidate receives: a subject that tells them apart, a decision stated plainly, and the company's brand |
bf_recruitment_portal |
Recrutement : portail du candidat | 18.0.2.0.0 | BUSL-1.1 | Lets the person who applied follow their file and obtain their own interview book, once the decision is taken |
bf_recruitment_privacy |
Recrutement : pont vie privée (Loi 25) | 18.0.1.2.0 | BUSL-1.1 | Declares what an application file collects, sets a retention period, destroys for real, and keeps the scorecard measurement when the ratings go |
bf_recruitment_sign |
Recrutement : l'offre part en signature | 18.0.1.0.1 | BUSL-1.1 | The offer letter becomes signable, with the branded letterhead under the signature rather than the bare body, and the application records the candidate's answer |
bf_recruitment_source |
Recrutement : statistiques par source d'affichage | 18.0.1.0.1 | BUSL-1.1 | One tracked link per job board, the clicks and applications it brings in, and a conversion rate that states which share of applications it covers |
bf_recruitment_source_expense |
Recrutement : ce que chaque site d'emploi coûte | 18.0.1.0.0 | BUSL-1.1 | Attribute a posting outlay to the board that billed it, and give the cost per application while saying which share of the job's spend it covers |
bf_recurrence |
Symbifox — Ancrage de la récurrence | 18.0.1.0.0 | LGPL-3 | Choose, per recurring series, whether the next deadline is measured from the old deadline or from the actual completion date |
bf_rental |
Locatif : le bail de logement | 18.0.2.4.0 | BUSL-1.1 | What a residential lease agrees to, the mandatory form it cites, and what the module refuses to make up |
bf_rental_notice |
Locatif : les avis | 18.0.1.6.0 | BUSL-1.1 | Lease notices: their deadlines, and the four regimes of silence the Civil Code treats differently |
bf_rental_portal |
Locatif : portail du locataire | 18.0.1.8.1 | BUSL-1.1 | Tenant portal: their lease, their notices and due dates, what they have paid |
bf_rental_privacy |
Locatif : pont vie privée (Loi 25) | 18.0.1.2.0 | BUSL-1.1 | Record in the Law 25 register what a termination notice says about the tenant |
bf_rental_rent |
Locatif : loyer et arrérages | 18.0.1.4.0 | BUSL-1.1 | Rent instalments, what remains due, and what the module refuses to conclude from it |
bf_scan |
Numériser depuis le téléphone | 18.0.1.2.0 | BUSL-1.1 | An installable phone page with three tiles: a business card becomes a contact, an invoice becomes a draft vendor bill with its photo, and a document goes to the note pad with a reminder or straight into any record's thread |
bf_school_admission |
Symbifox École : admission et réinscription | 18.0.1.0.6 | BUSL-1.1 | Admission of new students (public form, fee, exam, waiting list, decision by a person) and re-enrolment from the family portal |
bf_school_attendance |
Symbifox École : présences | 18.0.1.0.2 | BUSL-1.1 | Roll call by half-day or period, absences declared and justified by the families on the portal, same-day notice of an unjustified absence |
bf_school_conduct |
Symbifox École : conduite et suivi mensuel | 18.0.1.0.2 | BUSL-1.1 | Breaches of the rules of conduct with graduated sanctions, parents' notices under the law, and the monthly news of Régime pédagogique s. 29.2 |
bf_school_contract |
Symbifox École : contrat de services éducatifs | 18.0.1.0.2 | BUSL-1.1 | Québec private school contract for educational services: the Act's caps enforced, mandatory mentions printed, signed with Symbifox Sign |
bf_school_core |
Symbifox École | 18.0.1.0.2 | BUSL-1.1 | Schools, school years, levels, groups, students and their guardians, with roles for shared custody |
bf_school_device |
Symbifox École : postes des élèves | 18.0.1.0.1 | BUSL-1.1 | Student accounts in the school's directory and Blue Fox OS computers lent to students, bridged to the Blue Fox OS policy |
bf_school_forms |
Symbifox École : autorisations | 18.0.1.0.2 | BUSL-1.1 | Field trip and activity authorisations: one click per guardian, dated evidence, a refusal always wins |
bf_school_health |
Symbifox École : santé | 18.0.1.0.3 | BUSL-1.1 | Health alerts for every staff member, detailed health records and medication for a restricted group, parents' authorisations signed on the portal |
bf_school_homework |
Symbifox École : devoirs et agenda | 18.0.1.0.2 | BUSL-1.1 | Homework, studies, projects and announced tests per group, on the family portal and in the parents' own calendar (iCal) |
bf_school_meal |
Symbifox École : repas | 18.0.1.0.4 | BUSL-1.1 | Caterer menus, meal orders on the family portal, prepaid balance or monthly invoice, food allergies checked at the order and on the kitchen list |
bf_school_meeting |
Symbifox École : rencontres de parents | 18.0.1.0.1 | BUSL-1.1 | Parent-teacher meetings: the office sets each teacher's hours, parents book a slot with each teacher of their child, without overlaps |
bf_school_message |
Symbifox École : annonces aux familles | 18.0.1.0.1 | BUSL-1.1 | School announcements to families, by school or group, with an email that names the children and a dated read receipt on the portal |
bf_school_portal |
Symbifox École : portail des familles | 18.0.1.0.2 | BUSL-1.1 | One portal account per adult for all their children: groups, teachers, and what the school allows them to do |
bf_school_privacy |
Symbifox École : consentements | 18.0.1.0.1 | BUSL-1.1 | Law 25 consents for a school: photos, publication, family contact list, educational platforms, asked each year of the right person |
bf_school_slides |
Symbifox École : contenus de cours | 18.0.1.0.0 | BUSL-1.1 | Course contents in the eLearning app, given to the students of school groups and their parents, and renewed from one school year to the next |
bf_school_student_portal |
Symbifox École : l'élève au portail | 18.0.1.0.2 | BUSL-1.1 | Students sign in to the family portal with their school directory account, the one that opens the school's computers |
bf_school_work |
Symbifox École : remise de travaux | 18.0.1.0.1 | BUSL-1.1 | Students hand in their work on the portal, the teacher returns a corrected copy with a mark; scored quizzes through Surveys |
bf_securetransfer |
Transfert sécurisé (Secure Transfer) | 18.0.1.21.8 | BUSL-1.1 | Secure file transfer and secure messaging: browser-direct S3 uploads (presigned, multipart, ETag-pinned integrity), tokenized links with expiry, download budget, password, recipient and sender OTP (email or SMS), burn-after-download, download notification; message-only mode; personal drop pages /to/<slug> with per-employee auto-provisioning; backend secure-send wizard; sender/recipient allowlists, abuse reporting with automatic suspension, IP and sender quotas, rate limiting, hardened headers and CSP; hash-chained tamper-evident access log with CSV export and integrity verification (Law 25); auto-purge and GC crons; multi-brand skinning by host with free/paid tiers and white-label toggle; dashboard; guided S3 bucket setup with data-residency probe; open-audience data rooms where a link names nobody and each visitor self-declares an email or mobile, confirms a one-time code on that channel, and gets a per-person download budget and watermark |
bf_securetransfer_sign |
Symbifox — Transfert sécurisé : entente de confidentialité | 18.0.1.2.0 | BUSL-1.1 | Bridge between bf_securetransfer and bf_sign: require each visitor to sign a confidentiality agreement, in the identity they just confirmed, before the content of a transfer opens; gated on the download page and on the direct file route alike |
bf_security_awareness |
Security Awareness | 18.0.2.0.1 | BUSL-1.1 | KnowBe4/Terranova-style platform: phishing simulations (open/click/submit, QR, attachments), per-person risk profiles, eLearning remediation, OWL dashboards, a Phish Alert Button with sim-aware triage, and email clawback (PhishRIP-style) to pull a confirmed malicious email from every mailbox (M365 app-only XOAUTH2 or per-mailbox IMAP) into reversible quarantine — see SECURITY.md |
bf_session_cookie_domain |
BF Session Cookie Domain | 18.0.2.0.0 | LGPL-3 | Share the session cookie across the subdomains of one configured apex domain |
bf_shift |
Symbifox Quarts de travail | 18.0.1.2.1 | BUSL-1.1 | Shift scheduling for regular and unionised employees: labour standards checks, premiums, call lists, swaps, taxable benefits, payroll export |
bf_sign |
Symbifox — Signature électronique | 18.0.3.28.1 | BUSL-1.1 | Native electronic signature (SES): parallel or sequential multi-signer requests, drag-and-drop pad placement on the PDF with reusable layout templates that can carry their own PDF (a request starts from one pick above the upload), draw/type/upload signature and initials with embedded handwriting fonts, signer-fillable text and date fields plus boxed cells for pre-printed forms and server-validated choice lists, optional email OTP identity verification of signers, refusal flow with reason, branded public signing pages and transactional emails, completion certificate, optional PAdES cryptographic seal (pyHanko) with in-app certificate generation, optional RFC 3161 trusted timestamping, hash-chained tamper-evident audit trail with one-click integrity verification, a public verification page (optional QR stamped on the document) where any holder can drop their own copy and have it hashed in-browser to confirm it matches, link expiry cron, an audited manager-only link reveal (the token itself is readable by administrators only), signing state and proof that only the signing flow can write, attachments included, and a mixin to send any Odoo record for signature with post-back of the signed document |
bf_sign_account |
Symbifox — Signature pour la comptabilité | 18.0.1.1.0 | BUSL-1.1 | Send a customer invoice / vendor bill for electronic signature (bf_sign). |
bf_sign_corporate |
Symbifox — Signature des résolutions corporatives | 18.0.1.3.0 | BUSL-1.1 | Send a corporate resolution for electronic signature (bf_sign). |
bf_sign_privacy |
Symbifox — Signature des consentements (Loi 25) | 18.0.1.1.0 | BUSL-1.1 | Sign Loi 25 consents with the native bf_sign engine (instead of external DocuSeal / LibreSign). |
bf_sign_purchase |
Symbifox — Signature pour les achats | 18.0.1.1.0 | BUSL-1.1 | Send a purchase order for electronic signature (bf_sign). |
bf_sign_sale |
Symbifox — Signature pour les ventes | 18.0.2.1.0 | BUSL-1.1 | Send a quotation / sales order for electronic signature (bf_sign). |
bf_sms_archive |
SMS & Calls | 18.0.5.26.0 | BUSL-1.1 | Two-way live SMS/MMS messaging via VOIP.ms (chat workspace + systray) plus Android SMS/call-log archiving, search, PDF/CSV export and task linking |
bf_softphone |
Symbifox — Téléphone SIP | 18.0.2.10.0 | LGPL-3 | WebRTC softphone (JsSIP) in the web client, backed by an Asterisk PBX, with PBX-dialled calls for clients without a SIP stack and a push wake for a phone whose app is closed |
bf_stepbystep_clients |
Step-by-Step — Suivi d'accompagnement client | 18.0.2.2.1 | BUSL-1.1 | Internal dashboard tracking each client mandate's linear step-by-step progression: current step, hours budget, timeline. |
bf_studio_light |
Symbifox — Forge | 18.0.7.1.0 | BUSL-1.1 | Field builder for Odoo Community: add custom fields (incl. polymorphic reference with model whitelist), smart buttons (count via JSON controller, no compute Python), and inject them in views without writing a module — survives -u all upgrades |
bf_subscription |
Abonnements | 18.0.1.6.0 | BUSL-1.1 | Paid subscription management with correlation to vendor bills |
bf_subscription_daily_digest |
Abonnements — section du digest quotidien | 18.0.1.0.3 | BUSL-1.1 | Adds an 'Upcoming renewals' section to the daily digest |
bf_subscription_dashboard |
Abonnements — carte du tableau de bord | 18.0.1.0.3 | BUSL-1.1 | Adds a subscription summary card to the Symbifox home screen |
bf_subscription_hosting |
Hébergement — pont vers les abonnements | 18.0.1.0.0 | BUSL-1.1 | Create a subscription from a hosting domain (avoids double-entering recurring costs). |
bf_survey_upload |
BF Survey Upload | 18.0.1.2.0 | LGPL-3 | File-upload question type for Odoo surveys |
bf_systray_prefs |
Symbifox — Préférences de la barre système | 18.0.1.0.1 | LGPL-3 | Per-user show/hide of systray (notification-tray) icons, via a gear menu |
bf_task_unblock_notify |
BF Notification de déblocage de tâche | 18.0.1.8.0 | LGPL-3 | Notifies assignees when their task becomes unblocked |
bf_task_waiting_states |
Task Waiting States | 18.0.1.0.0 | LGPL-3 | Add Attente - Client / Attente - Externe task states |
bf_time_of_day |
BF Time of Day | 18.0.1.5.1 | LGPL-3 | Time-of-day slots (Morning / Noon / End of day / Off hours) for tasks and activities, with per-user overrides |
bf_timesheet_timer |
BF Timer - Feuilles de temps | 18.0.1.13.0 | LGPL-3 | Global timesheet timer with multi-timer support and an OWL UI |
bf_timesheet_timer_mobile |
Chronomètre : application Android | 18.0.1.3.1 | BUSL-1.1 | API for the Symbifox Chronomètre Android app: PKCE device pairing and timer gestures, stop and log in one request |
bf_timezone |
Symbifox Timezone Utilities | 18.0.1.1.0 | LGPL-3 | Shared timezone helpers and a configurable default timezone for Symbifox modules |
bf_training |
Registre de formation | 18.0.1.4.0 | BUSL-1.1 | Qui doit quelle formation, pour quand, prouvé par quelle pièce, valide jusqu'à quand. Le registre nominatif que le lecteur eLearning ne tient pas |
bf_training_budget |
Registre de formation : ce qu'elle coûte vraiment | 18.0.1.0.0 | BUSL-1.1 | Le coût des formations suivies porté au budget, et les heures dont le coût manque comptées comme manquantes plutôt que comme zéro |
bf_training_mobile |
Registre de formation : mes formations au téléphone | 18.0.1.0.0 | BUSL-1.1 | L'écran « mes formations » de Symbifox Mobile : ce que je dois, pour quand, et ce que j'ai déjà prouvé |
bf_training_process |
Registre de formation : entraînement à la tâche | 18.0.1.0.0 | BUSL-1.1 | La formation accrochée à l'étape de processus qu'elle enseigne, et le couloir qui dit enfin qui joue le rôle |
bf_training_qc |
Registre de formation : Québec | 18.0.1.0.1 | BUSL-1.1 | L'attestation que l'employeur doit pouvoir délivrer, la conservation de six ans, et le relevé de la participation au développement des compétences |
bf_training_scorm |
Registre de formation : contenus SCORM | 18.0.1.0.2 | BUSL-1.1 | Jouer un paquet SCORM 1.2 ou 2004 dans l'eLearning d'Odoo, et porter sa complétion au registre |
bf_training_session |
Registre de formation : la séance et sa feuille signée | 18.0.1.0.1 | BUSL-1.1 | La séance en salle tenue par Événements, et la feuille de présence signée qui en fait une preuve |
bf_training_sign |
Registre de formation : accusé signé par module | 18.0.1.0.0 | BUSL-1.1 | Lire une politique et le confirmer par écrit devient une ligne du registre, datée et rattachée à la version lue |
bf_training_slides |
Registre de formation : raccord eLearning | 18.0.1.0.1 | BUSL-1.1 | Une activité du registre adossée à un cours en ligne : la vraie date, les heures, et la dérive du contenu qui se voit |
bf_universal_search |
BF Recherche universelle | 18.0.2.4.0 | LGPL-3 | Cross-module search through the command palette |
bf_work_category |
BF Work Category | 18.0.1.0.3 | LGPL-3 | Work categories on project labels, resolved and stored on projects, tasks and every bridged record, so work can be filtered, grouped and exported by category |
bf_work_category_claude_chat |
BF Work Category - Gen | 18.0.1.0.1 | BUSL-1.1 | Work category on Gen conversations, from the record they are attached to |
bf_work_category_claude_chat_cockpit |
BF Work Category - Gen cockpit | 18.0.1.0.1 | BUSL-1.1 | Work category column, filter and grouping in the Gen conversation cockpit |
bf_work_category_email |
BF Work Category - Emails | 18.0.1.0.1 | BUSL-1.1 | Work category on emails, from the record they are filed on |
bf_work_category_meeting |
BF Work Category - Meetings | 18.0.1.0.1 | BUSL-1.1 | Work category on meeting records, from their project |
bf_work_category_notes |
BF Work Category - Notes | 18.0.1.0.1 | LGPL-3 | Work category on notes, from the record they are attached to |
bf_work_category_timesheet |
BF Work Category - Timesheets | 18.0.1.0.2 | LGPL-3 | Work category on timesheet lines, from their task or their project |
bf_zerotouch_install |
Symbifox — Blue Fox OS Zero-Touch Install | 18.0.4.1.0 | BUSL-1.1 | The kickstart a Blue Fox OS installer fetches from its boot menu, rendered from the company's policy, with an OIDC device flow approved on a second device |
bluefox_branding |
Symbifox Branding | 18.0.3.25.1 | BUSL-1.1 | Per-company brand color + email layout overrides driven by bf_lexend company fields (CSS variables injected via QWeb layout — no SCSS recompile) |
calendar_nextcloud_sync |
Calendar Nextcloud Sync | 18.0.2.19.2 | LGPL-3 | Bidirectional calendar synchronization between Odoo and Nextcloud over CalDAV, and Google Calendar (API v3/OAuth2) |
contacts_nextcloud_sync |
Contacts Nextcloud Sync | 18.0.1.2.0 | LGPL-3 | Sync Odoo contacts with a Nextcloud address book via CardDAV |
daily_todo_digest |
Daily To-Do Digest | 18.0.2.3.0 | LGPL-3 | Daily email digest with activities, overdue tasks, and a week-ahead view |
hosting_management |
Gestion d'hébergement | 18.0.2.57.0 | BUSL-1.1 | Manage hosting services, client computer parks (endpoints, BitLocker, Action1 sync) and software license pools |
privacy_consent |
Suivi des consentements (Loi 25) | 18.0.5.5.0 | BUSL-1.1 | Privacy suite: consents with purposes, SHA-256 versioned notices, minors and legal guardians, forensic evidence capture, renewal chains; self-service portal plus no-login token pages to view, grant, refuse, withdraw and renew; contact preference centre with mail.blacklist sync; retention calendar and document classification; destruction requests, bulk campaigns, anonymisation assessments and a hash-chained immutable destruction register with integrity cron; consent and destruction certificates (PDF); 20-KPI dashboard with drill-downs; configurable email sequences and 8 crons; DocuSeal and LibreSign e-signature integrations with webhooks; ships 18 purposes and 19 bilingual notices; framework engine with Loi 25 built in (GDPR, UK GDPR, PIPEDA, NZ via companion modules) |
privacy_framework_gdpr |
Cadre de confidentialité — GDPR (UE) | 18.0.1.0.1 | BUSL-1.1 | GDPR (EU) regulatory-framework pack for the Privacy module |
privacy_framework_nz |
Cadre de confidentialité — Privacy Act 2020 (Nouvelle-Zélande) | 18.0.1.0.1 | BUSL-1.1 | New Zealand Privacy Act 2020 regulatory-framework pack for the Privacy module |
privacy_framework_pipeda |
Cadre de confidentialité — LPRPDE / PIPEDA (Canada) | 18.0.1.0.1 | BUSL-1.1 | PIPEDA (Canada federal) regulatory-framework pack for the Privacy module |
privacy_framework_uk |
Cadre de confidentialité — UK GDPR (Royaume-Uni) | 18.0.1.0.1 | BUSL-1.1 | UK GDPR / DPA 2018 regulatory-framework pack for the Privacy module |
project_knowledge_matrix |
Project Knowledge Matrix | 18.0.13.4.1 | BUSL-1.1 | Project knowledge base, policies, and documentation |
Add this repository to your Odoo addons_path:
addons_path = /path/to/odoo/addons,/path/to/odoo-modulesThen install individual modules from the Odoo Apps menu.
All modules target Odoo 18.0 Community Edition.
Three regimes — see Licensing above for the details, and the
License column of the table for the module you care about. The LICENSE
file inside each module governs and carries its exact parameters.
- 223 modules: BUSL-1.1. Production use for your own internal business operations is permitted; providing them as a product or service to third parties requires an agreement. Each version converts to LGPL-3.0-or-later four years after its release.
- 65 modules: LGPL-3. Use, modify and redistribute them freely. The
repository-root
LICENSEcarries the LGPL-3 text. - 7 modules: AGPL-3, inherited rather than chosen: they extend Odoo
Community Association code that is itself AGPL-3. Four are the fundraising
and donation-receipt modules;
bf_helpdeskis a fork-style extension of OCAhelpdesk_mgmt.
Five permissively licensed modules list a BUSL-1.1 module among their dependencies, and each says so in its own README with the reason.
Where the dependency was a convenience it has already been made optional and
resolved at runtime, so the module installs on its own: daily_todo_digest,
bf_bureau and bf_chatter_chronological no longer require one. Where it is
structural — an inherited model, an extended view, a typed relation —
bf_helpdesk, bf_cx_fundraising and bf_document_nextcloud_sync cannot be
detached without removing the feature. And bf_email_systray and
bf_nextcloud_browser could technically drop theirs, but the BUSL module is
what they are for, so a detached build would install cleanly and do nothing;
the dependency is kept on purpose.
In all five cases the permissive licence covers that module's own source, and a working install still needs terms for the BUSL one.
Authored and maintained by Les services de consultation Blue Fox, Inc.
AI coding assistants were used as productivity tools during development; architectural decisions, code review, and release responsibility rest with Les services de consultation Blue Fox, Inc.