Zoho Desk propose plusieurs solutions pour automatiser les flux de travail en fonction de vos besoins. Dans cet article, nous mettons en lumière une fonctionnalité qui alerte votre équipe lorsque des articles de la base de connaissances arrivent à expiration, garantissant ainsi un contenu toujours pertinent et utile pour vos clients.
Une base de connaissances est un référentiel d’informations qu’une organisation met à disposition de ses employés, clients, partenaires et autres parties prenantes pour leur permettre de mieux comprendre ses offres. Ces informations peuvent prendre diverses formes, telles que des blogs, des guides d’utilisation, des livres blancs, des newsletters, des mises à jour de produits ou encore des FAQ. Afin de maintenir des informations à jour, Zoho Desk permet de définir des dates d’expiration pour les articles. Une fois expirés, ils sont automatiquement retirés du Centre d’aide, et, par défaut, seule une notification est envoyée à leur propriétaire.
Comment créer cette fonction client
Prérequis
Configurer une connexion
Accédez à Setup >> choisissez Connections sous Developer Space.
Sélectionnez Créer une connexion
Sélectionnez Zoho OAuth sous Default Connection
Donnez à la connexion le nom , eg - deskconnection
Désactivez le bouton pour les informations identifiant
Sous Scope, choisissez les valeurs "Desk.articles.READ"
Cliquez sur créer et connecter
Cliquez sur "Connecter" puis sur "Accepter"
La connexion est établie
Créer un calendrier
Allez au setup, choisissez "Planifications" sous "Automatisation"
Sélectionnez "Nouvelle planification"
Sous "Ajouter une planification", saisissez le nom de la planification et la description de la règle
Sous l'onglet "Exécuter", définissez la date et l'heure de début d'exécution de la planification
Dans l'onglet "Répéter", sélectionnez «Tous les jours», puis «Tous les [1] jours». Sélectionnez les jours en fonction de vos préférences et définissez «Fin» sur «Jamais». Cliquez sur "Terminer". Le programme s'exécutera ainsi les jours sélectionnés.
Dans la section "Fonctions", cliquez sur "Créer une fonction"
Saisissez un nom et une description pour la fonction personnalisée
Dans la fenêtre de script, insérez la fonction personnalisée ci-dessous :
Cliquez sur "Enregistrer le script"
Cliquez sur "Enregistrer" pour ajouter la fonction personnalisée.
Cliquez à nouveau sur "Enregistrer" pour valider la programmation.
- // ----<<<< User Inputs >>>>----
- subjectOfNotificationEmail = "Zoho Desk - Article Expiry Notification"; // provide subject based on your preference
- commaSeperatedToAddresses = "email address1, email address2";//provide email addreses of team members
- currentDateString = zoho.currentdate.toString("yyyy-MM-dd");
- //Expiring/Expired Today
- fromString = currentDateString + "T00:00:00.000Z";
- toString = currentDateString + "T23:59:59.999Z";
- info "final url " + "https://desk.zoho.com/api/v1/articles?expiryTimeRange=" + fromString + "," + toString;
- //change .com based on your DC
- getArticle = invokeurl
- [
- url :"https://desk.zoho.com/api/v1/articles?expiryTimeRange=" + fromString + "," + toString
- //change .com based on your DC
- type :GET
- connection:"deskconnection"
- ];
- emailBody = "";
- if(getArticle != null && getArticle != "" && getArticle.get("data").size() > 0)
- {
- articlesList = getArticle.get("data");
- emailBody = emailBody + "<div> <b> List of articles expiring/expired today </b>";
- for each article in articlesList
- {
- webUrl = article.get("webUrl");
- title = article.get("title");
- emailBody = emailBody + "<div><br><a href='" + webUrl + "'>" + title + "</div>";
- }
- emailBody = emailBody + "</div> <br> <br>";
- }
- //Expiring Tomorrow
- currentDateString = zoho.currentdate.addDay(1).toString("yyyy-MM-dd");
- fromString = currentDateString + "T00:00:00.000Z";
- toString = currentDateString + "T23:59:59.999Z";
- info "final url " + "https://desk.zoho.com/api/v1/articles?expiryTimeRange=" + fromString + "," + toString;
- //change .com based on your DC
- getArticle = invokeurl
- [
- url:"https://desk.zoho.com/api/v1/articles?expiryTimeRange=" + fromString + "," + toString
- //change .com based on your DC
- type :GET
- connection:"deskconnection"
- ];
- if(getArticle != null && getArticle != "" && getArticle.get("data").size() > 0)
- {
- articlesList = getArticle.get("data");
- emailBody = emailBody + "<div> <b>List of articles expiring tomorrow </b>";
- for each article in articlesList
- {
- webUrl = article.get("webUrl");
- title = article.get("title");
- emailBody = emailBody + "<div><br><a href='" + webUrl + "'>" + title + "</div>";
- }
- emailBody = emailBody + "</div> <br> <br>";
- }
- //Expiring in 7 days
- currentDateString = zoho.currentdate.addDay(7).toString("yyyy-MM-dd");
- fromString = currentDateString + "T00:00:00.000Z";
- toString = currentDateString + "T23:59:59.999Z";
- info "final url " + "https://desk.zoho.com/api/v1/articles?expiryTimeRange=" + fromString + "," + toString;
- //change .com based on your DC
- getArticle = invokeurl
- [
- url :"https://desk.zoho.com/api/v1/articles?expiryTimeRange=" + fromString + "," + toString
- //change .com based on your DC
- type :GET
- connection:"deskconnection"
- ];
- if(getArticle != null && getArticle != "" && getArticle.get("data").size() > 0)
- {
- articlesList = getArticle.get("data");
- emailBody = emailBody + "<div><b> List of articles expiring in 7 days </b> ";
- for each article in articlesList
- {
- webUrl = article.get("webUrl");
- title = article.get("title");
- emailBody = emailBody + "<div><br><a href='" + webUrl + "'>" + title + "</div>";
- }
- emailBody = emailBody + "</div> <br> <br>";
- }
- info "emailBody" + emailBody;
- if(emailBody != "")
- {
- sendmail
- [
- from :zoho.adminuserid
- to :commaSeperatedToAddresses
- subject :subjectOfNotificationEmail
- message :emailBody
- ]
- info "mail sent";
- }
À savoir
- À la ligne 2, saisissez l'objet de l'e-mail de notification.
- Dans la ligne 3, saisissez les e-mails des membres de l'équipe que vous souhaitez notifier.
- Dans les lignes 8,12,34,38,59,63, remplacez « .com » par l'extension de domaine correspondant à votre centre de données.
Cela vous permet de assurer des mises à jour rapides et une publication fluide, permettant ainsi la pertinence de votre base de connaissances et l'accès de vos clients aux ressources les plus récentes.
L'équipe Zoho France
Recent Topics
How to Track and Manage Schedule Changes in Zoho Projects
Keeping projects on track requires meticulous planning. However, unforeseen circumstances can cause changes to schedules, leading to delays. It becomes important to capture the reason for such changes to avoid them in the future. Zoho Projects acknowledges
Is there a notification API when a new note is addeding
Trying to push to Cliq, or email notification when there's a new note added in module. How to implement this?
Collaborate Feature doesn't work
Hello Team. It seems that the collaborate section is broken? I can post something but it all appears in "Discussions". In there is no way how I would mark something as Draft, Approval, post or any of the other filter categories? Also if I draft a post
Create new Account with contact
Hi I can create a new Account and, as part of that process, add a primary contact (First name, last name) and Email. But THIS contact does NOT appear in Contacts. How can I make sure the Contact added when creating an Account is also listed as a Contact?
Edit Permission during and after approval?
When a record is sent for approval Can a user request for edit permission from the approver? We don't want to give edit permissions for all the records under approval Only on a case-by-case basis How can we achieve this?
Zoho web and mobile application not workingn
Both zoho forms web and mobile application aren't working. I have checked my network connections and they are fine.
Introducing the revamped What's New page
Hello everyone! We're happy to announce that Zoho Campaigns' What's New page has undergone a complete revamp. We've bid the old page adieu after a long time and have introduced a new, sleeker-looking page. Without further ado, let's dive into the main
Prevent stripping of custom CSS when creating an email template?
Anyone have a workaround for this? Zoho really needs to hire new designers - templates are terrible. A custom template has been created, but every time we try to use it, it strips out all the CSS from the head. IE, we'll define the styles right in the <head> (simple example below) and everything gets stripped (initially, it saves fine, but when you browse away and come back to the template, all the custom css is removed). <style type="text/css"> .footerContent a{display:block !important;} </style>
Bulk Moving Images into Folders in the Library
I can't seem to select multiple images to move into a folder in order to clean up my image library and organize it. Instead, I have to move each individual image into the folder and sometimes it takes MULTIPLE tries to get it to go in there. Am I missing
Zoho Campaigns - Why do contacts have owners?
When searching for contacts in Zoho Campaigns I am sometimes caught out when I don't select the filter option "Inactive users". So it appears that I have some contacts missing, until I realise that I need to select that option. Campaigns Support have
Latest updates in Zoho Meeting | Breakout rooms and End to end encryption
Hello everyone, We’re excited to share a few updates for Zoho Meeting. Here's what we've been working on lately: Introducing Breakout Rooms for enhanced collaboration in your online meetings and End-to-end encryption to ensure that the data is encrypted
Systematic SPF alignment issues with Zoho subdomains
Analysis Period: August 19 - September 1, 2025 PROBLEM SUMMARY Multiple Zoho services are causing systematic SPF authentication failures in DMARC reports from major email providers (Google, Microsoft, Zoho). While emails are successfully delivered due
Accidentally deleted a meeting recording -- can it be recovered?
Hi, I accidentally deleted the recording for a meeting I had today. Is there a way I can recover it?
Cross References Do Not Update Correctly
I am using cross references to reference Figures and current am just using the label and number, i.e. Figure #. As seen here: When I need to update the field, I use the update field button. But it will change the cross reference to no longer only including
Citation Problem
I had an previous ticket (#116148702) on this subject. The basic problem is this; the "Fetch Details" feature works fine on the first attempt but fails on every subsequent attempt, Back in July after having submitted information electronically and was
To Zoho customers and partners: how do you use Linked Workspaces?
Hello, I'm exploring how we can set up and use Linked Workspaces and would like to hear from customers and partners about your use cases and experience with them. I have a Zoho ticket open, because my workspace creation fails. In the meantime, how is
How to access email templates using Desk API?
Trying to send an email to the customer associated to the ticket for an after hours notification and can't find the API endpoint to grab the email template. Found an example stating it should be: "https://desk.zoho.com/api/v1/emailtemplates/" + templateID;
How to render either thumbnail_url or preview_url or preview_data_url
I get 401 Unauthorised when using these urls in the <img> tag src attribute. Guide me on how to use them!
Update Portal User Name using Deluge?
Hey everyone. I have a basic intake form that gathers some general information. Our team then has a consultation with the person. If the person wants to move forward, the team pushes a CRM button that adds the user to a creator portal. That process is
Flow Task Limits - How to Monitor, Understand Consumption?
So, I got an email last night saying that I've exhausted 70% of my tasks for this month, and encouraging me to buy more tasks. I started to dig into this, and I cannot for the life of me figure out where to find any useful information for understanding,
Unable to retrieve Contact_Name field contents using Web API in javascript function
Hello, I've added a field in the Purchase Order form to select and associate a Sales Order (Orden_de_venta, lookup field). I've also created a client script to complete some fields from the Sales Order (and the Quote), when the user specifies the related
Updating Woocommerce Variation Products Prices Via Zoho CRM
I can update product prices with this flow: But I can't update variant products. I got a code from Zoho for this, but I couldn't get it to work. It needs to find the product in the CRM from the SKU field and update the variation with the price there.
Attention API Users: Upcoming Support for Renaming System Fields
Hello all! We are excited to announce an upcoming enhancement in Zoho CRM: support for renaming system-defined fields! Current Behavior Currently, system-defined fields returned by the GET - Fields Metadata API have display_label and field_label properties
Placing a condition before converting the LEAD
Hi, I need some assistance with Lead conversion. I need to place certain conditions before allowing the user to convert the lead. For example: up until the certain status's doesn't equal "green" don't allow to convert lead. I tried creating this using
Zoho CRM Calendar | Custom Buttons
I'm working with my sales team to make our scheduling process easier for our team. We primary rely on Zoho CRM calendar to organize our events for our sales team. I was wondering if there is a way to add custom button in the Calendar view on events/meeting
Power of Automation:: Automate the process of updating project status based on a specific task status.
Hello Everyone, Today, I am pleased to showcase the capabilities of a custom function that is available in our Gallery. To explore the custom functions within the Gallery, please follow the steps below. Click Setup in the top right corner > Developer
Emails Disappearing From Inbox
I am experiencing the unnerving problem of having some of the messages in my inbox just disappear. It seems to happen to messages that have been in there for longer than a certain amount of time (not sure how long exactly). They are usually messages that I have flagged and know I need to act on, but have not gotten around to doing so yet. I leave them in my inbox so I will see them and be reminded that I still need to do something about them, but at least twice now I have opened my inbox and found
BUTTONS SHOWN AS AN ICON ON A REPORT
Hi Is there any way to create an action button but show it as an icon on a report please? As per the attached example? So if the user clicks the icon, it triggers an action?
Power of Automation :: Automatic removal of project users once the project status is changed.
A custom function is a software code that can be used to automate a process and this allows you to automate a notification, call a webhook, or perform logic immediately after a workflow rule is triggered. This feature helps to automate complex tasks and
Customizing Form Questions per Recipient Group in Zoho Campaigns/Forms
Hello everyone, I would like to ask if it’s possible in Zoho Campaigns or Zoho Forms to send out a campaign where the form questions can be customized based on the group of recipients. Use case example: I have prepared 20 questionnaire questions. For
Zoho Books - France
L’équipe de Zoho France reçoit régulièrement des questions sur la conformité de ses applications de finances (Zoho Books/ Zoho Invoice) pour le marché français. Voici quelques points pour clarifier la question : Zoho Books est un logiciel de comptabilité
in zoho creator Sales Returns form has sub form Line Items return quantity when i upate the or enter any values in the sub form that want to reflect in the Sales Order form item deail sub form field Q
in zoho creator Sales Returns form has sub form Line Items return quantity when i upate the or enter any values in the sub form that want to reflect in the Sales Order form item deail sub form field Quantity Returned\ pls check the recording fetch_salesorder
Client Script Payload Size Bug
var createParams = { "data": [{ "Name": "PS for PR 4050082000024714556", "Price_Request": { "id": "4050082000024714556" }, "Account": { "id": "4050082000021345001" }, "Deal": { "id": "4050082000023972001" }, "Owner": { "id": "4050082000007223004" }, "Approval_Status":
Forms - Notification When Response Submitted
How do I set it up to generate an email notification when a response (class request) is submitted?
how to use validation rules in subform
Is it possible to use validation rules for subforms? I tried the following code: entityMap = crmAPIRequest.toMap().get("record"); sum = 0; direct_billing = entityMap.get("direct_billing_details"); response = Map(); for each i in direct_billing { if(i.get("type")
Notes Issues
Been having issues with Notes in the CRM. Yesterday it wasn't showing the notes, but it got resolved after a few minutes., Now I have been having a hard time saving notes the whole day. Notes can't be saved by the save button. it's grayed out or not grayed
How to disable user entry on Answer Bot in Zobot
Hi, I have an Answer Bot in my Zobot, here is the configuration: I only want the user to choose 1 of the 4 the options I have provided: When no answer found, user chooses 'I'll rephrase the question' or 'Ask a different question When answer is found,
More admin control over user profiles
It's important for our company, and I'm sure many others, to keep our users inline with our branding and professional appearance. It would be useful for administrators to have more control over profile aspects such as: Profile image User names Email signatures
Please Make Zoho CRM Cadences Flexible: Allow Inserting and Reordering Follow-Up Steps
Sales processes are not static. We test, learn, and adapt as customers respond differently than expected. Right now, Zoho Cadences do not support inserting a new step between existing follow-ups or changing the type of an existing primary step. If I realize
Changing the Default Search Criteria for Finding Duplicates
Hey everyone, is it possible to adjust the default search criteria for finding and merging duplicate records? Right now, CRM uses some (in my opinion nonsensical) fields as search criteria for duplicate records which do nothing except dilute the results.
Next Page