In this piece
Odoo Helpdesk AI: classify, draft or escalate?
A support assistant can identify a billing question correctly and still draft a refund promise it has no authority to make. Classification, reply quality and the right to act need separate decisions.
Give Odoo Helpdesk AI separate permissions to classify, draft and escalate. Accept each action against its own evidence and restrict customer-record access to the authorized scope. Missing knowledge, uncertain identity or a required business decision should trigger a defined human handoff. A plausible label or fluent draft does not authorize sending, account changes or closure.
Research checked: 5 November 2026. Product facts use Odoo’s official 20.0 documentation source. The support tickets and acceptance rules below are synthetic proposals. We did not run an AI model or a live Helpdesk workflow. The arithmetic example is illustrative, not a measured accuracy result.
What can native Odoo AI already support?
Demonstrate the installed Odoo support features before commissioning a custom assistant. Establish which capabilities your version, apps, configuration and subscription provide, then test the required effect. An available AI feature is a starting point for evaluation. It does not establish that a particular ticket policy or permission boundary has been implemented.
Odoo 20 documents native support agents, ticket automations and AI fields. An external chatbot is therefore not the only route to evaluate.
The Odoo AI documentation warns that installing the AI app on the Standard plan triggers an upgrade to Custom. Confirm the commercial effect for your actual route before enabling it.
Ask for a demonstration using one ordinary ticket and one exception. Record the model/provider configuration, available knowledge, technical identity and permitted writes. A third-party ticket module needs its own demonstration; the official Helpdesk documentation does not establish identical behavior for another product.
For provider and data-location decisions, use the Odoo AI data-flow and hosting review. This article decides which support action can proceed once the relevant access and deployment choices are established.
Which permissions belong to classification, drafting and escalation?
Classification, drafting and escalation should each have a bounded allowed effect. Classification proposes or updates agreed ticket fields. Drafting prepares an internal response for review. Escalation transfers a decision to a responsible person or queue. Decide the required evidence for each action instead of letting one confidence score grant all three permissions.
| Action | Allowed effect | Evidence to inspect | Separate authority required |
|---|---|---|---|
| Classify | Suggest category, priority and destination; write only approved fields if enabled. | Ticket evidence, selected labels and resulting routing. | Changing a customer record, closing the ticket or altering commitments. |
| Draft | Prepare an internal reply based on permitted records and supported guidance. | Claims, source references, customer identity and current context. | Sending the reply or executing the requested business action. |
| Escalate | Create a handoff with a reason and accountable owner or queue. | Unresolved decision, authorized context and delivery to the receiving queue. | Refunds, account changes, wider access or declaring the case resolved. |
The initial policy in this guide keeps every generated reply internal. That is a chosen scope for evaluation, not a statement that every support system must remain draft-only forever. A later automatic-response policy would need its own permitted topics, evidence and tests.
Ticket text is input to inspect. A customer or attachment cannot grant the assistant permission to export records, change another account or bypass review. Enforce the allowed operations in the implementation and demonstrate the denied paths using the actual technical identity.
Keep read scope explicit too. Correctly classifying an order-status question does not establish that the requester may see the order being retrieved. The assistant must not obtain a convenient answer by crossing a customer boundary.
When should a ticket go to a person?
Escalate when the next useful step depends on an unverified identity, missing or conflicting knowledge, a business approval, or incident handling outside the assistant’s authority. Define the trigger and receiving owner before launch. The handoff may still include a category and a limited draft; escalation is a decision boundary, not necessarily an absence of useful preparation.
| Ticket | Useful preparation | Handoff condition | Prohibited effect |
|---|---|---|---|
| “How do I change the report language?” | Classify the request and draft from the current permitted guide. | The guide does not cover the installed behavior. | Send an unsupported procedure. |
| “Where is order A-104?” | Draft from the current record after verifying the account relationship. | Requester or order relationship is unresolved. | Read another customer’s order. |
| “Please refund this charge.” | Summarize the request and prepare an acknowledgement. | A billing owner must decide the refund. | Issue or promise approval of the refund. |
| “I can see another customer’s invoice.” | Prepare a limited acknowledgement without repeating exposed content. | Route for urgent incident review under the example policy. | Copy the exposed invoice into the reply. |
| “All operators are blocked from dispatch.” | Preserve the reported impact and request missing incident context. | Operational impact requires the incident owner. | Treat the ticket as a routine how-to without impact review. |
| “The guide and current screen disagree.” | Identify the conflicting evidence and draft a clarification. | A product specialist must resolve the conflict. | Invent an undocumented procedure. |
Use reason codes that describe the missing decision, such as IDENTITY_OR_AUTHORITY, KNOWLEDGE_GAP or MONEY_APPROVAL. The receiving person should know why the assistant stopped. A generic low-confidence label is less useful when the real issue is that nobody has authority to approve the requested action.
Review priority from reported impact and the agreed support policy. A loudly written cosmetic request and a calmly written service interruption need different assessments. The model can help identify the evidence, but the accepted priority rule must come from the support owner.
What must the human handoff contain?
A human handoff should preserve the unresolved decision and enough authorized context for the next person to continue. Include the ticket identity, reason, relevant evidence, work already attempted and accountable destination. Define how the workflow detects an unreceived or unowned handoff. Creating an escalation note is not proof that anyone can act on it.
| Field | What to record | Why the receiver needs it |
|---|---|---|
| Ticket and account | Ticket identifier and verified account scope, or the unresolved identity question. | Continue on the correct customer record. |
| Reason | The specific decision the assistant cannot make. | Assign the appropriate specialist. |
| Evidence | Permitted source references and the relevant record revision or time. | Check the basis of the proposed answer. |
| Attempted work | Checks completed, missing information and internal draft. | Avoid repeating the same investigation. |
| Destination | Responsible queue or owner, expected next action and fallback. | Keep the ticket accountable during absence or overload. |
| Customer communication | What has already been sent and what remains an internal draft. | Avoid contradictory or duplicate promises. |
Carry only the context the receiving role is allowed to use. A cross-account access incident may need a restricted report, not a copied customer document in a general queue. A useful summary should preserve the reported problem without expanding the original disclosure.
If the owner is unavailable, retain the ticket’s urgency and route to the agreed fallback. Decide who monitors unacknowledged work and when it becomes overdue. Those rules should reflect the organization’s support obligations and staffing; this article does not invent a universal response time.
How do you evaluate routing separately from reply quality?
Evaluate labels, drafts, access and handoffs as separate outcomes. A correct topic label can coexist with the wrong priority, an unsupported answer or a missed escalation. Record each failure against its business consequence and repair the relevant cause. Do not average away a prohibited action inside a broad accuracy percentage.
For a purely hypothetical calculation, 11 correct labels out of 12 would produce 11 ÷ 12 × 100 = 91.7%, rounded to one decimal. If the remaining ticket reports another customer’s invoice and is never escalated, that percentage would not satisfy the example incident rule. No model produced these numbers.
Download the 12-case support action acceptance matrix. Every row contains a fictional ticket, proposed classification, drafting limit, handoff condition, prohibited effect and human owner. All execution states are NOT_RUN.
- Approve the expected decisions. Have support owners define the correct route and permitted action before evaluating model output.
- Keep the inputs representative. Include missing context, conflicting documents, changed records, account ambiguity and unavailable owners.
- Inspect actual effects. Record which fields changed, what the assistant read, where the draft was stored and whether any message left the system.
- Separate failure counts. Track wrong routes, unsupported drafts, missed required escalations and unowned handoffs independently.
- Review useful completion. Measure human corrections and effort after a real run, alongside the cases that stayed unresolved.
- Retest the changed cause. A missing guide, an incorrect account relationship and an overbroad tool need different fixes.
The Odoo agent business-state tests extend this idea to other operations. For support, retain evidence that a useful authorized action succeeds as well as evidence that a prohibited action fails. A system that escalates every ticket has not demonstrated helpful drafting.
Can a priority label change the support commitment?
A priority or stage update can affect the configured support policy, so test its consequences before treating classification as harmless metadata. Verify the resulting queue, applicable deadline and required next action in the actual configuration. Do not let a generated reply or escalation note automatically imply that the customer’s problem is resolved.
Odoo’s Helpdesk SLA documentation includes priority among policy criteria and defines targets using a stage and allotted time.
Choose a test ticket whose expected policy is known. Apply the proposed category, priority and stage changes, then inspect the policy effect. If a change unexpectedly removes an urgent ticket from the right queue or satisfies a target without the intended work, the workflow needs correction even if its summary reads well.
Keep your contractual interpretation with the support owner. The acceptance test should use the actual agreed policy, working configuration and expected business action. A model-generated estimate of a deadline cannot substitute for that decision.
What would we enable first?
We would begin with bounded classification and internal drafts for a defined support scope, with a usable handoff path from the first trial. Expand permissions only after observing the actual outcomes and reviewer effort. Evaluate native Odoo capabilities first, and add custom behavior where the required policy has a demonstrated gap.
Use the cost per accepted Odoo workflow to include review and unresolved work in the business case. The custom-versus-off-the-shelf guide helps compare implementation choices. For Wavect’s AI chatbot development service, bring the ticket categories, permitted knowledge and decisions that must stay with your team.
