TL;DR : our in-house Odoo modules now have a name, Symbifox, and a site of their own with a catalogue, a readable licence and a price list. Twenty-four applications that add to Odoo 18 Community and all land on the same client record. You can run the whole thing yourself for $0 : what is billed is hosting and support, never the right to use it.
A client signs. The kickoff meeting was booked through Calendly, the notes sit in Otter, the contract went out through DocuSign, the mandate documentation is being written in Notion, the hours pile up in a spreadsheet, and the first cry for help lands in Zendesk. Six tools, six copies of the same client, and none of the six knows what the other five did.
Each one does its job very well. The work gets lost between them : the person answering the ticket has no idea what was said at the kickoff, the person invoicing has no idea the contract was amended, and when someone leaves the team, half those accounts walk out with their mailbox.
We spent more than a year writing Odoo modules to close those gaps, one need at a time. We published them on GitHub back when there were nineteen. There are about a hundred now, and they have a name, a catalogue and a price : Symbifox.
From a code repository to a product
A GitHub repository is not a product. It is a list of folders with technical names, and you already have to know what you are looking for to find anything in it. A business owner wondering how to stop paying for Calendly has no reason to guess that the answer is called bf_appointment.
Naming the whole thing forced three decisions we had been putting off : saying what each module does in one understandable sentence, saying which licence it lives under, and saying what it costs. All three are now written in the same place. That was the part of the job that took the longest.
The name comes from symbiosis : tools that feed on the same data instead of copying it back and forth.
The whole catalogue, one line each
Twenty-four applications, the ones that add their own menu in Odoo, and thirteen companion pieces that graft onto screens you already use. Seven families in all. Here is each one, in a sentence.
They do not replace Odoo, they add to it. The CRM, sales, invoicing, inventory, purchasing, projects, employees and the rest of Odoo Community stay exactly where they are, on the same contacts and the same projects.
Communications and meetings
- Meetings : the agenda gets prepared ahead, the meeting gets captured, and the record goes out without anyone retyping it. Instead of Otter.ai and Fellow.
- Email : your mailbox inside the ERP, one account per person, and a message filed on the right record in two clicks. No more copy-pasting from Outlook.
- SMS and calls : send and receive texts from the ERP, with the call history attached to the right contact.
- Mass Notes : add the same note to fifty records at once instead of opening them one by one.
- Letters : formal letters with letterhead, signatories and batch sending, generated from the record.
- Appointments : a public page where the client books into your real availability, on your domain. Instead of Calendly.
- Outreach : call, email and letter campaigns with their own cadence, and an opt-out that propagates to every campaign.
Team productivity
- Desk : several screens side by side, tasks, email and calendar, in a single window.
- Notepad : quick notes you can attach to a record and convert into a task in one click.
- Process mapping : your processes drawn and versioned, where the PDF is only a rendering of the model. Instead of Lucidchart.
- Fox Quest : quests, levels and rewards wired to real work, for the teams that respond to it.
- Helpdesk : support ticketing with a public form per team. Instead of Zendesk.
- Universal Search : one search bar cutting across contacts, projects, emails, invoices and documents.
- Time Windows : "morning" or "end of day" on a task, on top of the due date.
- Waiting States : telling "waiting on the client" apart from "in progress", because they are not the same thing.
- Task Merge : merge two duplicates by moving the history onto the task you keep instead of losing it.
- Nextcloud Files : browse, preview and share your files without leaving the ERP.
Data and artificial intelligence
- GenFox : the assistant wired into your data, with the call to the model leaving from your server. Instead of Copilot.
- Invoice OCR : the supplier invoice read by AI, vendor, dates, taxes and line items, validated at a glance.
- Knowledge Base : policies, procedures, registers and mandate matrices. Instead of Notion.
- Persona : how each contact wants to be approached, their payment habits and their weak signals.
- Contact Enrichment : business cards scanned, email signatures put to work, duplicates flagged.
Security and compliance
- Electronic Signature : signing in the browser, with a sealed document and an audit trail. Instead of DocuSign.
- Secure Transfer : send heavy files through an expiring link, with a password and an access log.
- Security Awareness : simulated phishing, ongoing training and a risk profile per person. Instead of KnowBe4.
- IT Audit : running a security audit end to end, all the way to the deliverable report.
- Privacy : consents, incident register, destruction register and access requests. Instead of OneTrust.
Mandate tracking and billing
- Progress : the client sees where the mandate stands, what is coming, and what they owe on their side.
- Hour Bank : sell prepaid blocks, burn them down through timesheets, raise the alarm before the end.
- Stopwatch : a timer in the bar, several running at once, and the timesheet filling itself in. Instead of Toggl.
- Customer Experience : NPS, complaints and consent-tracked testimonials, with the loop closed on detractors. Instead of Qualtrics.
Platform and hosting
- Hosting Management : the inventory of servers, services, certificates, backups and maintenance deadlines.
- Forge : add a field to a form without writing a line of code. Instead of Studio.
- Brand : your typeface, colours and logos everywhere, right through to the PDFs the client receives.
- Dark Mode : a dark interface for late evenings.
Donations and charity
- Fundraising : donors, campaigns, solicitations and a donation portal for non-profits.
- Donation Receipts : official receipts meeting Canada Revenue Agency and Revenu Québec requirements, in French.
The point is not the line-by-line saving on replaced subscriptions. It is that all of it lands on a single record : the appointment, the meeting, the signed contract, the hours and the ticket all attach to the same client, in the same history, readable by someone other than whoever created it.
A week of client work, seen from above
Take a ten-person firm starting a mandate. Monday, the prospective client books their own hour on a public page showing the team's real availability. The booking creates the record, and the form they filled in beforehand is already attached to it.
Tuesday, the meeting happens. The agenda was prepared in the same place, the decisions taken turn into assigned tasks, and the meeting record goes out by email without anyone retyping it into a Word document.
Wednesday, the agreement goes out for signature. It is signed in the client's browser, it comes back to the record, and whoever invoices six weeks from now does not have to ask anybody where the signed version is.
Thursday, the work starts and hours are logged next to the tasks. When the client asks where their block stands, answering does not mean rebuilding a spreadsheet : that is the idea behind the hour banks we described elsewhere.
Friday, someone on the client side writes to the support address. The ticket opens on the same record, with Tuesday's meeting, Wednesday's agreement and Thursday's hours right there. Nobody retyped anything all week. The whole exercise fits in that sentence.
None of those five steps is spectacular on its own. Put end to end, they remove the question that costs a services firm the most : "where does that live again?"
Why Community rather than Enterprise
Odoo comes in two editions, and the dividing line is not cosmetic. Several applications small businesses take for granted simply do not exist in the free edition : they are not crippled, they are absent from the published source code.
| Function | In Odoo 18 Community | In the Symbifox catalogue |
|---|---|---|
| Electronic signature | Absent | Electronic Signature |
| Support ticketing | Absent | Helpdesk |
| Self-service booking | Absent | Appointments |
| Knowledge base | Absent | Knowledge Base |
| Adding fields without coding | Absent | Forge |
| Document management | Absent | Secure Transfer and Nextcloud Files |
The list takes thirty seconds to verify : the Odoo 18 addons directory on GitHub contains no helpdesk, no sign, no documents, no appointment, no knowledge and no web_studio. Community remains an excellent foundation, but you have to know what you will be writing on top of it yourself. We wrote what we were missing, and Symbifox is that.
The financial side fits on one line. Odoo Enterprise is listed at CAD $44 per user per month on annual billing for the Standard plan, and CAD $69 for the Custom plan, the only tier that gives you on-premise hosting and access to the external API. At fifteen people, the Custom tier comes to $1,035 a month. We went through this at length in our comparison of Odoo Community and Enterprise, and the reasoning has not changed.
The price is not for the right to use it
This is the decision we are happiest about, and the one that surprises people most in a demo : the software is not for sale. You may install all twenty-four applications on your own server, for your own operations, without asking us and without paying anything. It is not a trial and not a cut-down edition, it is the same code in full.
| Tier | Team size | Monthly price |
|---|---|---|
| Self-hosted | Unlimited users | $0 |
| Solo | 1 user | $45 flat |
| Starter | 2 to 9 users | $28 per user |
| Growth | 10 to 24 users | $26 per user |
| Established | 25 to 99 users | $25 per user |
What is billed is us doing it for you : the installation configured and tested, the connectors wired up, sovereign hosting in the region of your choice, encrypted backups, updates proven before they are applied, and a person who answers when things jam. The price drops as the team grows, because the support load per person drops too.
The $0 column is not bait. It simply asks you to supply the server, your third-party accounts, the configuration, the backups and the time to put it all together. Plenty of organizations have exactly what it takes in house.
Before consolidating anything, do this one-hour inventory. It is worth more than a demo.
- The list of every software subscription, with the price per seat and the number of seats paid for.
- The name of the person holding the admin account on each one.
- The country where each tool keeps your data.
- What you are left with if you stop paying tomorrow morning : does an export exist, and has anyone ever tested it?
Three licences, and why not just one
The code is published in full, but not under the same regime everywhere. Here are the three, unvarnished.
A third of the catalogue is LGPL-3, the classic free software licence. Use those modules, modify them, redistribute them, build a product on them : nothing is asked in return. They are mostly the small single-purpose modules, the interface fixes and the bridges to other tools.
Most of the applications are BUSL-1.1. The source is published and auditable, and you have the right to run it in production for your own operations, as a company, as a freelancer or as one person on a laptop. What requires an agreement is using it to provide a service to someone else : hosting it for a client, reselling it, running it as a managed service. And each version reverts to LGPL-3 four years after its release, automatically.
A word on vocabulary : BUSL is not a free software licence in the Open Source Initiative sense, and the licence text says so itself. It is source-available code with a commercial restriction and an expiry date. We would rather call it by its name than paint "open source" across everything.
That leaves five modules under AGPL-3, and not by choice : the fundraising modules extend Odoo Community Association code published under AGPL-3, so they inherit it.
Why not make everything free? Because the two regimes serve two purposes. The free modules are worth more widely used than held back : they are the ones people find, install and form an opinion from. The rest is the product. It is what funds the migrations to the next Odoo version and the support. The four-year conversion is not decorative : no published version is held back forever.
Where the data lives
Where you host is not merely a preference. Since September 2023, a Quebec business communicating personal information outside Quebec must first carry out a privacy impact assessment, and the communication must be covered by a written agreement. The Commission d'accès à l'information states it plainly (page in French).
A suite running on a server you chose, in the jurisdiction you chose, removes that particular obligation. It does not remove the others : consent, retention, answering access requests and handling incidents stay entirely on your side. If the topic interests you, our article on the most privacy-respecting jurisdictions covers what the host country changes.
The blind spots
Odoo is still Odoo. If you are looking for an ERP nobody needs to administer, this is not the right tool. It takes someone who looks after it, on your side or ours, and that person needs protected time to do it properly.
Consolidating is not the same as simplifying. A unified suite reduces the number of interfaces to learn, it does not erase the learning curve of an ERP, and on some specific functions a specialized tool will stay better than an integrated module. We wrote a whole article on the link between tool simplicity and staff retention, and the nuance is developed there.
The catalogue is opinionated. It was written for services firms and non-profits, so it is strong on mandates, meetings, compliance and time-based billing, and thin on manufacturing, logistics or retail. On those, it is the standard Odoo applications doing the work, not ours.
Some applications talk to outside services, by design : the artificial intelligence assistant needs a provider and a key, text messaging needs a phone carrier. Those accounts are yours, and those connections are choices you make, module by module.
The public repository lags on purpose. New modules are delivered to clients as soon as they ship and published three months later, so the online catalogue is always slightly ahead of what you will find on GitHub.
At Blue Fox
We recommend Odoo Community by default, we write what is missing, and we publish what we write because a client who leaves should be able to leave with it. That has been our position from the start. It just has a name and a site now.
If you want to see what a single client record carrying everything looks like, a forty-five minute demo is enough to form an opinion. And if you would rather install it yourself, the repository is open and nobody needs us.
We host the suite for teams of 1 to 99 people : configured installation, encrypted backups, updates tested before they are applied, and the jurisdiction of your choice. Book a Symbifox demo or write to us.
Let's talk about your tool stack : how many subscriptions, how many copies of the same client, and what it would look like in one place.
Sources
- Symbifox : the product site, the application catalogue and the price list.
- Public repository Symbifox/odoo-modules : the source code of every module and the detail of the three licence regimes.
- Business Source License 1.1 : the licence text, its automatic conversion after four years and its explicit statement that it is not an open source licence.
- Odoo, edition comparison : what Community contains and what Enterprise adds.
- Odoo, pricing : current list prices for the Standard and Custom plans in Canadian dollars.
- Odoo 18 addons directory : the direct check on what is absent from the Community edition.
- Odoo Community Association : the association behind the community modules published under AGPL-3.
- Commission d'accès à l'information du Québec : the obligations before communicating personal information outside Quebec. It is written in French.