Hello Everyone,
This week's edition introduces a custom function designed to automate Guided Conversations in Zoho Desk, based on your business hours. With this feature, you can align the bot's behavior with your business schedule, ensuring a smooth and professional customer experience.
Self-service platforms are now a cornerstone of effective customer service, improving productivity for both customers and support agents. With the evolving nature of customer support, self-
service has become indispensable. It saves time and provides quick access to solutions, empowering customers to address their concerns efficiently.
Zoho Desk's Guided Conversations serves as a robust self-service tool, offering Tier-1 solutions to customers through an intuitive interface. For more complex or escalated queries, the bot seamlessly connects customers to a live agent, ensuring both self-service and human assistance for effective issue resolution. However, businesses often have non-working hours, such as weekends or holidays, when agents are unavailable. In such cases, configuring your Guided Conversations based on your business hours is essential. During non-working hours, the bot can:
- Notify customers that your business is currently closed, along with your operating hours.
- Provide an option for customers to submit a ticket, ensuring their query is addressed promptly during working hours.Configure your Guided Conversations today and streamline your customer support process!
How to incorporate this custom function within your GC flow?
1. Go to Setup (S) >> Self-Service >> Guided Conversation.
2. Choose the Department and click on Create Flow.
(If you would like to add this to your existing flow, click on the ellipsis icon under Published Flows and click on the Edit button.)
3. Select the channels, give a Name and Description, and click Next.
4. Click on the + icon, add the Webhook block, under Perform Actions.
5. Enter the Block name as Business Hours, Choose Get under Method.
Note: In the Business Hours URL, replace .com with .in/.eu/.ca/.sa based on your DC
How to fetch the Business Hour Id?
6.1 To fetch the Business Id, Go to Setup (S) >> Organization >> Business Hours.
6.2 Click on the Business Hours configured within your Zoho Desk Account. Go to the URL of the specific Business Hours, and you can fetch the business Id from the URL.

7. After entering the URL, do not make changes to the Query Params and Headers.
8. Under Connections, click on Add.
To Create a connection
8.1 Click Create Connection.
8.2 Select Zoho Desk under Default Services.
8.3 Give a connection name (let's say configureBusiness Hours).
8.4 Disable the toggle for User Credentials of Login User.
8.5 Under Scope, choose the below scope values:
Desk.settings.READ
8.6 Click Create and Connect.
8.7 Click Connect and click Accept.
Connection is created successfully.
9. After creating the connection, click on Refresh and then click on the drop down arrow and select the connection (configureBusiness Hours) created.
10. Click on the gear icon in the Formatter option and paste the below code in the Deluge window:
- dayMAp = {"SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"};
- businessTimes = response.get("businessTimes");
- timez = response.get("timeZone").get("id");
- response = Collection();
- createdTime = zoho.currenttime.toString("yyyy-MM-dd HH:mm:ss",timez).toDateTime();
- createdDay = createdTime.getDay();
- //get this from above created time
- createdHour = createdTime.getHour();
- //get this from above created time
- createdMinute = createdTime.getMinutes();
- //get this from above created time
- createdWeekDay = createdTime.getDayOfWeek();
- //get this from above created time
- createdWeekDay = dayMAp.get(createdWeekDay - 1);
- for each businessTime in businessTimes
- {
if(businessTime.get("day") == createdWeekDay)
{
businessTimeStartHour = businessTime.get("startTime").getPrefix(":").toLong();
businessTimeEndHour = businessTime.get("endTime").getPrefix(":").toLong();
businessTimeStartMinute = businessTime.get("startTime").getSuffix(":").toLong();
businessTimeEndMinute = businessTime.get("endTime").getSuffix(":").toLong();
if((createdHour > businessTimeStartHour || createdHour == businessTimeStartHour && createdMinute >= businessTimeStartMinute) && (createdHour < businessTimeEndHour || createdHour == businessTimeEndHour && createdMinute <= businessTimeEndMinute))
{
response.insert({"status":"true"});
}
else
{
response.insert({"status":"false"});
}
}- }
- return response.get(0).get("status");
11. Click Save after pasting the code.
12. Click on the gear icon in the Response icon.
12.1 Click on the gear icon on the Status Code.
12.2 Give Status Code as 200, Flow Variables as status, Response Value as /.
12.3 Let the Type be single element and the Data Type be String. Click Save. Click Save for the Response List with the updated status.
13. Disable the toggle for the Multi Path.
14. Choose a Request timeout if required. This sets a response waiting time from the server.
15. Set the Error message if required to display in case waiting time exceeds the response time.
16. Click Save.
This is the configuration for setting the business hours through a custom function.
17. After the Webhook, click on the + icon and add the Fork block under the Perform Actions.
18. Give the Block Name as Check, Enter Path list : name it as Check.
Under Criteria 1, click on the drop-down arrow, and enter choose Status under Block variables, from the drop-down menu. Choose operation: contains and give the value : True.
19. Do not add an else path.
20. Click Save.
In the Fork block, under Check, you can add the Transfer to agent block from the Zoho Desk Blocks. Under Else, you can add a text icon/ info card stating you are out of business hours.
Note: This custom function does not include the Holiday Lists configured within Zoho Desk.
You can seamlessly integrate this Guided Conversation flow into your self-service platform to ensure you never miss a customer, even during non-working hours. Keep your customer support running smoothly!
See you next week!
Regards,
Lydia | Zoho Desk
Recent Topics
custom color palette for picklist in Sheet
Migrating over from Google Sheets and missing the ability to customize the individual item colors of my picklist/dropdown menus. Is this something that is possible? A search showed me creating a custom color palette in Analytics is possible but I am not
What's New - July 2025 | Zoho Backstage
Start smart, end strong. From knowing who’s coming to celebrating who showed up, July’s updates help you run events that feel organized from the first invite to the final thank you. Planning an event used to be like writing a choose-your-own-adventure
Image Upload Field API get encrypted ID and sequence number
Hello is there a way to extract the encrypted id and sequence number from image upload fields through the Zoho CRM API? I created a custom script with javascript within Zoho CRM, but I want to extract the encrypted id and sequence number for all my images
Attention: Changes to 10DLC TCR pricing and new authentication requirements
Hi everyone, Starting August 1, 2025, The Campaign Registry (TCR) is introducing new pricing changes and a mandatory brand verification process called Authentication+ 2.0, which will affect how you register and manage your 10DLC messaging services. These
Better Time Tracking
We need better time tracking customization for IT MSPs. We also need reporting that is built in, rather than having to try and fumble with creating custom reports. We also need to be able to mark whether a ticket has been billed or not, I don't think
Scheduled Tickets Need Updated
There is a very clunky manual way to create reoccurring scheduled tickets. This should be created to be easy for the administrator to create. We create several (10 to 12) reoccurring tickets per account for biweekly and monthly auditing purposes.. The
Team Feeds Improvements
Team Feeds needs to show a feed of every action within the department. Currently it seems that the feed will only show a ticket that I've personally commented on or interacted with/followed. A feed should be that, a feed. As a manager I would like to
Better Security, Better User Experience | Help Center Update | June'25
As part of our commitment to enhancing user experience and security, we are happy to announce updates to our authentication mechanism. This update introduces several key enhancements designed to improve the password recovery process and streamline the
Upload Logo to Account Page
It would be nice to set a logo for an Account
View Agent Collision on Ticket List Page
It would be nice from the ticket listing page (views) to see what agents are working on what tickets rather than having to click into each ticket throughout the day to see what agents are working on what tickets. This functionality would also be desired
Restrict user from viewing the detail standard view
Is there any way to restrict a user(it can be user-field-based) from viewing the detail standard view? Basically, I have created a canvas detailed view so that on some conditions I can hide some data from the users but the standard view client script
Upload Picture to Contact
It would be nice to upload a profile picture to a contact.
Allowing Pictures for Client Contacts
Do you have any plans to allow us to add pictures of our client contacts? There is a silhouette of a person there now, but no way that I can see where I can actually add a picture of the individual.
Agent name Alias
I am seeing that Full name of my staffs are written on every ticket response which is not good for some reasons. It is possible to user like this: Manny P. (First Name with Last Name's First Letter) or Manny (First Name) This is want we want to show
Unable to add attachments to tickets through Desk API
I able to use the Desk API to generate tickets. However when I try to use the tickets/{ticketId}/attachments endpoint, I always get an Unauthorized error. My app has Desk.Tickets.ALL included in its scope so this should not be an issue
What's wrong with this COQL?
What's wrong with this COQL? Code returns "invalid operator found". SELECT id, Name, Stage, Account, Created_Time, Tag FROM Production_Orders WHERE (Account = '4356038000072566002' AND Stage NOT LIKE '%customer%') ORDER BY Created_Time DESC LIMIT 200
[Feature Request] Add support for internationalized top-level domains mail hosting
This is an important request to add support for internationalized domains mail hosting to https://www.zoho.com/mail/ In this case, that is only limited to domain name/mail address however currently it's already possible for us send mails etc using below
Add Enable/Disable to Field Rules and other Rules
Hi, Sometimes I have rules setup for fields, and until I want to enable them for use, I can set the fields to Hidden but rules still show them, today you have to delete rules and then recreate them again, would be nice to have a toggle for Enabled/Disabled
Syncing stuck for days
Hello when I made an account a few days ago and synced all my notes to it, it is still syncing. My app is only 400mb so I do not know why it is taking so long. Please help
Workflow runs on every edit despite not ticking the field repeat this workflow whenever a parent is edited.....
Hi, It is my understanding that this workflow should only trigger once. Why is this triggering on every edit of the field? Based on another support query - directly from Zoho, If i tick the box 'repeat this workflow whenever a parent is edited' it should
How do you add or update tags on Zoho CRM records via n8n? (Workarounds or best practices?)
Hi all, I’m running into some limitations with the Zoho CRM node in n8n and was wondering how others have handled this: From what I see, the standard Zoho CRM node in n8n doesn’t allow you to add or update tags when creating or updating contacts/leads.
API PARAMETER FOR TICKET CLOSED TIME
Hi, Is there a parameter for filtering tickets by closed time in zoho api, i can see closed time in the API response i get, but can't get tickets by that field while calling. Regards, Anvin Alias
Reply to email addresses wrong.
I have setup my Zoho mail account using my main domain and I also have an Alias setup from a different domain. In Settings - Mail - Compose I have selected to the option "For replies, send using The same email address to which the email was sent to".
Meeting integration with Otter.ai
Would love for an integration with an AI transcription service like Otter.ai to be integrated with Zoho Meeting. Thanks
How to close/delete a free creator account?
I have a free zoho creator account associated with my email address that is not being used. I want to become a user of another paid zoho creator account but I can not associate with the paid account with the same email. I assume if I can close or delete the free account I will be able to use the paid account. I have emailed support but no response. Suggestions?
Zoho books and zapier causes Invalid data provided
I have been using zoho books with zapier for over 2 years now, everything was working fine. On September 13th my zaps stopped working. Now on step create sales invoice in zoho books i get an error: Failed to create a create_invoice_v2 in Zoho Books The
CRM report
Is it possible to pull a contacts report that also includes the company industry, as well as the company name? I’m having trouble combining company and contact fields – any help is appreciated. Thank you, Sam
Enhancements to Client script?
Hi Zoho CRM, I've been extensively using Client Scripts to enhance our Deal form experience, particularly for real time validations and auto updating fields based on specific logic. However, I've encountered a challenge regarding permission boundaries.
Add views to new CRM UI navigation + Unlimited Webtabs
Zoho CRM is so close now to being the ultimate business application with the new UI, as soon as this one feature is added. This is probably where Zoho is headed but if it's not I want to BEG for this to be incorporated. What we need is to be able to put
E-Mail Distribution List
How do I create an e-mail distribution list in Zoho Mail?
Custom "create meeting" button with more functionality than Zoho currently has?
I'm looking for a little help/direction in how to do this. Even just some general high level pointers on how this might be able to be done. The current Zoho Meeting Activity functionality is not ideal for my org's workflow. I'd like to try and create
Error Code 4: Invalid value passed for JSONString
Okay, I want to start by saying I know I'm a terrible scripter, so sorry if this is a dumb mistake. I just can't figure it out, even with LLM help. Here's my code: // --- Input Variables --- customer_id = salesorder.get("customer_id"); so_id = salesorder.get("salesorder_id");
Organizing contacts/members by company
I work for a membership organization (representing businesses) and am trying to use Zoho CRM more effectively for managing the points of contact for our members. Currently, our members are listed in our CRM by the primary point of contact's name, but
Unable to search in Zoho Email
I've started using Zoho Email (free version) recently and realized that it doesn't have email search functionality. Am I missing anything here? I've gone through the Zoho tutorial which does show the search bar on the right top of the Zoho UI. But in
Response Time Report
From data to decisions: A deep dive into ticketing system reports Every organization that interacts with its customers should have an established timeframe for how soon an agent is expected to send the first response and any reply to any follow-up messages.
Zoho - Outlook plugin
Does anyone know if there is a way to modify the autofill in the Zoho plugin in outlook? When we create a contact, it enters the correct email address and name, but then pulls information from our own signature line to add phone number, address, etc.
Zoho Books - Sales Person Information
Hi Team, On Invoices, Quotes, etc... I can include the Sales Person, but it only shows their name and not their email or phone number. It would be great to have place on invoice templates where we can manage what sales person information should be shows
Offline working in Zoho Creator portal
Zoho's help says that offline working is only available in the Creator mobile app and not in the portal app. But I can see offline options in the portal app too and it seems to work when I test it. My portal users are often in areas where there is poor
Fetch Records using Dynamic Criteria
Hi, I have a form that builds a filter based on user input. I need to fetch the records based on dynamic criteria. How would I accomplish this as there is no eval function? For example: desiredRecord = Form1[dynamicCriteria];
Url filter Report date (pivot chart)
Hello. Is it possible to filter the data in pivot char using parameters in the url? I'm trying but I should not doing very well. Something like: https://creator.zoho.com/.../....../#Report:MyPivotChartReport?MyDate=01-Jan-2012;31-Jun-2012;MyDate_op=58 Saludos
Next Page