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.
46 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.
101 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.
5 modules are AGPL-3, and not by choice: the fundraising and donation-receipt 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.
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.1 | 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_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.54.2 | BUSL-1.1 | Self-service public booking pages (extends resource_booking) |
bf_appointment_poll |
Symbifox Appointment Polls | 18.0.1.15.0 | BUSL-1.1 | Availability polling: propose slots, collect answers, book the meeting |
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_bloc_notes |
BF Bloc-notes | 18.0.2.9.0 | LGPL-3 | Rich quick notes with multi-record links, one-click activity conversion, keyboard shortcuts, and systray icon (Alt+N) |
bf_budget |
Budgets opérationnels | 18.0.1.0.1 | 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.2.0 | LGPL-3 | User-configurable dashboards ("desks") with multi-pane Odoo actions, six layouts, keyboard shortcuts, time slots, and a sidebar |
bf_calendar_invite |
BF Calendar — usable invitations | 18.0.3.2.0 | 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_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_celebrations |
Célébrations | 18.0.2.1.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_chatter_chronological |
BF Chatter Chronological View | 18.0.4.1.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.0.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.2.0 | LGPL-3 | Checkbox in the chatter composer to log a timesheet entry alongside an internal note. |
bf_claude_chat |
Gen | 18.0.1.18.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_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_contact_enrichment |
Enrichissement de contacts | 18.0.1.2.2 | 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.0.0 | LGPL-3 | The minute book of a share corporation kept in Odoo: resolutions, registers and a compliance calendar |
bf_credentials |
Symbifox Credentials | 18.0.2.0.0 | LGPL-3 | Encrypted per-project credential vault, with rotation, expiry and a second-factor register |
bf_cx |
Expérience client | 18.0.1.8.1 | BUSL-1.1 | Customer experience measurement: NPS programs, continuous feedback, complaints and consent-tracked testimonials |
bf_cx_appointment |
Expérience client : feedback post-rendez-vous | 18.0.1.1.0 | 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.1 | 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.0 | 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.0 | 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.0 | 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.0 | 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.2.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.0.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.4.1 | LGPL-3 | Document sync between Odoo and Nextcloud via WebDAV |
bf_editorial |
Atelier éditorial | 18.0.1.9.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.22.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.0.0 | LGPL-3 | Systray button opening the bf.email inbox with a (read + unread) counter |
bf_employee_experience |
Expérience employé | 18.0.1.0.0 | 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.1 | 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.0 | 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_floorplan |
Plans d'étage | 18.0.1.1.0 | 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_follower_cleanup |
BF — Hygiène des notifications (abonnés et activités internes) | 18.0.2.1.0 | LGPL-3 | Crons that remove non-employee followers 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.2 | AGPL-3 | Public website donation form + donor portal (giving history and official receipt download) |
bf_gamification |
Fox Quest | 18.0.2.5.1 | BUSL-1.1 | Gamification system with XP, levels, badges, and rewards |
bf_gantt |
Échéancier | 18.0.1.5.4 | 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.5.0 | 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_home |
Accueil Symbifox | 18.0.2.0.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.2.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_hour_bank |
Banque d'heures | 18.0.1.15.0 | 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_letter_writer |
Letter Writer | 18.0.2.0.0 | 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.9.1.0 | BUSL-1.1 | Public link page for a person 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.1.0 | LGPL-3 | Provider-agnostic LLM access (chat + document/vision extraction) for Symbifox modules |
bf_mail_import |
BF Import courriel (.eml) | 18.0.1.4.0 | LGPL-3 | Import .eml files into the Odoo chatter |
bf_mail_subject_clean |
BF Nettoyage des sujets de courriel | 18.0.1.1.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.3.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.53.0 | 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.0.2 | BUSL-1.1 | Portal read access to meeting reports that were already emailed to the client |
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.3.7.1 | LGPL-3 | Embedded + standalone Nextcloud WebDAV file browser on projects/tasks: folder tree, modal preview, drag-and-drop upload/move, configurable share presets, open-in-Nextcloud for office files, Knowledge Matrix linking, systray launcher |
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_onboarding_base |
Symbifox Onboarding Foundation | 18.0.2.0.0 | LGPL-3 | Shared helpers for Symbifox per-module onboarding panels. |
bf_otp |
Symbifox OTP | 18.0.10.0.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.2.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.2.2.0 | BUSL-1.1 | Active relationship intelligence: composer hint with auto-cc, monthly auto-seed from email signals, weekly degradation detector with optional ntfy alert, kanban dashboard |
bf_process |
Cartographie de processus | 18.0.5.0.1 | 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_receipt_ca |
Reçus de dons — Canada (ARC + Revenu Québec) | 18.0.1.0.4 | 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_securetransfer |
Transfert sécurisé (Secure Transfer) | 18.0.1.21.0 | 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.1.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.1.9.2 | 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_sign |
Symbifox — Signature électronique | 18.0.3.23.0 | 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, draw/type/upload signature and initials with embedded handwriting fonts, signer-fillable text and date fields, 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, manager-gated link reveal, 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.0.1 | 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.0.1 | BUSL-1.1 | Send a purchase order for electronic signature (bf_sign). |
bf_sign_sale |
Symbifox — Signature pour les ventes | 18.0.2.0.0 | BUSL-1.1 | Send a quotation / sales order for electronic signature (bf_sign). |
bf_sms_archive |
SMS & Calls | 18.0.5.13.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_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.5.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.2 | 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.7.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.3.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.11.0 | LGPL-3 | Global timesheet timer with multi-timer support and an OWL UI |
bf_timezone |
Symbifox Timezone Utilities | 18.0.1.1.0 | LGPL-3 | Shared timezone helpers and a configurable default timezone for Symbifox modules |
bf_universal_search |
BF Recherche universelle | 18.0.2.2.0 | LGPL-3 | Cross-module search through the command palette |
bluefox_branding |
Symbifox Branding | 18.0.3.9.0 | 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.15.0 | 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.1.0 | LGPL-3 | Daily email digest with activities, overdue tasks, and a week-ahead view |
hosting_management |
Gestion d'hébergement | 18.0.2.51.1 | 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.0.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.2.0 | 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.
- 101 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.
- 46 modules: LGPL-3. Use, modify and redistribute them freely. The
repository-root
LICENSEcarries the LGPL-3 text. - 5 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.