Odoo 19 Helpdesk is an Enterprise app organised around teams: each team has its own channels (email alias, website form, live chat), stages, members, SLA policies, assignment rule and portal visibility. Most options are switched on per team, not globally. Start with one team per support queue that has a different promise or a different set of agents, add SLA policies that match what your contracts actually say, and connect timesheets and billing only once agents log time reliably.
Helpdesk teams and channels
A team is the unit of configuration. Open it from Helpdesk > Configuration > Helpdesk Teams and you will find most of the app's features as checkboxes on that one form: channels, SLA policies, timesheets, time billing, ratings, after-sales actions and self-service.
Tickets reach a team through:
- Email alias, on by default. An incoming email creates a ticket; replies go back into its chatter.
- Website Form, which publishes a ticket form on your Odoo website. It requires the team's visibility to include portal users.
- Live Chat, where an operator or a chatbot step can turn a conversation into a ticket.
- Self-service links to a Community Forum, eLearning courses or Knowledge articles, to deflect questions before they become tickets.
Each team also has a Visibility setting: invited internal users only, all internal users, or invited portal users and all internal users. The last is the default and is what makes the customer portal work.
Stages and SLA policies
New teams use five stages: New, In Progress, On Hold, Solved and Cancelled. Stages can carry an email template that goes to the customer when a ticket reaches them; New sends the "Ticket Received" acknowledgement out of the box.
With SLA Policies on (the default for new teams), you define policies under Configuration > SLA Policies. Each one applies to tickets of a team that match its conditions and sets a deadline:
| Field | What it does |
|---|---|
| Priority | Low, Medium, High or Urgent. The policy applies to tickets of that priority. |
| Tags and Customers | Optional filters, for example a premium tag or named key accounts. |
| Target Stage | The stage a ticket must reach to satisfy the SLA. |
| Within | Maximum working hours from ticket creation to the target stage. |
| Excluding Stages | Time spent in these stages (typically On Hold) does not count. |
"Working hours" means the team's Working Hours calendar, so a 9-to-6, six-day Indian office and a 24x7 team get different deadlines from the same number. Tickets show an SLA Deadline and are flagged when a policy fails, and Reporting > SLA Status Analysis shows which tickets met or missed each policy, by team.
An SLA in Odoo should be the one written in your contract. If it is stricter, agents learn to ignore it; if it is looser, you find out from the customer.
Use Excluding Stages honestly. Parking a ticket in On Hold to stop the clock while the customer is waiting on you makes the report look good and the customer relationship worse.
How tickets are assigned
With Automatic Assignment on, new tickets go to the team's members according to the Assignment Method:
- Each user is assigned an equal number of tickets (the default).
- Each user has an equal number of open tickets, which balances by current workload.
- Dispatch tickets based on tags, so a tag such as GST or payroll reaches the agents who know it.
Assignment takes members' working hours and time off into account, so tickets do not pile up on someone who is on leave. Without automatic assignment, agents pick tickets from the team's queue. For small teams that is often better: the person who knows the customer takes the ticket.
The customer portal and ratings
Customers with portal access see their tickets under /my/tickets, can reply, and follow progress. Turn on Closure by Customers if you want them to close a ticket themselves once they are satisfied. Automatic Closing closes tickets left inactive for a set number of days in chosen stages, which keeps "waiting for customer" tickets from living forever.
With Customer Ratings on, Odoo activates the Helpdesk: Ticket Rating Request email template. Set it as the template on your Solved stage and customers are asked to rate the service when a ticket is solved. Results appear in Reporting > Customer Ratings and on the ticket.
Timesheets, billing and after-sales
With Timesheets on, the team is linked to a project and agents log time on each ticket. That is useful even if you never bill it: it tells you what each customer costs to support.
Time Billing (helpdesk_sale_timesheet) connects tickets to sales order lines. Sell a block of support hours on a sales order, link the ticket to that line, and time logged on the ticket is deducted from the prepaid hours and invoiced according to the service product's policy. The ticket shows the linked sales order and its invoices. Timesheets and billable hours are covered in detail in part 31.
The after-sales options add buttons to the ticket for Refunds, Coupons, Gift Cards, Returns, Replacements, Repairs and Field Service. The last creates a field service task from the ticket, which is how on-site visits from part 16 usually start.
A sensible helpdesk rollout order
- One team, its email alias and members; stages left at the default five.
- Working hours on the team; SLA policies copied from your contracts.
- Portal visibility, the website form, and Closure by Customers if you want it.
- Customer ratings on the Solved stage; review them monthly.
- Timesheets on tickets, then Time Billing for prepaid support hours.
- Later: automatic assignment, tag dispatch, after-sales actions, field service.
Helpdesk > Configuration > Helpdesk Teams Helpdesk > Configuration > SLA Policies Helpdesk > Reporting > SLA Status Analysis Helpdesk > Reporting > Customer Ratings
Helpdesk and every extension in this post are Enterprise. This closes the operations part of the series; next we turn to finance, starting with accounting setup and the chart of accounts. If you are moving support off a separate ticketing tool, talk to us about bringing the history across.
Questions we get asked
Is Odoo Helpdesk available in Community edition?
No. Helpdesk is an Enterprise-only app in Odoo 19, and so are its extensions for timesheets, time billing, the website form and after-sales actions. Community users sometimes run support on Project tasks with an email alias and the portal, but that gives no SLA policies, no automatic assignment by workload or tags, and no SLA status reporting.
How do SLA policies work in Odoo 19 Helpdesk?
An SLA policy belongs to a team and applies to tickets with a given priority, and optionally given tags or customers. It sets a target stage and a number of working hours, counted on the team's working-hours calendar from ticket creation. Time spent in excluded stages, such as On Hold, does not count. Tickets show an SLA deadline and are flagged when the policy fails.
Can Odoo Helpdesk bill customers for support time?
Yes, with the Time Billing option. Sell support hours on a sales order using a timesheet-based service product, then link tickets to that sales order line. Time agents log on the ticket is counted against the hours sold and invoiced according to the product's invoicing policy. The ticket shows the linked sales order and its invoices, and remaining prepaid hours.
How does automatic ticket assignment work in Odoo 19?
Turn on Automatic Assignment on the team and choose a method: an equal number of tickets per member, an equal number of open tickets per member, or dispatch based on tags. Odoo assigns new tickets only to members who are available according to their working hours and time off. Without it, tickets stay unassigned in the team queue for agents to pick.