Helpdesk SLA Escalation
SLA timers, escalation rules and CSAT satisfaction surveys for support tickets
SLA timers, multi-level escalation and customer-satisfaction surveys are usually locked behind Enterprise helpdesk or a paid SaaS desk, leaving Community users tracking support promises in spreadsheets. This self-contained app gives gb.helpdesk.ticket a full lifecycle (new through closed), SLA policies defined per team and priority, and business-hours-aware timers that compute consumed percentage and breach status as the clock runs. Escalation rules driven by an hourly cron reassign, re-prioritise and notify before a ticket breaches, a CSAT wizard captures a 1-5 rating and feedback on resolution, and per-team compliance and workload metrics show where the desk is winning or slipping. It depends only on mail, so it runs on Odoo Community out of the box.
Key Features
Full ticket lifecycle with chatter
gb.helpdesk.ticket moves through new, in_progress, pending, resolved, closed and cancelled via guarded action_start/resolve/close/reopen methods, stamping first_response_date, resolved_date and closed_date. Built on mail.thread, every state, priority and assignment change is tracked, and reopens increment a counter.
SLA policies by team and priority
Each gb.helpdesk.sla sets separate response_hours and resolution_hours plus a warn threshold, scoped to a team and priority. find_policy picks the best match (falling back to any team policy) and the deadlines are stamped onto the ticket automatically on create and on priority/team change.
Business-hours-aware SLA timers
The team's add_sla_duration walks only the configured work_start to work_end window, rolling overflow to the next working day, so a 4-hour target raised at 4pm is due next morning, not overnight. _compute_sla_status derives sla_consumed_pct and an on_track/warning/breached/met status.
Multi-level escalation rules
gb.helpdesk.escalation rules fire by level once sla_consumed_pct reaches their threshold_pct. _apply can bump_priority, reassign to a user and subscribe notify_user_ids to the chatter, recording each action as a logged message and advancing the ticket's escalation_level.
Hourly escalation cron
cron_run_escalations scans open tickets with an SLA, recomputes their status and applies every eligible rule above the ticket's current escalation level in order. At-risk tickets get reassigned, re-prioritised and flagged before they breach, with no manual monitoring.
CSAT survey on resolution
The gb.helpdesk.csat.wizard captures a 1-to-5 csat_rating and free-text feedback, and record_csat stamps it with a date and posts to the chatter. A constraint blocks rating tickets that are not resolved or closed, keeping satisfaction data clean.
Team workload and compliance metrics
gb.helpdesk.team exposes open_ticket_count, breached_count, avg_csat and compliance_pct as stored computed fields, all visible in the Teams list view. Managers see SLA compliance percentage and average CSAT score per team at a glance without leaving the Teams screen.
Ticket merge wizard and quick reassign
A "Merge into…" button on the ticket form opens a wizard where the agent picks the canonical target ticket; the wizard calls action_merge_into, cancels duplicates, stamps merged_into_id and posts chatter notes on both sides. The same wizard is available as a list-view Action on multi-selected tickets. action_reassign_to_me grabs ownership in one click.
Use Cases
Screenshots
Escalation Rules
Sla Policies
Tags
Teams
Tickets
Why Choose This Module
Bring first-class SLA management, multi-level escalation and customer satisfaction (CSAT) surveys — features usually reserved for Enterprise helpdesk — to Odoo Community, out of the box. A complete ticket lifecycle with business-hours-aware SLA timers and breach detection.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: English
- Author: Pokutsoft
- Dependencies: mail
- Support: support@pokutsoft.com
Update date: 2026-07-02