Automation#28 Notify Agents on Article Expiry

Automation#28 Notify Agents on Article Expiry




Hello Everyone!
This week, we’re bringing you a feature that notifies your team when articles in the Knowledge Base are set to expire to keep your content relevant and helpful for customers.

The Zoho Desk's Knowledge Base is an asset for customers to gain knowledge and help themselves navigate through the product or process of the firm or industry. Zoho Desk allows you to set expiry dates for articles to maintain up-to-date information. However, once an article expires, it’s removed from the Help Center, and notifications are only sent to the article owner by default. 

But, what if they miss it?

This solution integrates with a scheduler to notify team members on the same day an article expires. 
Here’s how you can implement the custom function within the schedule to notify your team when an article expires.

Prerequisites
I. Create a connection
  1.1 Go to Setup(S) and choose Connections under Developer Space.
  1.2 Click Create Connection.
  1.3 Select Zoho Desk under Default Connection.
  1.4 Set the connection name as deskconnection.
  1.5 Under Scope, choose the below scope values:
Desk.articles.READ
  1.6 Click Create and Connect.
  1.7 Click Connect and click Accept.
Connection is created successfully.

II. Create a Schedule
1. Go to Setup, choose Schedules under Automation
2. Under Schedules, click New Schedule.
3. Under Add Schedule, enter a Schedule Name and Description for the rule.
4. In the Execute on tab, set the Date and Time for the schedule to begin execution. 
5. In the Repeat tab, select 'Every Day,' then choose 'Every [1] Days.' Select the days based on your preferences and set 'Ends' to 'Never'. Click Done.  This will ensure the schedule runs on the selected days. 



6. In the Functions section, click on Create Function.
7. Enter a Name and Description for the custom function.                                           
8. In the script window, insert the Custom Function given below:
  1. // ----<<<< User Inputs >>>>----
  2. subjectOfNotificationEmail = "Zoho Desk - Article Expiry Notification"; // provide subject based on your preference
  3. commaSeperatedToAddresses = "email address1, email address2";//provide email addreses of team members
  4. currentDateString = zoho.currentdate.toString("yyyy-MM-dd");
  5. //Expiring/Expired Today
  6. fromString = currentDateString + "T00:00:00.000Z";
  7. toString = currentDateString + "T23:59:59.999Z";
  8. info "final url " + "https://desk.zoho.com/api/v1/articles?expiryTimeRange=" + fromString + "," + toString;  
  9. //change .com based on your DC
  10. getArticle = invokeurl
  11. [
  12. url :"https://desk.zoho.com/api/v1/articles?expiryTimeRange=" + fromString + "," + toString
  13. //change .com based on your DC
  14. type :GET
  15. connection:"deskconnection"
  16. ];
  17. emailBody = "";
  18. if(getArticle != null && getArticle != "" && getArticle.get("data").size() > 0)
  19. {
  20. articlesList = getArticle.get("data");
  21. emailBody = emailBody + "<div> <b> List of articles expiring/expired today </b>";
  22. for each  article in articlesList
  23. {
  24. webUrl = article.get("webUrl");
  25. title = article.get("title");
  26. emailBody = emailBody + "<div><br><a href='" + webUrl + "'>" + title + "</div>";
  27. }
  28. emailBody = emailBody + "</div> <br> <br>";
  29. }
  30. //Expiring Tomorrow
  31. currentDateString = zoho.currentdate.addDay(1).toString("yyyy-MM-dd");
  32. fromString = currentDateString + "T00:00:00.000Z";
  33. toString = currentDateString + "T23:59:59.999Z";
  34. info "final url " + "https://desk.zoho.com/api/v1/articles?expiryTimeRange=" + fromString + "," + toString;
  35. //change .com based on your DC
  36. getArticle = invokeurl
  37. [
  38. url:"https://desk.zoho.com/api/v1/articles?expiryTimeRange=" + fromString + "," + toString
  39. //change .com based on your DC
  40. type :GET
  41. connection:"deskconnection"
  42. ];
  43. if(getArticle != null && getArticle != "" && getArticle.get("data").size() > 0)
  44. {
  45. articlesList = getArticle.get("data");
  46. emailBody = emailBody + "<div> <b>List of articles expiring tomorrow </b>";
  47. for each  article in articlesList
  48. {
  49. webUrl = article.get("webUrl");
  50. title = article.get("title");
  51. emailBody = emailBody + "<div><br><a href='" + webUrl + "'>" + title + "</div>";
  52. }
  53. emailBody = emailBody + "</div> <br> <br>";
  54. }
  55. //Expiring in 7 days
  56. currentDateString = zoho.currentdate.addDay(7).toString("yyyy-MM-dd");
  57. fromString = currentDateString + "T00:00:00.000Z";
  58. toString = currentDateString + "T23:59:59.999Z";
  59. info "final url " + "https://desk.zoho.com/api/v1/articles?expiryTimeRange=" + fromString + "," + toString;
  60. //change .com based on your DC
  61. getArticle = invokeurl
  62. [
  63. url :"https://desk.zoho.com/api/v1/articles?expiryTimeRange=" + fromString + "," + toString
  64. //change .com based on your DC
  65. type :GET
  66. connection:"deskconnection"
  67. ];    
  68. if(getArticle != null && getArticle != "" && getArticle.get("data").size() > 0)
  69. {
  70. articlesList = getArticle.get("data");
  71. emailBody = emailBody + "<div><b> List of articles expiring in 7 days </b> ";
  72. for each  article in articlesList
  73. {
  74. webUrl = article.get("webUrl");
  75. title = article.get("title");
  76. emailBody = emailBody + "<div><br><a href='" + webUrl + "'>" + title + "</div>";
  77. }
  78. emailBody = emailBody + "</div> <br> <br>";
  79. }
  80. info "emailBody" + emailBody;
  81. if(emailBody != "")
  82. {
  83. sendmail
  84. [
  85. from :zoho.adminuserid
  86. to :commaSeperatedToAddresses
  87. subject :subjectOfNotificationEmail
  88. message :emailBody
  89. ]
  90. info "mail sent";
  91. }
NOTE
In Line 2, Enter the Email Subject for the Notification.
In Line 3, Enter the email addresses of the team members you would like to notify. 
In Lines 8,12,34,38,59,63,  Replace ".com" with the domain extension based on your Data Center.
9. Click Save Script.  
10. Click Save to save the custom function.
11. Click Save again to save the Schedule.

By this, you can ensure quick updates and seamless publishing, keeping your Knowledge Base relevant and your customers updated with the latest resources. 
Stay tuned for more learnings on this forum. 
Regards,
Lydia | Zoho Desk 


      • 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

        • Recent Topics

        • Boas práticas de desenvolvimento em Deluge

          O Deluge (Data Enriched Language for the Universal Grid Environment) é a linguagem de script utilizada em diversas aplicações do ecossistema Zoho, como Zoho Creator, Zoho CRM, Zoho Books e Zoho Flow. Ela foi projetada para permitir automações rápidas
        • Zoho Books | Product updates | February 2026

          Hello users, We’ve rolled out new features and enhancements in Zoho Books. From Advanced Reporting Tags to the ability to mark projects as completed, explore the latest updates designed to improve your bookkeeping experience. Introducing Advanced Reporting
        • Send emails directly via Cases module

          Greetings all, The ability to send emails from the Cases module, which users have been eagerly anticipating, is now available, just like in the other modules. In Zoho CRM, Cases is a module specifically designed for managing support tickets. If your organization
        • Seeking a WhatsApp Business App (not API) Zoho CRM integration

          We have a business need to integrated WhatsApp Business App (not API) into Zoho CRM to centrally manage communications between our Sales team and Leads & Contact. Is there a reputable integration available for this scenario of ours? Core features we would
        • Zoho Sign 2025–2026: What's new and what's next

          Hello! Every year at Zoho Sign, we work hard to make document signing and agreement execution easy for all users. This year we sat down with our head of product, Mr. Subramanian Thayumanasamy, to discuss what we delivered in 2025 and our goals for 2026.
        • Force mandatory entry on one of two fields on Contacts

          We are finding our users aren't always entering a phone number or email address of a contact.  We would like to make these fields mandatory but realize they won't always have both pieces of information, but should at least have one. Is there a way to make either the Phone number OR Email Address fields mandatory on the Contacts screen.  We want to make sure they fill in at least one of those fields. Is this possible?
        • Removing To or CC Addresses from Desk Ticket

          I was hoping i could find a way to remove unnecessary email addresses from tickets submitted via email. For example, a customer may email the support address AND others who are in the helpdesk notification group, in either the TO or CC address. This results
        • Error AS101 when adding new email alias

          Hi, I am trying to add apple@(mydomain).com The error AS101 is shown while I try to add the alias.
        • Intergrating multi location Square account with Zoho Books

          Hi, I have one Square account but has multiple locations. I would like to integrate that account and show aggregated sales in zoho books. How can I do that? thanks.
        • Is there a way to configure dark mode for Campaigns emails that go out to customers?

          I've found a lot of information on how to configure dark mode for my (The user) personal Zoho workspace and email, but is there any way to edit dark mode settings on emails that we send out to customers via campaigns?  We sent out a test email the other
        • Can I hide empty Contact fields from view?

          Some contacts have a lot of empty fields, others are mostly filled. Is there a way I can hide/show empty fields without changing the actual Layout? I would like to de-clutter my view, and also be able to add information later as I am able. I would be
        • CRM x WorkDrive: We're rolling out the WorkDrive-powered file storage experience for existing users

          Release plan: Gradual rollout to customers without file storage add-ons, in this order: 1. Standalone CRM 2. CRM Plus and Zoho One DCs: All | Editions: All Available now for: - Standalone CRM accounts in Free and Standard editions without file storage
        • Auto-publish job openings on my Zoho Recruit Careers Website

          I have developed a script using the Zoho Recruit API that successfully inserts new jobOpening records to my Zoho Recruit website, but my goal is to auto-publish to the Careers Website. The jobOpening field data shows two possible candidates to make this
        • Zoho Recruit - Email Relay

          Good day, Has anyone succeeded in setting up an email relay for Office 365? If I add the details from https://support.microsoft.com/en-us/office/pop-imap-and-smtp-settings-8361e398-8af4-4e97-b147-6c6c4ac95353, I get the connection error. Regards, Eka
        • Credit Card Terminal for Zoho Books

          Hello, Instead of punching the credit card number manually for customer payment, do you have a third-party hardware credit card reader that works with Braintree? Thank You
        • How do you print out the invoices comments

          I have some invoices where i need to print out the comments that show when reminders and etc were sent how do we print those out in Zoho Books.
        • Feature Request: Enable Custom PDF Layout Editor for All Modules (Including Package Slips)

          Hello Zoho Community and Product Team, I am writing to share a suggestion that would significantly enhance the customization capabilities within Zoho Books. We all appreciate the power of the Custom PDF Layouts (the "New" template engine) that allows
        • Need advice for product/item search functionality when adding invoices.

          My client uses "Catalog or Vendor" name and Product code to search for his items. But Zoho only allow to search by product name and SKU when adding items to Invoices/Estimates. Clients product codes are not unique as they may overlap from different catalogs/vendors.
        • How to dynamically pass IDs from one API response to a second API call in Zoho DataPrep?

          Hi Team, I am setting up a global consolidated reporting pipeline in Zoho Analytics (India) using Zoho DataPrep as the ETL engine. I am pulling data from multiple Zoho Books Data Centers (US, Singapore, India) thats why i used the URL Source (OAuth 2.0)
        • Please can the open tasks be shown in each customer account at the top.

          Hi there This has happened before, where the open tasks are no longer visible at the top of the page for each customer in the CRM. They have gone missing previously and were reinstated when I asked so I think it's just after an update that this feature
        • Zoho Recruit -> Exchange Online Relay

          HI! I have tried to connect Recruit to our MS 365 Exchange Online without any luck. I use this guide https://help.zoho.com/portal/en/kb/recruit/outreach/email-relay/articles/email-relay-zoho-recruit#Configuring_Email_Relay_Settings Do anyone have the
        • Feature Request: "Send Invitation" Toggle for Events

          I am writing to request a critical "Quality of Life" update for the Activities module. Currently, adding people to the Participants field in an Event triggers an automatic email invitation/acceptance tracking with no way to opt-out. For general events
        • Account Review Pending - Daily Limit 100

          Hi ZeptoMail Team, I'm writing to request a manual review of my account. I am currently stuck on the 100-email daily limit and cannot purchase credits. Status: My domain is already verified (DKIM/CNAME). Issue: The "Customer Validation" option is no longer
        • Automation Series: Move Tasks to a different Task List on Status Change

          In Zoho Projects, you can automatically move a task from one task list to another when its status is updated. This keeps your tasks organised and ensures better visibility while reducing manual work. For instance, during a product launch, the marketing
        • Introducing Bigin's all new integration with Microsoft Teams

          Picture this: You are on call with your team to discuss some important deals that need to be closed soon. While discussing each deal, your team has to switch back and forth between your Teams account and Bigin account to refer to details about the deal.
        • Scaling the customer journey: What's new in CommandCenter

          Dear Customers, The last time we connected about CommandCenter, it was about the tool's new controls and revamped UI. Personally, the overhaul of the UI from the last update, still excites me. Today, we're here with news about its scalability and added
        • Adjusting Physical Inventory

          Not getting very far with support on this one, they say they are going to fix it but nothings happened since November. Please give this a thumbs up if you would like to see this feature or comment if you have some insight. Use Case: Inventory set to be
        • Dynamic Remaining Quantity in Lookup During Allocation

          Hi everyone, From what I understand in Zoho Creator, lookup fields only display the stored value from the source record and do not dynamically update while a form is being filled. Because of this, showing a real-time updated remaining quantity inside
        • Is it possible to use HTML formatting in SMS messages sent from Zoho?

          Hi everyone, I have a question regarding sending SMS from Zoho When we send emails from Zoho, we can include HTML code to format the message (like adding links, styling, etc.). Is it possible to do something similar when sending SMS messages through Zoho
        • Important update: Migrate to the new SalesIQ live chat widget before April 14, 2026

          This is a final reminder to migrate to the new SalesIQ Live Chat Widget before April 14, 2026. The old live chat widget will be deprecated after this date. To continue providing a faster and more engaging chat experience, we recommend upgrading to the
        • If your IM chats aren’t auto-assigning, here’s what to check

          Hey everyone! We’ve been seeing quite a few questions around Instant Messaging (IM) Chat Routing in Zoho Desk, especially around how it actually behaves in real time. So I thought I’d share a practical breakdown of what’s happening behind the scenes.
        • connect zoho creator with google drive

          Hello everyone, I need to connect to a folder drive. The idea, is that google drive loads a text document with some data, I must read that text document to be able to autofill a form that I have in zoho creator with that data. I also attach PDFs and place
        • Uploaded files are not included when using "Include user submitted data" in Email Notification

          In Send Email notification workflow in Zoho Creator, there is an option called "Include user submitted data" which allows the email to contain all the form submission details. However, when this option is enabled, files or images uploaded through File
        • Extend Zoho Canvas Customization to Zoho Creator Forms and Reports

          Currently, Zoho Canvas allows users to design and customize the UI of Zoho CRM modules with a much better visual experience. This helps organizations create cleaner layouts, improve usability, and design interfaces that match their workflows. However,
        • Kanban View for Projects.

          At our organization, we describe active projects with various statuses like "In Proofing" or "Printing" or "Mailing". In the Projects view, one can set these project statuses by selecting from the appropriate drop-down. While this works, it's difficult to view and comprehend the progress of all of your projects relative to each other in a table. Creating a Kanban view for projects where I can move them from one status to another allows me to see where each project is in the order of our workflow.
        • Option to Automatically Publish Job Openings to the Career Website via API or Workflow

          Currently, when creating Job Openings using the Zoho Recruit API, the records are successfully inserted into the system. However, there is no way to automatically publish these Job Openings to the Career Website. In the Job Opening field data, there are
        • 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
        • Button ''I'm Interested'' won't translate

          Since our main platform is in French, I would like to get this ''I'm Interested'' button translated to French ''Je suis intéressé''. We managed to translate the whole carreer site in French, except the button. How come ? We have a standard subscription,
        • Feature request - image resizing on sales orders

          I need to be able to show the items on the sales orders, currently the item image shows really small and no way to resize it, need the ability to make the image larger to showcase the product on the pdfs
        • ZOHO.CRM.UI.Record.open not working properly

          I have a Zoho CRM Widget and in it I have a block where it will open the blocks Meeting like below block.addEventListener("click", () => { ZOHO.CRM.UI.Record.open({ Entity: "Events", RecordID: meeting.id }).catch(err => { console.error("Open record failed:",
        • Next Page