Skip to main content
AK Ankush Kaura

How to Set Up Odoo Helpdesk: Teams, Channels and Stages

Set up Odoo 19 Helpdesk step by step: create a team, turn on email, live chat and the website form, assign tickets, close them and add SLAs.

Published on 30 Oct 2026 · 6 min read

Animated portrait of Ankush Kaura

Short answer: Open Helpdesk ‣ Configuration ‣ Helpdesk Teams, click New, name the team, choose who can see it, switch on at least one channel (Email Alias, Live Chat or Website Form), and decide how tickets are assigned. Then check that one stage is folded so tickets can actually close, and add SLA policies and ratings if you need them. Helpdesk is an Enterprise app, so none of this exists on a Community database.

Applies to

  • Odoo version: Odoo 19. I compared the same pages in the 20.0 documentation. Every step below reads the same there, apart from the Field Service wording under after-sales, which I leave out of this setup.
  • Edition: Enterprise only. Menu paths and field names come from the documentation, because the Helpdesk code is not in the public Community repository.
  • Apps: Helpdesk, plus Website for the form, Live Chat if you want chat, and Settings for working hours.

Before you start

Decide four things on paper first. They are cheap to settle now and awkward to change once tickets exist.

  1. How many teams? One team per distinct queue that has its own people and rules, not one per product line by reflex. A team is also the unit for SLAs, ratings and closing rules.
  2. Who may see the tickets? The team description is shown on the public form, so keep it free of internal wording.
  3. What does closed mean? Pick the stage that counts as finished. Odoo treats a stage as closed only if it is folded in the Kanban view.
  4. Which channels will you actually watch? An unmonitored live chat is worse than none.

If you are on-premise, aliases need your own incoming mail server. On Odoo Online and Odoo.sh the documented steps work as written.

If another system needs to create tickets, I would begin with the documented routes, email to the alias or the website form, before thinking about custom code. Both are configuration.

Step by step

  1. Go to Helpdesk ‣ Configuration ‣ Helpdesk Teams and click New.
  2. Enter a Name. Add a description only if you are happy for customers to read it, and pick the Company if you run several.
  3. Under Visibility, choose one of: invited internal users (private), all internal users (company), or invited portal users and all internal users (public). Choose public if you want a Help Center or portal tickets.
  4. In Follow All Team’s Tickets, add anyone who should be notified of every update. External contacts can be added but, on a private team, they will be notified without being able to open the ticket in the portal.
  5. Tick Automatic Assignment if you want tickets handed out. Choose equal total tickets, equal open tickets, or Dispatch tickets based on tags. For the tag option, click Configure tags handled by team members and link tags to people.
  6. Add Team Members, or leave the field empty to include everyone with suitable access rights.
  7. Scroll to Channels and tick Email Alias. Edit the Alias field if the default is not what you want.
  8. Tick Website Form under Help Center. After saving, use the Go to Website smart button, click Edit, and add or remove fields in the sidebar. Toggle Unpublished to Published when you are done.
  9. If you want chat, tick Live Chat and use Configure Live Chat Channel to set operators and rules. Operators type /ticket inside a conversation to create a ticket.
  10. Open the team’s pipeline from the dashboard. For the stage that means finished, hover over the heading, click the gear, choose Edit, tick Folded in Kanban and Save & Close. Do not use the gear’s separate Fold option, which only hides the column for now.
  11. Under Performance, check that SLA Policies is on (it is on by default for new teams), and tick Customer Ratings if you want feedback.
  12. Under Self-Service, decide on Automatic Closing and Closure by Customers.
  13. Create a first SLA policy under Helpdesk ‣ Configuration ‣ SLA Policies. Choose the Helpdesk Team, set the Priority criteria, pick a Reach Stage, and enter the time allowed. Keep it to one or two policies at the start. If a ticket matches several, only the earliest deadline is shown on it.

Priority matters more than it looks. The criteria field on an SLA only matches tickets once their star rating equals the policy’s, and a policy with no priority selected applies only to Low tickets with zero stars. So the way agents set stars becomes part of the setup, and it is worth agreeing what two stars mean before you go live.

Worked example

Take a bicycle shop with an online store. It creates one team, Bike Care, with public visibility, because customers should see their tickets in the portal. It turns on the email alias and the website form, and skips chat for now.

The shop sets assignment to equal open tickets across its two workshop staff. It folds the last stage, Solved, and enables Automatic Closing with the In Stages field limited to the waiting-for-customer stage, so tickets stuck in “we are working on it” never close themselves by accident. It ticks Closure by Customers so a rider can close their own ticket from the portal.

The website form gets one extra required field for the frame number, added from the sidebar with + Field.

What you should see

  • The team appears on the Helpdesk dashboard, and its pipeline opens with your stages.
  • Sending an email to the alias creates a ticket whose title is the subject line and whose body appears in Description and the chatter.
  • Submitting the website form creates a ticket and the customer receives the Request Acknowledgment email with a View the ticket link.
  • Tickets that match an SLA policy show a tag with a deadline. The tag turns green when the Reach Stage is hit.
  • Moving a ticket to the folded stage marks it closed.

Troubleshooting

The Go to Website smart button is missing. The docs say the team page may need to be saved and refreshed after enabling Website Form. If a Help Center is published, the button lands there first, and Contact Us takes you to the form.

Tickets stay unassigned. Check the assignment mode. With tag dispatch, an untagged ticket is never assigned. Also check Time Off: people on leave are skipped.

Customers cannot close their tickets. The Close Ticket button only appears once Closure by Customers is ticked, and only in the portal view of the ticket.

Rating emails go out too early. The rating template should sit on a folded stage only. A stage that is not folded does not mean closed.

Portal users vanished from a team. Switching visibility away from public removes portal users as followers from the team and its tickets.

Chat settings do not appear. The first time Live Chat is enabled on a database, the page may need a manual save and refresh.

There is a longer screen by screen walkthrough of this on sajjalbajaj.in.

Official references

How this guide was checked: I read the Odoo 19 Helpdesk documentation pages listed above, compared them with the 20.0 versions, and matched every menu path and field name to the text. I did not run these steps on a live database, because Helpdesk needs an Enterprise licence.

If you need support intake connected to a website or another system, see how I work on the stack page.

Frequently asked questions

Where do I create a Helpdesk team in Odoo 19?

Go to Helpdesk ‣ Configuration ‣ Helpdesk Teams and click New. Most of the setup, including channels, assignment, SLA policies, ratings and closing rules, lives on that one form.

Why is my ticket not assigned to anyone?

If Automatic Assignment is set to dispatch by tags, a ticket without a tag stays unassigned. Add a tag to the ticket, or choose one of the workload-based methods instead.

Can customers submit tickets without an account?

Yes, through the website form or the team's email alias, as long as the matching channel is enabled. Seeing their ticket later uses the link in the acknowledgment email, which does not need portal access.