Hello Everyone!
Welcome back to the Community Learning Series! Today, we explore how Zylker Techfix, a gadget servicing firm, boosted productivity by tracking the time spent at a particular ticket status in Zoho Desk. 
Zylker Techfix customized Zoho Desk’s ticket statuses to align with their servicing process. Here’s their workflow: when a gadget was submitted for service, the ticket entered “Open” status. After an initial examination, it moved to “Service” status, mapped to the “Hold” type while repairs were underway. Once repairs were complete, the ticket progressed to “Billing” and then to “Closed” after payment and delivery. To improve operations, Zylker Techfix wanted to know how long tickets stayed in “Service” status, giving them insights into potential delays and resource use. With a custom function, they tracked this time in a custom field, then used it to generate reports that highlighted areas for process improvement.
With this custom function, you can gain a clear view of your support timeline, identify bottlenecks, and serve clients more efficiently. Let’s dive into how you can implement this custom function to refine your own operations and drive productivity forward.
Prerequisites
1. Create a Custom Field
To track ticket duration at a StatusName (call it In progress) mapped to the Status Type On Hold, 
     
      1.1 Go to Setup (S) >> Customization >> Layouts and Fields. 
             Select Tickets under Layouts and the Department in which you would like to track the ticket duration. 
      1.2 Create a custom single line field in the Tickets layout of the respective department. 
            1.2.1 Click on the layout, add a single line field with a label StatusTime. 
                      You can label the field with your preferred name. 
      1.3 Note the API names for the the single line field to insert into the custom function.     
            To find the API name, Click on the Gear wheel icon of the single line field. 
            Click on Edit Properties, you will find the API Name under the Edit Field. Refer to Create Custom Fields.  
2. Create a connection
      2.1 Go to Setup(S) and choose Connections under Developer Space.
      2.2 Click Create Connection.
      2.3 Select Zoho OAuth under Default Connection.
      2.4 Set the connection name as deskconnection.
      2.5 Under Scope, choose the below scope values:
             Desk.tickets.READ
             Desk.tickets.UPDATE
      2.6 Click Create and Connect.
      2.7 Click Connect and click Accept.
Connection is created successfully.
Create a Workflow Rule
1. Go to Setup, choose Workflows under Automation. 
2. Under Workflows, click Rules >> Create Rule.
In the Basic Information section,
3. Select Tickets from the drop-down menu under Module.
4. Enter a Rule Name and Description for the rule.
5. If you want to activate the rule right away, select the Active checkbox. Else, create the rule and activate it later.
6. Click Next.
 
In the Execute on section, follow these steps:
7. Select Field Update, Choose Status.  
8. Click Next.
 
9. Leave the Criteria section blank and click Next. (Add a criteria if you require it.) 
10. In the Actions section, click the + icon and select New next to Custom Functions.
11. Enter a Name and Description for the custom function.
12. Under Argument Mapping, give a desired Method Name. Map the arguments as below: 
      12.1 In the Argument Name field, type ticketId and from the Value drop-down list, select Ticket Id under the Tickets Section.                                         
13. In the script window, insert the Custom Function given below:
- ///----<<<< User Inputs >>>>----
 - deskURL = "https://desk.zoho.com";
 - //Replace with your custom domain
 - //Replace your Custom Field API Name to Update Desired Type Status Duration Ex: Open 
 - durationApiName = "cf_status_name";
 - // ex: "cf_open_time"
 - //Replace your Desired Status Type Name Ex: Open
 - statusType = "On Hold";
 - // Open or On Hold or Closed
 - //Replace the Status Name 
 - statusName = "In Progress";
 - // Ex: In Progress, Waiting for Reply, etc
 - // ----<<<< Initial Configs >>>>----
 - logs = Map();
 - logs.insert("ticketId":ticketId);
 - openHoursToUpdate = 0;
 - openMinutesToUpdate = 0;
 - onHoldHoursToUpdate = 0;
 - onHoldMinutesToUpdate = 0;
 - //---------------------------
 - try 
 - {
 - // ---- start your logic from here ----
 - ticketStatusLifeCycleInfo = invokeurl
 - [
 -  	url :deskURL + "/api/v1/tickets/" + ticketId + "/statusLifeCycle"
 -  	type :GET
 -  	connection:"deskconnection"
 - ];
 - logs.insert("ticketStatusLifeCycleInfo":ticketStatusLifeCycleInfo);
 - if(ticketStatusLifeCycleInfo != null && ticketStatusLifeCycleInfo.containsKey("statusLifeCycle") && ticketStatusLifeCycleInfo.get("statusLifeCycle").size() > 0)
 - {
 -  	for each  statusInfo in ticketStatusLifeCycleInfo.get("statusLifeCycle")
 -  	{
 -   	statusType = statusInfo.get("statusType");
 -   	statusName = statusInfo.get("status");
 -   	if(statusType == statusType && statusName == statusName)
 -   	{
 -    	statusDuration = statusInfo.get("duration");
 -    	if(statusDuration != null && statusDuration != "")
 -    	{
 -     	statusDuration = statusDuration.replaceAll(" hrs","");
 -     	durationCollection = statusDuration.toCollection(":");
 -     	hourDuration = durationCollection.get(0);
 -     	minuteDuration = durationCollection.get(1);
 -     	openHoursToUpdate = openHoursToUpdate + hourDuration.toNumber();
 -     	openMinutesToUpdate = openMinutesToUpdate + minuteDuration.toNumber();
 -    	}
 -   	}
 -  	}
 -  	openHoursToUpdate = (openMinutesToUpdate / 60).toNumber() + openHoursToUpdate;
 -  	openMinutesToUpdate = openMinutesToUpdate % 60;
 -  	logs.insert("openHoursToUpdate":openHoursToUpdate);
 -  	logs.insert("openMinutesToUpdate":openMinutesToUpdate);
 -  	ticketUpdateParams = Map();
 -  	ticketUpdateParams.insert("cf":{durationApiName:openHoursToUpdate + ":" + openMinutesToUpdate});
 -  	logs.insert("ticketUpdateParams":ticketUpdateParams);
 -  	ticketUpdate = invokeurl
 -  	[
 -   	url :deskURL + "/api/v1/tickets/" + ticketId
 -   	type :PUT
 -   	parameters:ticketUpdateParams + ""
 -   	connection:"deskconnection"
 -  	];
 -  	logs.insert("ticketUpdate":ticketUpdate);
 - }
 - }
 - catch (errorInfo)
 - {
 - logs.insert("errorInfo":errorInfo);
 - }
 - info "logs: \n" + logs; 
 - logs.insert("errorInfo":errorInfo);
 - info "logs: \n" + logs;
 
NOTE
a. In Line 2, Replace ".com" with the domain extension based on your Data Center.
b. In Line 5, add the API name of the custom field created within the Tickets layout. 
c. In Line 8 and line 11, enter the status type and status name. 
14. Click Save to save the custom function.
15. Click Save again to save the workflow.
Creating Ticket Tracking Reports
You can generate Reports under Analytics to view the time duration of your tickets in one go. 
Go to the Analytics module >> Choose Reports >> Add Report >> Select Tickets module and Time Entry under Related modules. Refer to Create Custom Report  
Let us know how this custom helps improve your ticketing process.
Until next week,
Warm regards,
Lydia | Zoho Desk 
Recent Topics
 
I can't log in to my account on Thunderbird
I've just had to rebuild my PC (calamitous mess from Microsoft with Win10/Win 11 'upgrade' - they confirmed I had to start with a new build). I have used Zoho mail for years via Mozilla Thunderbird, but now I've had to download the latest version of TBird,
 
Sorten the domain of zoho mail ids
I recently created zoho mail id and am quite excited with the features. But one issue ig nobody wanna type this big zohoaccounts.com I mean silly bold Suggestion zmail.com (sound gmail) (attraction) or some genz words looks cool
 
Weekly Tips : Customize your Zoho Mail Notifications
In a professional context, email communication remains one of the most crucial channels for staying connected and managing workflows. Keeping track of your emails, task updates, or important announcements can be overwhelming—especially if you are juggling
 
How to move emails to Shared Mailbox?
Hello, I created a Shred Mailbox instead of using a distribution group. But I cannot move previous emails to certain shared mailbox. Is it possible move some emails from inbox to shared mailbox?
 
Email task creator when task is updated/marked complete
I am looking for a way to notify the creator of a task in zoho todo when - Task is updated Task is closed Comments entered 1 and 2 are critical, and I cannot find a zoho flow to do this. There is no way that as a manager I will know when someone has completed
 
The attendees will now be redirected to the landing webpage when they exit the webinar, set by the organizer.
Hello All, In the latest version of the Zoho Meeting iOS mobile app (v1.3.16), we have brought in the below enhancements:   Post Webinar Re-direction Revamped exit UI for Webinar Post Webinar Re-direction:  The attendees will now be redirected to the
 
Download API file contents from browser
Hi Team - is there something being planned to be able to trigger file downloads from the browser via a deluge script? i.e. retrieve a file via API, trigger the file download directly from the browser. Or... using the convertToPdf function (https://www.zoho.com/deluge/help/functions/file/convert-to-pdf.html)
 
March 15, 2023: Zoho Docs is discontinued
As of today (March 15, 2023) Zoho Docs is discontinued for all users. We would like to thank our customers for trusting us for so many years! Going forward, we're confident you'll enjoy using Zoho WorkDrive for all your advanced file management and collaboration
 
When using "locations" in zoho books, can you keep the two locations totally separate from each other?
I am looking to add a location but I don't want to intermingle the banking or other accounts. I want that to be like two separate independent branches that use different banking accounts, accounts payable, and accounts receivable. The people who are in
 
Adding a Channel to SalesIQ
I have a client that currently uses Zoho CRM and Zoho Desk. They would like a live chat to place on their website that has a mobile app and chat bots (something like SalesIQ). However, they would also like to have all this work over SMS as well. Does the SalesIQ API allow this? Can I add visitors without them being a visitor on a website? Thanks! Bryan Redeagle
 
DataPrep Bigquery Connection failed
Hello everybody, I want to create a connnection beetwen Bigquery and Dataprep but when I try to connect my project I got this error Loading tables has failed. Table list fetched from the data source expired.
 
How Do I Refund a Customer Directly to Their Credit Card?
Hi, I use books to auto-charge my customers credit card. But when I create a credit note there doesn't seem to be a way to directly refund the amount back to their credit card. Is the only way to refund a credit note by doing it "offline" - or manually-
 
Zoho Flow Needs to Embrace AI Agent Protocols to Stay Competitive
Zoho Flow has long been a reliable platform for automating workflows and integrating various applications. However, in the rapidly evolving landscape of AI-driven automation, it risks falling behind competitors like n8n, which are pioneering advancements
 
Important Features Missing
Hey all I love linkthread, but i am missing some important features. I want to be able to include my Google Tag Manager. I have all the important stuff in my GTM Container: Facebook Pixel, LinkIn Pixel, Zoho Pagesense and so on. So i am able to do retargeting
 
Zoho SignForms: Prefill parameters with spaces render as “+” in the document (even when using %20)
Hello Zoho Sign team, we are using SignForms with prefill parameters passed via URL. Spaces in parameter values are being rendered as “+” in the finalized document—even when we URL-encode spaces as %20. This is critical for us because we prefill addresses
 
Currency selector (based on variable) usage in comparsion
Hi, I've developed a currency selector based on the following topic, and it's working well in pivot tables and charts: https://help.zoho.com/portal/en/community/topic/how-can-i-allow-my-users-to-choose-a-currency-for-the-dashboard I also have a comparison
 
Customize Column in Projects - Default View for Template?
Is there a way to have the columns you'd like to see added to a template? I want my customized columns to show up every single time I create a project from that template. It appears I can customize them in the template but when I create the project they do not transfer over.  Template: See below how the columns in order are : Task, Owner, Status, Assigned, Website URL, Blog H1..etc. When I create a project from that same template it comes out as: Task, Owner, Status, Tags, Start Date, End Date, etc
 
Ask the Experts 24: Analytics, data administration, and mobile experience with Zoho Desk
Hello Everyone! Welcome back to the Ask the Experts(ATE) series! We were so focused on our Autumn 2025 release that we didn't host an ATE session last month. In this month's ATE, we'd like to expand our areas for discussion: we'd like to listen to your
 
Multi-Page Forms in Zoho Creator!
Let’s make long applications easier to handle by dividing them into pages, adding a progress bar, and guiding users step by step through complex data entry. This would be a total game-changer for the user experience and could significantly boost completion
 
Email login error
Login successfully but email page error
 
Shared Mailboxes Disappeared
Zoho Mail users in our company haven't been able to see their Shared Mailboxes for the past few hours. I've checked with App and Web Access, but they can't access them. When I send emails to their addresses, I get no error messages. They're still visible
 
Remote Server is misconfigured
Dear Team, I am unable to use email id as remote server is misconfigured. It would be really great if you could help on this and get this resolved. Thanks & Regard Rohit Gupta
 
why cant i access my email account. it keeps asking me for reverifiying my account by entering my password.
I cant access my account. it keeps asking me for reverifcaton by entering my password. once its entered it asks for it over and over.
 
Free webinar alert on October 16 - Less Complexity, More Security: Workplace + Directory
Hello Zoho Workplace Community! Security and productivity shouldn't be at odds—and with Zoho, they're not. Discover how Zoho Workplace + Directory delivers seamless collaboration with enterprise-grade security, all in one integrated ecosystem. Join our
 
Email Recall Feature In Zoho Mail Which Should Also Work For Outside Organisation Members
Add a feature to recall or undo sending an email within a configurable short time window (e.g., 30 seconds to 2 minutes) after hitting send, similar to Gmail’s undo send. Currently the sent email can not be recall If the recipient is not from within your
 
Workdrive and ChatGPT Team Synced Connectors
Hi, we want to be able to integrate Zoho Workdrive with OpenAI’s ChatGPT Team plan. Google Drive and OneDrive both offer this, zoho please catch up asap. We dont want to have to put our company files in google drive, we want to allow chatgpt Team edition
 
Alias Name (on items) use case in Zoho inventory
Hey, Hope everyone is well. Wondering if anyone can shed some light on the use case of Alias Names on Products in Zoho Inventory? Cheers, Chris
 
Updating an Invoice Line Item's Discount Account via API Call / Deluge Custom Function
I need help updating an invoice line item's discount account via API. Below is a screenshot of the line item field I am referring to. Now the field to the left of the highlighted field (discount account) is the sales income account. I am able to modify
 
Send e-mail with attachments
Dear Zoho, How is that possible in Zoho Flow to send an e-mail with attachment?  Just a simple example: Zoho Flow checks my Zoho mails and if the conditions starts the trigger then I would like to send an email with the original email's attachment. Any idea? BR, Adam
 
How to I get checkboxes on a subform to update via deluge
Hello, would someone be able to tell me what I'm doing wrong here? I am trying to take the contents of a Deals subform and add them to an invoice then update the checkbox on each row so that 'add to invoice' is unticked and 'invoiced' is ticked. The output
 
Your bot just got smarter: AI-Powered routing that reads between the lines
What if your bot could tell the difference? Between a visitor who just needs a quick answer, someone actively comparing options, and a frustrated customer one click away from leaving? Most bots can't. They deliver the same response to everyone, missing
 
Urgent Security Feature Request – Add MFA to Zoho Projects Client Portal  Hello Zoho Projects Team,
Hello Zoho Projects Team, We hope you are doing well. We would like to submit an urgent security enhancement request regarding the Zoho Projects Client Portal. At this time, as far as we are aware, there is no Multi-Factor Authentication (MFA) available
 
Unified customer portal login
As I'm a Zoho One subscriber I can provide my customers with portal access to many of the Zoho apps. However, the customer must have a separate login for each app, which may be difficult for them to manage and frustrating as all they understand is that
 
Zoho Projects - Task Owner filter at Project level
Hi Projects Team, The feature requests I would like to raise is the ability to create a custom view at the project level for projects with tasks owned by a user or users. For example "Ashley's Projects" custom view might contain a list of project in which
 
Cadences
I have just started using Cadences for follow-up up email pipeline. Is it just me or do you find the functionality very basic? For example, it will tell me (if I go looking for it) if someone has replied to a follow-up and been unenrolled; but it won't
 
Zoho Books-Accounting on the Go Series!
Dear users, Continuing in the spirit of our 'Function Fridays' series, where we've been sharing custom function scripts to automate your back office operations, we're thrilled to introduce our latest initiative – the 'Zoho Books-Accounting on the Go Series'.
 
Custom Fonts in Zoho CRM Template Builder
Hi, I am currently creating a new template for our quotes using the Zoho CRM template builder. However, I noticed that there is no option to add custom fonts to the template builder. It would greatly enhance the flexibility and branding capabilities if
 
Would be really awesome to have Created Time and Modified Time showing for custom functions list
It would be SO HELPFUL to be able to sort custom functions by created time/ modified time. Also seeing a created by/ modified by with the little profile picture would be supremely helpful as well. Just really hard sometimes to find a function you were
 
What's New in Zoho Analytics - October 2025
Hello Users! We're are back with a fresh set of updates and enhancements to make data analysis faster and more insightful. Take a quick look at what’s new and see how these updates can power up your reports and dashboards. Explore What's New! Extreme
 
Ticket Export Does Not Include Ticket Threads
Dear Zoho Desk Support Team, I hope you’re doing well. I would like to report an issue regarding the ticket export functionality in Zoho Desk. Currently, when exporting tickets, the ticket threads or conversation history are not included — only the ticket
 
Next Page