I want to add an “On Hold” status in both desk and Front end level and pause the SLA when a ticket reaches this status, instead of pausing it in the “Replied” status. Is it possible to customize this through code?
I have installed Frappe Helpdesk in Developer mode. Can I add the "On Hold " status in both the Desk and front-end portal, and ensure the SLA is paused when this status is set? Currently, we only have Open, Resolved, Replied, and Closed statuses, and need to add “On Hold.”
@here , Any options to customize the ticket status in frappe helpdesk.?
ejaaz
November 19, 2024, 6:11pm
3
Yes, you can add it through the Customize form, and if adding status is not possible through the Customize form, then you can use property setters to set options.
@ejaaz , In Desk LEvel I can able to create the status , but In Front end Portal It won’t reflect right.?
I need the status customization in Front end Portal
ejaaz
November 20, 2024, 6:01am
5
Oh, sorry about that. I don’t know how to add in the front end. There are some issues related to that on GitHub; here’s the link.
opened 05:40AM - 18 Oct 24 UTC
### Is your feature request related to a problem? Please describe.
Currently,… HelpDesk does not seem to have ability to add additional status (along with Resolved, Open, Closed) in Ticket.
The stock options that is available is limiting and we would like to have an option to configure it.
### Describe the solution you'd like
**We would like to contribute and make this feature happen,** however a general direction about how this should be implemented would be helpful, unless the team is already on it. A configuration screen to extend additional status values. So what we would like to understand is, can HD Ticket doctype support validation of this select field with extra options that are not included in the original doctype. Is there a pattern established in the repo which does something similar.
### Describe the alternatives you've considered
_No response_
### Additional context
_No response_
opened 05:14AM - 30 Aug 23 UTC
closed 06:13PM - 06 Sep 23 UTC
We wish to have the On Hold status be included in Frappe Help desk ticket status… . This value is available in the support issues module of ERP Next. The On Hold status will be helpful for pausing the SLA while we have a third party dependency to resolve the ticket.
Version:
ERP Next: v14.36.0 (version-14)
Frappe Framework: v14.46.0 (version-14)
Helpdesk: v0.10.0 (main)
develop
← RitvikSardana:feat-custom-sla-status
opened 03:52PM - 13 Aug 25 UTC
**Issue:**
The whole codebase of Helpdesk was hardcoded with Open/Replied/Resol… ved/Closed statuses. This resulted in a lot of rigidity in the system and a lot of workarounds to adapt to people's workflows.
**Solution:**
Make statuses a first-class feature.
Introduce `HD Ticket Status` DocType, which is mapped to a category of SLA.
Open = SLA continues, Paused = SLA is paused, Resolved = SLA clock stops.
Creating a new status
<img width="1440" height="476" alt="Screenshot 2025-08-25 at 12 42 11 PM" src="https://github.com/user-attachments/assets/5beb37c6-3eb6-4c48-9962-644f954d1577" />
Use these statuses and categories to calculate the SLA of a ticket.
**SLA Improvements:**
1. The Total Hold Time calculation previously included non-working hours and holidays, which caused inaccuracies. Since the Resolution Time field correctly excluded non-working hours and holidays, the mismatch led to incorrect resolution times.
The fix ensures that Total Hold Time is now calculated using only working hours, excluding non-working hours and holidays. As a result, the Resolution Time field is accurate and correctly reflects the actual time taken to resolve a ticket within working hours.
2. Previously, to calculate Resolution Time and Response Time, we used the function `calc_elapsed_time`.
This function was highly inefficient, as it iterated minute by minute from the ticket’s start date to end date, checking whether each minute was a working minute.
For example, if a ticket was created on Friday and closed on Monday, the function would loop through all 4,320 minutes( this number grows linearly as we increase the number of days) in that time span. This excessive iteration caused ticket closure to be extremely slow.
With the new fix, we calculate working minutes far more efficiently. Instead of iterating through every minute, the function now only processes once per day within the range (in the above example, just three iterations)
This optimization has **increased** the **performance** by **1,440x**, resulting in significantly faster ticket closure performance.
3. We used to calculate the Resolution Time of the ticket again when the status changed from Resolved to Closed, which resulted in incorrect resolution time. So we have now fixed this.
4. Correct calculation of resolution time & response time in the UI.
**What changed?**
1. New DocType "HD Ticket Status"
2. Remove mapping of SLA doctype to "pause" & "fulfilled". Status should control the SLA, not vice versa. 4. Removed old child doctypes "HD SLA Fulfilled on status" & "HD Pause SLA on Status"
3. New fetch from field in **HD Ticket** DocType "status_category", this helps to track and SLA clock and make changes accordingly.
4. 2 new fields in HD Settings to set the default status of the ticket when it is created & when the customer replies to the ticket. By default, both are set to "Open" status. Similar fields in HD SLA doctype (this is preferred if the value is set)
5. Correct Dashboard analytics with correct resolution time.
6. Existing Reports now support Custom Statuses
<img width="1440" height="479" alt="HD Settings" src="https://github.com/user-attachments/assets/8bb306af-f3df-4fe9-9ad9-b8abb6a93ef1" />
<img width="1439" height="780" alt="HD SLA" src="https://github.com/user-attachments/assets/4e65b4d3-743c-4ea3-a24b-8c87ef60e1e4" />
7. Correct SLA information in the UI.
8. A lot of improvements in SLA calculation.
Creating Status from Desk:
<img width="1440" height="476" alt="Screenshot 2025-08-25 at 12 42 11 PM" src="https://github.com/user-attachments/assets/01d6504b-54fc-4eab-a658-f8ce1b9253fd" />
How these are reflected in the UI (Agent Portal):
<img width="1439" height="777" alt="Screenshot 2025-08-25 at 4 55 54 PM" src="https://github.com/user-attachments/assets/a605e521-63a9-459f-ae62-ee9893add35a" />
closes #2017 , closes #2367 , closes #2476 , closes #1542
docs: https://docs.frappe.io/helpdesk/ticket-status
The feature is now live, you can check the documentation and create custom statuses.