Automation#19:Auto-Close Tickets Upon Task Completion

Automation#19:Auto-Close Tickets Upon Task Completion



Hello Everyone!
We’re excited to bring you another custom function this week. In this edition, we’ll show you how to automatically close tickets when all associated tasks are marked as completed.

Let’s see how ZylkaPure, a leading water filter company, benefits from this functionality. ZylkaPure specializes in installing and servicing water filters for homes and offices. When a customer books a service, a ticket is created, and the specific tasks required for the service are added to it. As service engineers carry out the necessary work, they update the status of each task. Once all tasks are marked as completed, the system automatically closes the ticket, ensuring a streamlined process and reducing manual follow-ups.

Implementing this custom function in your portal can automate ticket closure and simplify your workflow. Follow these steps to set up the automation in your system.

Prerequisites
1. Create a connection
      1.1 Go to Setup and choose Connections under Developer Space.
      1.2 Click Create Connection.
      1.3 Select Zoho Desk under Default Services.
      1.4 Give the connection name as closeticketbytask.
      1.5 Under Scope, choose the below scope values:
            Desk.activities.READ
            Desk.activities.tasks.READ
            Desk.tickets.UPDATE
      1.6 Click Create and Connect.
      1.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 Tasks 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 and select the field Status to execute this rule every time the task status is updated.  
8. Click Next.
 
In the Criteria section
9. Specify the criteria as Status is Completed, AND Completed Time is not empty.

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 taskId and from the Value drop-down list, select Task Id under Task Section.
 12.2 In the Argument Name field, type associatedTicketId, and from the Value drop-down list, select Ticket Id under Tasks Section.                                                    
13. In the script window, insert the Custom Function given below:
  1. // ----<<<< User Inputs >>>>----
  2. // --- Replace ".com" with appropriate domain based on your DC
  3. deskURL = "https://desk.zoho.in";
  4. // --- Enter a status name to indicate the 'completed' status of a task ---
  5. taskCompletedStatusName = "Completed";
  6. taskCanceledStatusName = "Canceled";
  7. // --- Enter the name of the custom status to be updated in the Ticket after the completion of all the associated Tasks ---
  8. statusNameToUpdateInTicket = "Closed";
  9. // ----<<<< Initial Configs >>>>----
  10. logs = Map();
  11. logs.insert("taskId":taskId,"associatedTicketId":associatedTicketId);
  12. tasksListToProcess = List();
  13. shallUpdateTicketStatus = false;
  14. //---------------------------
  15. try
  16. {
  17.  // ---- Check to find the Task and Ticket association ----
  18. isTicketAssociatedWithThisTask = !isNull(associatedTicketId) && !isEmpty(associatedTicketId);
  19.  if(isTicketAssociatedWithThisTask)
  20.  {
  21.   // --- Get the list of all tasks associated with this ticket ---
  22.   getTasksListApiParam = Map();
  23. getTasksListApiParam.insert("from":0,"limit":100,"isSpam":false,"sortBy":"createdTime");
  24.   logs.insert("getTasksListApiParam":getTasksListApiParam);
  25.   getTasksListApiResponse = invokeurl
  26.   [
  27.   url :deskURL + "/api/v1/tickets/" + associatedTicketId + "/tasks"
  28.   type :GET
  29.   parameters:getTasksListApiParam
  30.   headers:{"Content-Type":"application/json"}
  31.   connection:"closeticketbytask"
  32.   ];
  33.   logs.insert("getTasksListApiResponse":getTasksListApiResponse);
  34.   isValidToProcess_getTasksListApiResponse = !isNull(getTasksListApiResponse) && !isEmpty(getTasksListApiResponse) && getTasksListApiResponse.size() > 0 && getTasksListApiResponse.containsKey("data");
  35. logs.insert("isValidToProcess_getTasksListApiResponse":isValidToProcess_getTasksListApiResponse);
  36.   if(isValidToProcess_getTasksListApiResponse)
  37.   {
  38.   tasksListToProcess = getTasksListApiResponse.get("data");
  39.   }
  40.  }
  41. logs.insert("isTicketAssociatedWithThisTask":isTicketAssociatedWithThisTask,"tasksListToProcess_size":tasksListToProcess.size());
  42.  if(tasksListToProcess.size() > 0)
  43.  {
  44.   // --- Check to ensure that all tasks are completed or not ---
  45.   for each  currentTaskDetail in tasksListToProcess
  46.   {
  47.   currentTaskStatusName = currentTaskDetail.get("status");
  48.   currentTaskCompletedTime = currentTaskDetail.get("completedTime");
  49. if((currentTaskStatusName == taskCompletedStatusName || currentTaskStatusName == taskCanceledStatusName) && !isNull(currentTaskCompletedTime))
  50.   {
  51.   shallUpdateTicketStatus = true;
  52.   }
  53.   else
  54.   {
  55.   logs.insert("notCompletedTaskId":currentTaskDetail.get("id"));
  56.   shallUpdateTicketStatus = false;
  57.   break;
  58.   }
  59.   }
  60.  }
  61.  logs.insert("shallUpdateTicketStatus":shallUpdateTicketStatus);
  62.  if(shallUpdateTicketStatus)
  63.  {
  64.   // --- Update status field to the associated ticket ---
  65.   ticketUpdateApiParam = Map();
  66.   ticketUpdateApiParam.insert("status":statusNameToUpdateInTicket);
  67.   logs.insert("ticketUpdateApiParam":ticketUpdateApiParam);
  68.   ticketUpdateApiResponse = invokeurl
  69.   [
  70.   url :deskURL + "/api/v1/tickets/" + associatedTicketId
  71.   type :PATCH
  72.   parameters:ticketUpdateApiParam.toString()
  73.   headers:{"Content-Type":"application/json"}
  74.   connection:"closeticketbytask"
  75.   ];
  76.   logs.insert("ticketUpdateApiResponse":ticketUpdateApiResponse);
  77.  }
  78. }
  79. catch (errorInfo)
  80. {
  81.  logs.insert("errorInfo":errorInfo);
  82. }
  83. info "logs: \n" + logs;
  84. if(logs.containKey("errorInfo"))
  85. {
  86.  ths "Error happen in the CF execution";
  87. }
NOTE
a. In Line 3, Replace ".com" with appropriate domain extension based on your Data Center.

In case you have a custom name for the task status or ticket status, you can make suitable changes in the following lines:
b. Line 7 ==> Enter a status name to indicate the 'completed' status of a task
c. Line 9 ==> Enter the name of the status you want to be updated in the Ticket after the completion of all the associated Tasks
14. Click Save to save the custom function.
15. Click Save again to save the workflow.

We trust this solution will streamline your workflow! Stay tuned for more fresh insights and tips to help you make the most of Zoho Desk and optimize your experience.



    • Sticky Posts

    • Register for Zoho Desk Beta Community

      With the start of the year, we have decided to take a small step in making the life of our customers a little easier. We now have easy access to all our upcoming features and a faster way to request for beta access. We open betas for some of our features
    • Share your Zoho Desk story with us!

      Tell us how you use Zoho Desk for your business and inspire others with your story. Be it a simple workflow rule that helps you navigate complex processes or a macro that saves your team a lot of time; share it here and help the community learn and grow with shared knowledge. 
    • Tip #1: Learn to pick the right channels

      Mail, live chat, telephony, social media, web forms—there are so many support channels out there. Trying to pick the right channels to offer your customers can get pretty confusing. Emails are most useful when the customer wants to put things on record. However, escalated or complicated issues should not be resolved over email because it's slow and impersonal.  When you need immediate responses, live chat is more suitable. It's also quick and convenient, so it's the go-to channel for small issues. 
    • Welcome to Zoho Desk Community - Say hello here!

      Hello everyone! Though we have been here for a while, it’s time to formally establish the Zoho Desk Community; we’re really happy to have you all here! This can be the place where you take a moment to introduce yourself to the rest of the community. We’d love to hear all about you, what you do, what company or industry you work for, how you use Zoho Desk and anything else that you will like to share! Here’s a little about me. I am Chinmayee. I have been associated with Zoho since 2014. I joined here
    • Webinar 1: Blueprint for Customer Service

      With the launch of a host of new features in Zoho Desk, we thought it’ll be great to have a few webinars to help our customers make the most of them. We’re starting off with our most talked about feature, Blueprint in Zoho Desk. You can register for the Blueprint webinar here: The webinar will be delivered by our in-house product experts. This is a good opportunity to ask questions to our experts and understand how Blueprint can help you automate your service processes. We look forward to seeing

    Nederlandse Hulpbronnen


      • Recent Topics

      • Download a file from within a zoho creator widget

        I have a widget running in Zoho Creator , it displays uploaded documents in a table file, and I have added a download link in the view. ( The widget is created with html, css and javascript). I do not succeed in getting the download working. Do I have
      • Zoho / Outlook Calendar sync

        The current Marketplace -> Microsoft -> Meetings integration needs 2 changes. 1. The current language for the Two-Way sync option should be changed. It currently states, "Sync both your Zoho CRM Calendar and Office 365 Calendar meetings with each other."
      • Email content just contain 'OK' ,not what we expect

        create campaign API URL: https://campaigns.zoho.com/api/v1.1/createCampaign req params: {'campaignname': 'General_Outreach_d0cfc415-43aa-4b96-bb09-558e76a3dda3_50_20251117_214806_660', 'from_email': 'admin@allinmedia.ai', 'subject': 'ALL IN MEDIA', 'list_details':
      • Reopen ticket

        Hello! Can I reopen a ticket just using the API ticket/sendReply ? What's the rules to do it? I'm trying but it doesn't reopen the ticket, it just send the reply
      • Allow Admins to Transfer Ownership of Their Own Files & Folders

        Hi Zoho WorkDrive Team, Hope you are doing well. We would like to request an important enhancement to the ownership-transfer functionality in Zoho WorkDrive, specifically regarding administrator capabilities. As administrators, we have the ability to
      • Tip#46: Capture accurate log hours

        Hello everyone, Use the newly introduced timer settings that will streamline the usage of timers and help admins or workspace owners to manage the time entries of the workspace users better. Check out the below mentioned timer settings added to the Timesheet
      • Moving to app-specific authentication for Google integrations

        Hello everyone, We’re making an important change to how Google integrations work in our platform. Until now, we used a common Google project across Zoho to enable integrations like Google Drive, Calendar, and more. Going forward, we’ll be moving to an
      • Lost the ability to sort by ticket owner

        Hi all, in the last week or so, we have lost the ability to sort tickets by Ticket Owner. Unlike the other columns which we can hover over and click on to sort, Ticket Owner is no longer clickable. Is it just us, or are other customers seeing this too?
      • How Can i put a form in Zobot

        Hi,how can i integrate a form which has a multiple options to choose from.the form should be opened or displayed by zobot after it meets a requirement in the conversation. Thanks in advance !
      • Playback and Management Enhancements for Zoho Quartz Recordings

        Hello Zoho Team, We hope you're all doing well. We would like to submit a feature request related to Zoho Quartz, the tool used to record and share browser sessions with Zoho Support. 🎯 Current Functionality As of now, Zoho Quartz allows users to record
      • Zoho Analytics - Feature Request For Time Based Data Source Fetch

        Hi Analytics Team, I have a client using Zoho CRM and they want a weekly report at 4:30pm every Friday, emailed to the sales team showing a pie chart of Closed Won Deals for that week. This is easy to achieve in Analytics but not so easy to ensure the
      • Which user's capacity is used for Shared Mailbox storage?

        We use shared mailboxes at our company, and their size is increasing daily. Which user(s)'s total mailbox limit is being used up by this space?
      • Inserting the current date / time

        I'd like to use Zoho Notebook as a log - so it would be great to be able to insert the current date and time at the beginning (or end) of each my log/journal entries - or wherever I want. Something simple, like pressing a button/icon to insert it wherever my text cursor is. It could be formatted like "Mon Dec 11, 2017 - 11:43p". 
      • Campaign editor overrides href value

        I've been trying to insert a deep link in an email campaign so recipients can directly open a native app on their device. My deep link looks something like "myapp://". The options to insert links in the campaign editor are limited to strict urls, emails,
      • Bug Report and Suggestions for Improvement in Zoho Applications

        Hi Zoho Team, I’d like to report a few bugs and improvement suggestions I’ve noticed while using Zoho products: Zoho Cliq Video Call: The camera sometimes turns off automatically during video calls. This seems to be a bug — please check and fix it. Zoho
      • Canvas Flex Box containers should not require a width/height.

        Flexbox containers are often used as organizational concepts, to ease re-flow on mobile etc. - I cannot use % for flexbox W or H - I cannot omit W or H This means that the content cannot dictate, and a Flexbox container cannot be used merely as an organizational
      • Zoho Desk Android app update: Filter enhancement, Save Filters

        Hello everyone! We have now enhanced the filter section on the ticket listing screen of Zoho Desk Android app as it is on the web(desk.zoho.com). Also, we have introduced an option to save filters for tickets on the mobile app. You can easily apply, rename,
      • Very long loading times | bad performance [ZOHO DC: EU]

        Hello there, we have recently noticed that the loading times have become extremely long when retrieving tickets and ticket details. For example, I open any ticket and get the following view. The subject and standard information (ticket owner, status etc.)
      • Zia Profile Summary now supports six languages and responds faster

        After numerous customer requests, we’ve expanded Zia Profile Summary to do more than just summarize resumes quickly. It can now summarize them in six different languages and deliver results even faster. What’s New 1. Extended language support Zia can
      • Introducing Zoho Show Android 3.0

        Good ideas need the right space to grow. They deserve tools that move as fast as your thoughts and make creating feel effortless. And that is why we are bringing you Zoho Show Android 3.0! From a brand-new look and smoother navigation to improved collaboration
      • Properly Capture Dropdowns & Hover Elements When Recording a Window/Tab

        Hi Zoho WorkDrive Team, Hope you are doing great. We encountered a limitation when recording a selected window or browser tab: Certain UI elements, such as dropdown lists, hover menus, and overlays, are not captured unless we record the entire screen.
      • Peppol integration zoho invoicefu

        Hi, Belgium will require Peppol invoicing as of 2026. I found that this is being prepared for Zoho books, to be released in Sep 2025. Will Zoho Invoice get this functionality too? I like the Invoice app for my part-time side business as bike mechanic
      • Allow Recording Only a Selected Portion of the Screen

        Hi Zoho WorkDrive Team, Hope you are doing well. We would like to request a more flexible recording option in Zoho WorkDrive. At the moment, we can record either the entire screen or a specific window/tab — but not a custom selected portion of the screen
      • Restricting Calendar View to Working Hours

        Hi: I'm trying to implement a calendar which displays all of my customer appointments.  Currently, the calendar shows all 24 hours of the day.  Is there a way to restrict the hours to simply the times my business is open? Thanks!
      • Add Camera Background Blur During Recording

        Hi Zoho WorkDrive Team, Hope everything is well. We would like to request an enhancement to the video recording feature in Zoho WorkDrive. Currently, the camera preview displayed during a recording does not support background blur. This is an essential
      • Amazon FBA integration - Handle invoice reconciliation under different GSTINs,

        Dear Zoho Community, Thank you for the clarification regarding the Amazon FBA integration, default warehouse, and GSTIN mapping in Zoho Inventory. I understand that Zoho currently supports only one warehouse for Amazon FBA, and that all FBA orders are
      • Whatsapp Integration questions

        Hi Questions: 1. Whatsapp messages are not reaching our CRM, is there a delay? 2. Is there any way to create a whatsapp catalog on a number that is integrated with ZOHO? 3. How do I configure my profile picture on a number that is integrated with ZO
      • Allow Font Size 11 in Editors...

        That is basic functionality...
      • link mail.zoho.com/UnblockMe to unblock

        Could you please unblock my account heloisa.bomfim@expansaodenegocios.com
      • Unblocked me

        Please can you help unblocked my account thanks materiauxjcbrunet2000@zohomail.com
      • Integrating External Portal Tickets Into Zoho Desk

        A B2B travel company has a customer portal where clients can raise and submit tickets related to their bookings. These tickets need to be handled and managed in the backend through Zoho Desk. Ticket updates and replies from Zoho Desk should also be visible
      • Send WhatsApp voice messages from Bigin

        Greetings, I hope all of you are doing well. We're happy to announce this enhancement we've made to Bigin. Bigin's WhatsApp integration now supports audio messages, so you can record and send voice messages. This makes it easier to handle customer questions
      • CUSTOM FUNCTION GIVE ERROR #EVAL!

        CUSTEM FUNCTION CREATE KYA ZOHOSHEET ME US FUNCTION KO USE KIYA LEKIN DATA TO SAHI HAI LAKIN DATA SHEET ME NAHI LAG LAHA HAI KRUPYA SOLVE KARE MY CODE IS float ADDTWO_TWO(float NO1, float NO2) { ADD = NO1 + NO2; return ADD; }
      • Samsung Keyboard Issues with Notebook

        Dear Users, We're sorry to inform you that some of our users are experiencing certain issues like scrolling, delay/lag, cursor placement especially within the text notes. This occurs mainly due to Samsung Keyboard compatibility with Android 13 and some
      • Zoho Books | Product updates | September 2025

        Hello users, We’ve rolled out new features and enhancements in Zoho Books. From PayNow payment method to applying journal credits to invoices and bills in other locations, explore the updates designed to enhance your bookkeeping experience. Integrate
      • Zoho Workdrive for Office, "vsto runtime not found"

        Hi all, I have been trying to get ZohoWorkdrive_MS-addin_1.4.exe installed, but I keep getting the error "VSTO Runtime Not Found!" - even though I have installed it ... Anyone else hear had problems with the MS addin?  FYI, I am using O365 on A Dell laptop running Win 10 Home - fully patched and up-to-date.  I have tried compatibility modes and running explicitly as Administrator - the usual steps. Any advice would be appreciated.
      • Can no longer export as pdf

        In NOTEBOOK I am no longer able to export notes to pdfs as I used to be able to. When I hit that command it asks where I want to send it, but no matter what I chose there is no pdf attachment that shows up in order to send. Nothing happens.
      • How can I prevent the Zoho Vault extension from automatically logging me out?

        Hi, I want the Zoho Vault Chrome extension to never log out. How can I do this? It only allows me to log out for 1 week, and the same applies to the Android app.
      • Zoho CRM App - Links

        Hi  Is there are plan for making Custom Links available in the Zoho CRM Android App? I can't see them being added? Thanks Gene
      • Templates

        Trying to sort out / get rid of unwanted invoice templates, the error msgs are not at all helpful. Surely it's easy to amend the error msg by including a list of the names of the customers / vendors that use it, denying deletion or making it inactive
      • Next Page