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.
12. Enter a Name and Description for the custom function.
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 Edit Arguments and include the argument mapping as below:
14.1 In the Name field, type ticketId and from the Value drop-down list, select Ticket Id under the Tickets Section.
15. Click Save to save the custom function.
16. 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
What's New in Zoho Analytics - December 2024
Hello Users! We’re excited to bring you a roundup of the latest features and improvements in Zoho Analytics. These updates are designed to elevate your data analytics experience, making it more powerful, interactive, and seamless. Let’s dive in! Expanded
trying to access CRM Variables with JS SDK
Hello i built a widget with Sigma, i create CRM VARIABLES in custom properties. I try to access them in function : ZOHO.embeddedApp.on("PageLoad",function(data) with : ZOHO.CRM.CONFIG.getVariable("mycrmvariable").then(function(data){ console.log("mycrmvariable
Writing on sketch cards is bugged when zoomed in
When zoomed in, it writes a noticeable distance above or to the side of where you're actually trying to write. The further you're zoomed in, the more noticeable it is. Zooming is also entirely absent on the desktop version.
Private Project
Hi, I would like to know if a user can create a Private project that only he's able to see it. Not even the ADMIN user. Thanks
Accordion in tabs to create FAQs, etc.
Accordion elements do not seem to be able to be placed in the tabs. It would be useful to be able to do this. Thank you.
Which are the IP addresses to use for 'split delivery' with Office 365? (Zoho mail inbound gateway)
Hi, I'm trying to set up 'split delivery' (email routing) with Office 365. I'm following the instructions to set up Office 365 as the primary server (https://www.zoho.com/mail/help/adminconsole/coexistence-with-office365.html) One of the prerequisites
Zoho Projects 2024 Recap
Dear Users, As we conclude another remarkable year, it's the time to reflect on the journey we've just completed. The year 2024, defined by significant milestones, challenges, achievements, and important lessons. Every moment has contributed to the story
Custom Fields at Line Level
Hi, is there an ability to add custom fields at line level? I need to track the start and the end date for each product within an invoice and I can't seem to find an option to do this.
Zoho API Error Code 7019 when adding job.
Hello, I am following the documentation found here. https://www.zoho.com/people/api/timesheet/adding-jobs.html Regardless of how I try and post the data (including just using the example requests), I receive back the response {'response': {'message':
How to see changes with ZOHO.CRM.API.updateRecord(config) without reload page
hello got a widget in account, trigger with a button i copy data to account when click on a button, in my popup All is working well. But i need to reload the page to see the update. How can i see the changes without reloading page, only when close the
How to call a Creator function which is in a different Creator application?
How to call a Creator function which is in a different Creator application?
Unable to send message; Reason: 554 5.1.8 Email Outgoing Blocked
My account is mino@flawless-frames.com, or flawlessframesstudio@gmail.com Could you please unblock my account, I've got restricted from sending more emails
Stock Count
The stock count is a nice new feature, but we cannot figure out how to: 1. Use it without assigning to a person, we have a team or one of multiple do stock counts as do most any company. 2. Add any extra fields to what the "counter" sees. The most important
Move a Contact from Current Account to a NEW Account
I do not believe the functionality to Move a Contact from a Current Account to a New Account is not available. Please someone tell me I am missing something! I have been through designing, developing, using and selling CRM systems for over 25 years and had this functionality20+ years ago in other CRMs. In the real world people move from one organisation to another. In the sales, finance and technical world it is nice to see the communication history with that person in their old account and also
Force Specific Layout for CRM Contacts Portal
Hello: We're in trial on ZOHO One and looking at the CRM Portal (just for the contacts module). We have a client layout set up for Contacts that is working well for our internally, but for the portal we don't want to require (make mandatory) some of the
Automatic Removal of Departments and Groups for Inactive Employees in Zoho One
Hi Zoho One Team, We hope you're doing well. Currently, when an employee is marked as inactive in Zoho One, they remain listed as a member of their department and associated groups. This creates a challenge in maintaining accurate records and ensuring
Change eMail Template for Event-Invitations
Hello ZOHO-CRM Team How I can change the eMail Template for Event-Invitations? I work with the German Version of the Free Version. I know how I can modify eMail alerts or Signature Templates, but where I can other eMails modify you send out? Thank you for your answer. Regards, Juerg
Zoho Social integration with Zoho Flow
Is there any plans for Zoho Social integration with Zoho Flow?
Zoho CRM Widget and translations
Hi everyone! We're building a Widget with zoho-extension-toolkit, how is localization supposed to work? "zet init" created a translations/en.json file, but what should go inside it and how is it supposed to be accessed from the Widget/javascript? Thanks
Bienvenue à Zoho FSM : l'optimisation des opérations locales qui offre une expérience de service impeccable
Nous sommes ravis de vous présenter Zoho FSM, la plateforme de gestion des services terrain de bout en bout. Les solutions de gestion des services locaux s'adressent aux organisations qui effectuent des activités d'installation, de réparation et de maintenance
Adding tag to specific record as an acion in a workflow
Hi! I've created the following workflow in the module 'Leads'. When a record meets the criteria, there should be a tag added to the specific record in the module 'Contacts'. In the module 'Leads', there is a look-up field named 'Kandidaat' which is connected
Trying to catch error with ZOHO.CRM.HTTP.get (Response Code)
Hello, I'm trying to get response header from ZOHO.CRM.HTTP.get, in order to catch error like 404 or something else but it seems that ZOHO.CRM.HTTP.get() method only returns the body of the response, and I see no way to access the headers returned. Is
FSM - How to ADD PHOTOS to Estimates & Invoices
How can you add photos to estimates and invoices that are being emailed to the client so the can see what you are estimating and your completed work?
Free developer edition of Zoho CRM
A question for Zoho and other developers: How can you set up a demonstration version of a Zoho CRM implementation to show employers/clients what can be achieved? Do you pay for Zoho CRM Enterprise/Zoho One for this purpose? Does Zoho offer a free version
Can I add Conditional merge tags on my Templates?
Hi I was wondering if I can use Conditional Mail Merge tags inside my Email templates/Quotes etc within the CRM? In spanish and in our business we use gender and academic degree salutations , ie: Dr., Dra., Sr., Srta., so the beginning of an email / letter
Where are scheduled emails stored?
After you schedule an email to go out through the CRM, how do you go about changing that scheduled email? Or even where can I see the list of emails scheduled to go out? They are not listed in my Zoho Mail account in Outbox which has been the only answer
CRM Home Page Dashboard, how can i add zoho desk cases?
How can i see which tickets are in my group as a dashboard component on the home tab in zoho crm? I don't see any way of adding this.
Custom Module missing SDK function fetchRelatedRecords(...) in a Client Script
Good day, We have added a new module with a Multi-Lookup relation to Contacts. When we tried to use the fetchRelatedRecords(id, related_list_api_name) function to get Related Records it is missing for our new custom module. https://js.zohocdn.com/crm/5124797/documentation/DotSDK/Modules.html
Assistance with Setting Default Values for Zoho Chat Custom Fields
I am currently using the Zoho Chat JavaScript API to successfully add custom fields to the chat interface. While the implementation of these fields has been smooth, I am now looking to set default values for these custom fields. However, I couldn't find
Subform Client Script
Good day, I have a subform where users can subscribe to various magazines. I would like to prevent the user from selecting the same magazine twice when adding a new row. Is there a way to prevent the user from doing this? (Can it be done via a client
Serious question: Are there actually "solo-preneurs"/small business owners who made Zoho-one work well for them?
L.S. After already many years of continued struggle with Zoho-One, I am seriously wondering if there are actually solo-preneurs (one person small business owners - without a large, dedicated IT dept.) who got it (Zoho-One) to work well for their businesses.
Calendar Bookings in Recruit
Hi there, We have recently started using Zoho recruit and although it has some great functionality there are a few gaps that are causing real headaches. One of those being how interviews are scheduled. The majority of our hiring managers are field based
Getting Error : Developer Tool Detected
Hi Team, Getting the error during open the portal, error attached on the same ticket. Please check and help us to resolve the same.
Send Zoho Creator Template by Email or sendemail
Hello All Question:- How we can send the Zoho creator email template using the send email by the workflow or using the Function? by the Workflow sendmail [ from: zoho.adminuserid to: "zohodeveloper@yopmail.com" subject: "Test Template" message: "Test
Upgraded to Zoho One but Zoho Meeting still says Free Plan
I signed-up for the Zoho One plan. When exploring the applications included, I came across a problem with Zoho Meeting. It says it's the free plan. I emailed support but they sent me a link that doesn't work and, when I found the article on my own, it
新年のご挨拶、直近のイベントスケジュール
🎍🐍謹賀新年🎍🐍 ユーザーの皆さま、明けましておめでとうございます! コミュニティチームの中野です。 本年もよろしくお願い致します。 昨年のZoho Japanコミュニティでは、東京・大阪・名古屋・福岡 4都市でのユーザー交流会開催や、自社最大イベント「Zoholics Japan 2024」でZoho Championの皆さまとのパネルディスカッション、10月の東京ユーザー交流会では本社CRMプロダクトマネージャーを招きロードマップ解説セッションの実施、さらにZohoアンバサダープログラムのローンチ(近日公開予定)など、新たな取り組みに挑戦しました。
Request to Customize Module Bar Placement in New Zoho CRM UI
Hello Support and Zoho Community, I've been exploring the new UI of Zoho CRM "For Everyone" and have noticed a potential concern for my users. We are accustomed to having the module names displayed across the top, which made navigation more intuitive
Client script: Can not choose a date field for an onChange field event
Hi Zoho Team Why can't I choose one of my date fields to trigger an onChange event? Is this a client script limitation, or something wrong with my instance? If it is a limitation, is this mentioned in the documentation anywhere? Thanks. Marcus
Upgrade User
Hi Sir/Madame, I have 7 users in my organisation but I need upgrade more space only 2 users. Is it possibe? Thanks
Dashboard Auto-refresh
Why is there no Auto-refresh on the Dashboard? People have been asking for the last 6 years for this function from what I can see in my reasearch, it seems like a very simple intergration for Zoho to achieve. on Sept. 2, 2014, this was added: Support
Next Page