Hire an Odoo implementation company when you face decisions you will make only once: edition and hosting, fiscal localization, data migration and cutover. If nobody on your payroll has made these in Odoo before, they are expensive to get wrong and to reverse. Build an in-house team when Odoo will change every week because your processes do, and that stream of work would keep at least two people busy long after go-live. For a company of 5 to 200 people, we recommend a mix: a company for the implementation, plus an in-house owner, key users and often an administrator for the life of the database.
So the useful question is "which work do we buy for a period, and which do we own for good?" This guide answers it shape by shape. The Odoo documents quoted are the 20.0 versions, checked on 14 October 2026.
Odoo work comes in three shapes
An Odoo database does not need the same effort every month. The work falls into three shapes, and each suits a different owner.
| Shape of work | Examples | How often | Usually best owned by |
|---|---|---|---|
| One-off decisions | Edition and hosting, company structure, fiscal localization, chart of accounts, inventory costing method, data migration, cutover | Once, before and at go-live | Whoever has made them many times: usually an implementation company |
| A steady stream of small change | New users and access rights, a report, an approval rule, a new product category, a workflow tweak, "how do I…" questions | Every week after go-live | In-house: an administrator and key users |
| Recurring projects | Version upgrades, a new company or country, a new integration, a new app | Every year or two | A company, or an in-house team that has done one before, with outside backup |
The recurring row is the one buyers forget. Odoo's upgrade documentation states that "each major version is supported for three years". It also warns that a database with custom modules "cannot be upgraded until a version of your custom modules is available for the target version of Odoo". Whoever owns your custom code owns that recurring project.
A team sized for the implementation peak is oversized for the weekly stream that follows. A company billed by the hour for that stream is expensive and loses context between tickets. Staff each shape separately.
What you must own in-house, whichever you choose
Even a fully outsourced implementation leaves a set of jobs that only your company can do. Several of them are written into Odoo's own contract.
- A named contact person. In the Odoo Enterprise Subscription Agreement (§6.1), the customer agrees to "appoint 1 dedicated Customer contact person for the entire duration of the Agreement".
- Process owners who decide. A company can frame the options for approval limits, costing or company structure. Only your finance and operations leads can choose, because they live with the result.
- Key users for each app. These people test real scenarios before go-live and train new staff afterwards.
- A data owner. Someone has to know which customer list is the right one and clean it. Odoo's upgrade service explicitly excludes "the cleaning of pre-existing data and configurations" (upgrade documentation).
- Upgrade validation. Under §4.3 of the subscription agreement, "it is the responsibility of the Customer to verify and validate the upgraded database". The same clause covers analysing the impact of the new version and adapting third-party extensions.
- The keys. That means the admin credentials, the hosting account and the code repository, all in the company's name.
Outsourcing Odoo never means owning nothing. The real choice is how far beyond this core your own team goes.
What each option brings, and where it stops
| Implementation company | In-house team | |
|---|---|---|
| One-off decisions (localization, cutover, migration) | Routine work, repeated across projects | Usually made for the first time, on your live business |
| Range of skills | Functional consultants per app, developers, project manager, data specialist | Whoever you hired; often one person covering everything |
| Time to start | Weeks, once a contract is signed | Recruiting first, then learning Odoo's framework |
| Knowledge of your business | Learned during discovery; leaves at handover unless written down | Built in and kept |
| Small changes after go-live | A change request or support ticket each time | Same day, no paperwork |
| Accountability | Written scope, acceptance criteria, a contract | Line management and your own review |
| Continuity if a person leaves | The company replaces them | You recruit again, and the system waits |
Two details shape the choice. First, the Odoo Enterprise Subscription Agreement defines an Odoo Partner as "a third-party company or individual, chosen by the Customer". The customer "can decide at any time to work with a different Odoo Partner, or to work with Odoo SA directly", with 30 days' written notice. The subscription does not lock you to an implementer; undocumented configuration and code in someone else's repository can.
Second, hosting limits what an in-house developer can do. Odoo's Odoo Online documentation states that "Odoo Online is incompatible with custom modules or modules from the Odoo Apps Store". A developer who writes custom modules needs Odoo.sh or a self-hosted server (on Odoo Online their work is limited to Studio, external-API integrations and data work), and self-hosting adds backups, security updates and server care to that team's job list.
What an in-house Odoo team really costs
Salary is the visible part. The US Bureau of Labor Statistics reports that "the median annual wage for software developers was $135,980 in May 2025" (BLS Occupational Outlook Handbook). In June 2026, wages and salaries were 70.0 percent of private-industry employer compensation costs, and benefits the remaining 30.0 percent (BLS Employer Costs for Employee Compensation). Dividing salary by 0.70 puts a median-paid developer at roughly $194,000 a year to employ. That is an approximation: the 70.0 percent figure averages all private-industry jobs, and Odoo skills are priced differently by city and country, so use local salary data.
Then add the costs that never show up on a payslip:
- Recruiting time. The system waits while the role is open.
- Learning Odoo itself. Its ORM, views, access rules and upgrade process are a framework of their own, even for a strong Python developer.
- Cover. One person is a single point of failure; a second person or a backup support contract is the price of a holiday.
- Upgrade effort. Odoo's guide to upgrading a customized database says that "starting an upgrade requires commitment and development resources" and recommends "a complete freeze of the codebase" while it runs.
The comparison to make: one year of the in-house team you would actually need, against the implementation quote plus one year of support. Then look at year two, when the implementation cost is gone but the team cost is not. It only pays off if the stream of change genuinely needs those people.
Decision criteria: which way do you lean?
| Signal | Leans to an implementation company | Leans to an in-house team |
|---|---|---|
| Change requests after go-live | A few a month | Enough to keep two people busy every week |
| Previous Odoo go-lives on staff | None | Someone has led one end to end |
| Companies and countries | Several (localization, inter-company flows) | One |
| Custom code | Little; standard apps cover your processes | Core processes that differ from standard and keep changing |
| Hosting | Odoo Online, where custom modules are not allowed | Odoo.sh or self-hosted, with a staging process |
| Deadline | Fixed (fiscal year start, old system's contract end) | Flexible |
| Hiring Odoo skills where you are | Hard or unproven | Proven |
| Key-person risk you can accept | Low | You can fund two people or a backup contract |
If most of your answers fall in the middle column, buy the implementation. If most fall in the right column, build the team. A split result points to one of the hybrids below.
Four models that hold up
1. Company-led, with an internal owner
The company runs the implementation; you staff the in-house core above, and a support arrangement covers the months after go-live. This is the default when the change stream is modest and nobody on staff knows Odoo. What goes wrong: the owner is appointed as a side job with no time set aside, so the company makes design decisions by default.
2. Company-led, with knowledge transfer into a hire
Recruit your administrator or functional lead before the project starts, or early in it. That person sits in every design workshop and configures alongside the company, so by go-live they hold the reasons behind each setting. What goes wrong: the hire arrives after go-live and inherits a system they never saw being built.
3. In-house-led, with a company for the hard phases
You already have someone experienced in Odoo. You buy specific phases from a company: accounting and localization design, data migration and cutover, upgrades, or a complex integration. What goes wrong: nobody wrote down which side owns which module, so two teams edit the same code.
4. Fully in-house
This model suits organizations with a large, lasting change stream, several developers and the ability to run hosting themselves. What goes wrong: with no outside review, a wrong localization or costing choice goes unchallenged. Commission an independent review before go-live and before each major upgrade.
The external side is wider than one kind of firm. Odoo's pricing page says small companies, those with fewer than 50 employees, "usually work directly with Odoo, using Success Packs", while larger ones "usually work with a partner who offers local project management services". If you are choosing between a firm and an independent consultant, see our guide to Odoo partners vs freelancers.
If you buy the implementation: keep the knowledge
Whoever implements, get these written into the proposal so the knowledge stays with you:
- Code in a repository your company owns, from the first commit
- Hosting account, Odoo subscription and admin credentials in the company's name
- A written decision record for each design choice (chart of accounts, costing method, approval rules, access rights)
- A configuration document per app, covering what was set and why
- Key users trained well enough to train new staff (see our Odoo training service)
- A test or staging database, and the procedure to refresh it from production
- An upgrade owner named for every custom module
- A written support arrangement for the months after go-live, with response times (see support and maintenance)
If you build in-house: avoid the usual traps
- Hire functional before technical. Your first hire should know accounting or operations processes and Odoo configuration. Developers come after someone has confirmed that standard Odoo cannot do the job.
- Never build on production. Odoo.sh separates code into production, staging and development branches. A self-hosted setup needs the same separation.
- Plan the upgrade on day one. Odoo's customized-database upgrade guide runs in six steps: stop the developments and challenge them, request an upgraded database, make your modules installable on an empty database, then on the upgraded one, test with a rehearsal, and only then upgrade production. Each custom module adds to that work.
What goes wrong, and how to spot it
On the company path:
- Nobody from your side attends design workshops. The sign is workshop notes with no names from your company in them.
- "Go-live and gone." Support ends the week after go-live, and the first month-end close happens without the people who configured the system.
- Every small change becomes a change request. That stream belongs in-house.
- Code sits in the vendor's repository. You cannot change provider without asking for your own code.
On the in-house path:
- Custom code for standard features. Ask which standard screen comes closest. If nobody can show it, the gap has not been analysed.
- A single point of failure. Only one person can deploy code or knows the admin password.
- Upgrade drift. The database is still on a version past its three years of support.
- A team that is idle or stretched. Its size does not match the real change stream.
Where Odovation fits
Our Odoo implementation service follows four stages: discovery and planning, configuration, data migration and integration, then go-live and hypercare. It includes coordinating user acceptance testing and work on user adoption, and it fits models 1 and 2 above. Whoever you compare, ask each provider how they deliver every item on the handover checklist, in writing. If you are weighing a company against a hire, tell us about your setup and we will give you a straight view of which work to buy.
Frequently Asked Questions
Is it cheaper to hire an in-house Odoo developer than an implementation company?
Over several years it sometimes is, but rarely for the implementation itself. The BLS puts the US median software developer wage at $135,980 (May 2025), before benefits, and a single hire brings no experience of other go-lives to the one-off decisions. Compare a year of the team against the implementation quote plus a year of support, then compare year two.
Can a small company implement Odoo without an implementation company?
Yes, if it runs standard apps for one company with little data to migrate. Odoo's pricing page says companies with fewer than 50 employees usually work directly with Odoo using Success Packs. You still need the in-house core: a contact person, process owners, key users and a data owner.
Which in-house roles does an Odoo implementation need?
At minimum, you need the dedicated contact person the subscription agreement requires, a process owner for each area, and key users for each app. You also need someone who owns data quality. Add an administrator once the weekly change stream justifies one, and a developer only when custom code is genuinely needed.
Can we hire the consultant who implemented our Odoo?
Check your contract first. Odoo SA's own Enterprise Subscription Agreement (§6.2) applies between Odoo SA and its customer: neither may solicit the other's employees or contractors involved in the services (for example on a Success Pack), during the agreement and for 12 months after it ends or after that person's involvement ends, whichever is later. The penalty is €30,000 if a breach leads that person to leave. It does not cover an Odoo partner's staff; a partner's own contract sets its terms, so if you may want to hire from your implementer, agree them before the project starts.
Who upgrades our custom modules when we move to a new Odoo version?
Whoever maintains them. Odoo's upgrade documentation states that "it is the responsibility of the maintainer of your custom module to make it compatible with the new version of Odoo". Studio customizations are covered by Odoo's upgrade service as long as Studio stays installed and the subscription is active. Name the owner of every other module in writing before go-live.
Related Articles
Odoo 20 for Implementers: What Changes in a New Project
Starting a new Odoo 20 database? The design decisions that change: access-right domains, parent accounts, simplified inventory, Light users and AI credits.
12 min readOdoo Consulting: When You Need a Consultant
The seven moments when Odoo consulting pays off, the signals that each has arrived, what a consultant should hand you, and when to skip one.
12 min readWhat Odoo Development Services Include
The seven kinds of work an Odoo development engagement covers, what each should deliver, how to tell them apart in a proposal, and the scope gaps to catch.
12 min read