Industry
Odoo for professional services
In professional services, time is the inventory, and every hour that goes unrecorded is an hour that goes unbilled.
Photo: RDNE Stock project on Pexels
An accounting or law practice, a consulting or engineering firm and a technology company sell hours, deliverables and retainers, and their profitability depends on each person’s time reaching the invoice in full. For operations in Mexico, each of those invoices is a CFDI, the country’s electronic invoice. Odoo 20 brings time tracking, projects, invoicing and accounting into the same database, and the work starts by understanding how the firm bills, by the hour, by deliverable or by retainer, before the first project is configured.
What we solve in the operation
-
Hours logged from memory
Time is entered at month-end, from memory, and the hours that get forgotten never reach the client's invoice.
How Odoo solves it
Each person logs their time in Timesheets, tied to the task and the project, and Sales invoices on time and materials: what was logged goes onto the invoice at the service rate or at each employee's rate. When the contract is billed by deliverable, the project invoices by milestones.
Modules
- Timesheets
- Project
- Sales
-
The retainer someone invoices by hand every month
Monthly retainers are invoiced one by one, and a single slip is enough for a client to go a month without an invoice or a payment.
How Odoo solves it
Subscriptions generates each retainer's recurring invoice with the tax data from the sale, and the Mexican localization stamps it as a CFDI, Mexico's electronic invoice, and emails it with its PDF and XML, with no manual steps.
Modules
- Subscriptions
- Accounting
-
Project cost known only at delivery
Hours live in one spreadsheet, expenses in another and purchases in the books, so what a project cost is known only once it has been delivered.
How Odoo solves it
In Odoo 20 every project has its own analytic account: logged hours, purchases and team expenses are charged to it, and its accumulated cost can be checked while the project is still open.
Modules
- Project
- Timesheets
- Purchase
- Expenses
-
Travel expenses that never get re-invoiced
The team pays travel expenses out of pocket, reimbursement is slow, and the expense the client was supposed to cover goes uncollected.
How Odoo solves it
In Expenses each person uploads the receipt, the expense goes through approval and is reimbursed, and the re-invoiceable ones are added to the client's sales order to be billed with the next invoice.
Modules
- Expenses
- Sales
-
The contract signed on paper
The engagement letter is printed, signed, scanned and filed in a shared folder, and when it is needed nobody knows which version is the signed one.
How Odoo solves it
Sign sends the letter or the contract for signature from Odoo; when the request is sent from a record, the signed PDF and its certificate of completion stay on it. Documents organizes each client's files and shares them with the client through a link.
Modules
- Sign
- Documents
-
Support handled over personal WhatsApp
Clients write to whoever they know, through whatever channel is at hand, and nobody measures how long the answer takes or how much time went into it.
How Odoo solves it
Helpdesk receives tickets by email, live chat or web form, with service level agreements per team, and the time spent on each ticket is logged so it can be invoiced.
Modules
- Helpdesk
- Timesheets
-
Nobody knows who is free next week
Team assignments live in a partner's head, and new projects are accepted without seeing who can take them on.
How Odoo solves it
Planning assigns shifts to people and teams by role, so the week is divided up before it starts.
Modules
- Planning
-
Booking a meeting takes five emails
Setting a meeting with a new client takes days of emails, and everyone checks their calendar by hand.
How Odoo solves it
Appointments publishes a booking page based on real calendar availability, and each appointment is linked to the CRM.
Modules
- Appointments
- CRM
-
The monthly close rebuilt from scratch
Every month the team rebuilds the same task list for each client, and something gets forgotten along the way.
How Odoo solves it
Project comes with project templates and recurring tasks: the structure is defined once and the tasks come back every period.
Modules
- Project
-
The client who emails to ask how their matter is going
Clients write to find out where their case stands, and someone has to stop their work to answer.
How Odoo solves it
In Odoo 20 clients reach their project through the portal without having to follow every message, and tasks can be assigned to them.
Modules
- Project
Nivolty solutions for this industry
Nivolty is a company in Quantum Garage's group that operates independently: it develops and guarantees its own products for Odoo Enterprise, and offers the CloudCore hosting. Its first AI Agents solution, for WhatsApp, is now available.
All Nivolty solutions-
Radar Fiscal
Monitors the SAT; Odoo does the invoice stamping natively
-
Sentinel
Automated internal audit of the ERP
-
Radar Comply
Labor, foreign trade and data protection compliance
-
CloudCore
Dedicated hosting for Odoo Enterprise
-
AI Agents · WhatsApp
The first Nivolty AI Agents solution: WhatsApp connected to Odoo
Guides that apply
-
Guide · Licensing
Odoo Enterprise licensing and pricing in Mexico: plans, users and what the subscription includes
-
Guide · Mexico localization
Odoo 20 Mexico localization: CFDI 4.0, payment complement, Carta Porte and DIOT
-
Guide · Payroll
Mexican payroll in Odoo 20: what it computes, how payslips are stamped and how to set it up
-
Guide · Implementation
How to implement Odoo in a mid-sized company: phases, data migration, cut-off, go-live and adoption
Odoo with your industry's processes
We show you how your sector's processes run in Odoo, with the judgment we bring to every project: first the process, then the module.
Frequently asked questions
Can Odoo bill by the hour, by deliverable and by retainer in the same firm?
Yes. Each service declares how it is invoiced: on time and materials from logged hours, by project milestones or as a recurring subscription, and the same firm can use all three with different clients.
How does Odoo count a firm's users?
Odoo Enterprise is priced per user per month. The contract counts as a user every active account that is neither a light user nor a portal account; light users are billed separately, at their own price, and every employee registered in Employees without a user account counts as one. Clients who log in to the portal are not counted.
Can the firm run its payroll in Odoo?
Yes. Odoo 20’s Mexican payroll computes salaries with employee and employer payroll taxes, IMSS contributions, INFONAVIT and FONACOT credits, the aguinaldo year-end bonus and vacations with their premium, and issues each payslip as a payroll CFDI.
How do you migrate to Odoo from CONTPAQi or Aspel?
By importing data: master data, balances at the cut-off date, such as the trial balance, open invoices and bank accounts, and what is needed to keep issuing payment complements come over, and the history stays in the old system for reference.