Short answer: Odoo Helpdesk is an Enterprise app that turns each customer request into a ticket inside a team’s pipeline. A ticket has a stage, a priority, an owner and a conversation, and the team form decides how tickets arrive, who gets them and which promises are tracked. Almost all of it is configuration, so the real work is deciding how your team wants to handle support before you click anything.
Applies to
- Odoo version: Odoo 19. I also read the same Helpdesk pages in the 20.0 documentation. The overview, channels, SLA, reporting, ratings and closing pages match. The one difference I found is in after-sales: Field Service is described as planning an intervention through the Planning app, ending with a Scheduled smart button on the ticket.
- Edition: Enterprise only. Helpdesk is not in the Community code on GitHub, so everything here about its fields and menus comes from the documentation.
- Apps: Helpdesk. Optional links to CRM, Sales, Accounting, Inventory, Repairs, Website, Live Chat, Knowledge, eLearning and Timesheets.
What is a ticket, in Odoo terms?
Think of a ticket as a normal Odoo record with a chatter attached. It belongs to a team, sits in one stage of that team’s pipeline, and carries a Priority shown as stars: zero stars is Low, one is Medium, two is High and three is Urgent. Every new ticket starts at Low.
If you have worked with Odoo records before, that is the whole mental model. The pipeline is a Kanban view over the same data you can also see as a list under Helpdesk ‣ Tickets ‣ All Tickets.
Teams are the unit of configuration. You create them under Helpdesk ‣ Configuration ‣ Helpdesk Teams, and nearly every feature below is a checkbox or field on that form.
How do tickets arrive?
The team form has a Channels section and a Help Center section. Three routes are documented: Email Alias, Live Chat and Website Form.
For email, each new team gets an alias. A message sent to it creates a ticket, with the subject as the title and the body in the Description tab and the chatter. The documented steps are for Odoo Online and Odoo.sh. On-premise databases need their own incoming mail server for aliases.
I find the mechanism interesting because it is not Helpdesk-specific. The mail module’s mail.thread has a message_new method that, by default, creates a record named after the subject and stores the sender’s address (the 19.0 source shows this). Helpdesk’s own override is Enterprise code, so I cannot read it, but the documented behaviour matches that pattern.
For live chat, an operator types /ticket in the conversation and the transcript lands in the ticket description. The documentation says the same command works from WhatsApp.
Who sees a ticket and who works on it?
Visibility has three settings: invited internal users (private), all internal users (company), and invited portal users plus all internal users (public). Pick the narrowest one that works. The docs warn that moving a team from public to either of the other two removes portal users as followers from the team and its tickets.
Assignment is separate. With Automatic Assignment on, you choose between an equal number of tickets per person, an equal number of open tickets per person, or dispatching by tag. The open-ticket option is the one that reflects current workload. Tag dispatch leaves a ticket unassigned if it has no tag, which is easy to miss. Time off recorded in the Time Off app is respected.
How does it track promises?
An SLA policy applies to one team, matches tickets by priority, tags, customers (and services, if Timesheets is on), and names a Reach Stage plus a time allowance. Stages listed under Excluding Stages do not count towards the deadline. Policies are managed under Helpdesk ‣ Configuration ‣ SLA Policies.
Customer ratings are a checkbox on the team plus an email template on a folded stage. Rating itself is a standard Odoo mixin; the 19.0 rating mixin source defines fields such as rating_avg and rating_last_value, which is useful to know if you ever build a report on top.
The three built-in reports sit under Helpdesk ‣ Reporting: Tickets Analysis, SLA Status Analysis and Customer Ratings.
When it fits and when it doesn’t
It fits when more than one person handles requests, when you want an audit trail, or when support needs to reach into sales, stock or invoicing. The links out are the real strength: a ticket can become a CRM opportunity, a refund, a return, a repair order or a field task.
It does not fit if you are on Community, or if support is a few emails a week handled by one person. A shared mailbox and the chatter on contacts may be enough, and adding an Enterprise app for that is hard to justify.
A worked example
Imagine a company that sells and services office coffee machines. It creates a team called Machine Support with a public website form, an email alias and automatic assignment by open-ticket count. A customer reports a leak. The ticket arrives at Low priority, the agent raises it to High, and an SLA policy on High tickets starts a deadline with Solved as the Reach Stage.
The fault turns out to be a failed pump. The agent clicks Repair on the ticket to create a repair order, and, because the rating email template is set on the folded stage, the customer is asked for a rating when the ticket closes. At month end, the manager opens Tickets Analysis grouped by priority and compares Working Hours to Close.
Common mistakes
- Treating the team description as internal notes. It is published on the website form.
- Enabling after-sales or Help Center options casually. The docs warn that these can install extra modules, which matters on a One-App-Free database.
- Folding a stage just to tidy the board. The gear menu’s Fold option is temporary; closing needs Folded in Kanban ticked on the stage itself.
- Raising priority and forgetting SLAs. Priority can be an SLA criterion, so changing it can change the deadline.
Related
- Managing your pipeline in Odoo CRM covers the sales side of a ticket converted to an opportunity.
- Common Odoo CRM sales mistakes shares a few habits with support queues: ownership, next steps and stale records.
There is a longer screen by screen walkthrough of this on sajjalbajaj.in.
Official references
- Helpdesk (19.0)
- Receiving tickets (19.0)
- Service level agreements (19.0)
- Helpdesk reporting (19.0)
- After-sales services (19.0)
- mail.thread source (19.0)
- rating mixin source (19.0)
How this article was checked: I read the Odoo 19 Helpdesk documentation, compared the same pages with the 20.0 documentation, and checked menu and field names against the text. I read the Community mail and rating source for the framework points. Helpdesk itself is Enterprise code, so I did not read it and ran no live database.
If you want to talk about connecting support to the rest of your stack, have a look at my portfolio.