Building Extensions #8: Create widgets with the JS SDK bundle in Zoho Desk - Data API

Building Extensions #8: Create widgets with the JS SDK bundle in Zoho Desk - Data API

This series aims to equip developers with all they need to build extensions for Zoho Desk in Zoho Sigma and publish them in Zoho Marketplace.

We hope that you've been able to use the information in previous posts to understand building extensions for Zoho Desk and the configuration of various components required while building them. In this post, we'll introduce the various API methods available in the Zoho Desk JS SDK bundles, which will help you experiment with the capabilities of the Zoho Desk Platform. We'll begin with creating widgets using the APIs in this post, and proceed with additional advanced features provided on the platform in the upcoming posts.

The JS SDK provided by Zoho Desk is a package of multiple APIs that helps in interacting with the Zoho Desk data while building extensions. Depending on the purpose met by these APIs, they are grouped and are provided with unique names. These APIs can be used in your extensions to fetch data from various objects of the Desk portal. Based on your business requirements, you can work on these data and use them in your extensions' widgets.

Before we start with the API categories, there are two important points to note. To utilize the APIs in your extension, the min.js file of the JS SDK needs to be added to your code snippet and the widget initialization should be completed.

The JS SDK is provided with onload() API method by default, which will initialize your widget within the Desk portal. When an extension is accessed, this API is invoked and opens the widget. All other APIs in the JS SDK package can be used once the extension is initialized. The following code initializes your widget.
      ZOHODESK.extension.onload()

To ease development, the onload() API method is included in the widget.html file of every project that you create. The sample code snippet of all the platform-supported APIs will also be available in the widget.html file. With such an easy-to-use platform, all a developer needs to do is pick and include the APIs they need for their extension.

      <script>
      window.onload = function () {
      ZOHODESK.extension.onload().then(function (App) {
            //Get ticket related data
      ZOHODESK.get('ticket.email').then(function (res) {
            //response Handling
      }).catch(function (err) {
            //error Handling
      });
      ...
      ...
      });
      };
      </script>

The following list of APIs are available in the JS SDK package, each serving a unique function. Based on your business requirements, you can include the APIs in your extensions.
  • Data APIs
  • Data Storage APIs
  • Extensions API
  • Resources API
  • Request API
  • Invoke API
  • Events API
  • Hooks API

Data APIs

Zoho Desk provides a set of data APIs to communicate with the various objects within your Zoho Desk portal. The objects that are supported for APIs are listed below:
  • Ticket Object
  • Contact Object
  • Account Object
  • User Object
  • Portal Object
  • Department Object
  • Extension Object

Ticket Object

The different properties of a Desk ticket can be accessed and it is currently limited to the widget locations desk.ticket.detail.rightpanel, desk.ticket.detail.subtab, desk.ticket.detail.lefttab, desk.ticket.detail.moreaction, and desk.ticket.thread.moreaction.

To fetch a ticket along with all associated properties from the desk portal, use the below API.

      ZOHODESK.get("ticket").then(function(response)
      {
            //response returns all the properties of the ticket
      })

An individual property of a ticket can be obtained by using the following API.

      ZOHODESK.get("ticket.<property>").then(function(response)
      {
            //response returns the property data of the ticket
      })
where <property> refers to a particular property or data you need to fetch from the current ticket. For example, department ID, email, etc.

Contact Object

The various properties of a contact within the Desk portal can be accessed. It is accessible only from the contact detail page locations, and global widget locations.

      ZOHODESK.get("contact.<property>").then(function(response)
      {
            //Response - requested detail
      }).catch(function(err){
            //Error Handling
      })

Account Object

This object provides you with access to the various properties of an account. It is accessible only from the account detail page locations, and global widget locations.

      ZOHODESK.get("account.<property>").then(function(response)
      {
            //Response - requested detail
      }).catch(function(err){
            //Error Handling
      })

User Object

The details of a user can be obtained from the Desk portal using the following API.

      ZOHODESK.get("user").then(function(response)
      {
            // response returns information about a particular user
      }).catch(function(err){
           //Error handling
      })

To obtain individual properties of the users, use the following API.

      ZOHODESK.get("user.<property>").then(function(response)
      {
            //response returns information about a particular user
      }).catch(function(err){
            //Error handling
      })
where <property> can take up one of the following values:
  • isLightAgent - Returns a boolean value stating whether the user is a LightAgent or not.
  • tzoffset - Fetch the time offset of a particular user. Time offset refers to the difference in time between the Coordinated Universal Time (UTC) and the current standard time in the user's time zone. The time difference is expressed in minutes.
  • fullName
  • email
  • portals - Returns the name of the users' portal.

Portal Object

To obtain the various details of a portal, the following API can be used.

      ZOHODESK.get("portal.<property>").then(function(response)
      {
            //response returns the current Zoho Desk plan of the portal
      }).catch(function(err){
            //Error Handling
      })
where <property> can take up the following values.
  • plan
  • id
  • name
  • customDomainName

Department Object

To obtain the department details of the portal, the following API can be used. This API can be used only by the users with Admin role.

      ZOHODESK.get("department.<property>").then(function(response)
      {
            //response returns the list of departments
      }).catch(function(err){
            //Error Handling
      })
where <property> can take up the following values
  • list - The list of departments in the portal
  • id - The department of the agent currently working
  • info - Fetch details about a particular department. The department id should be passed as a parameter

Extension Object

When you build an extension, you will be adding your configuration details in the plugin-manifest file. You can obtain these configuration details from the file using this API. You can also set configuration values.

You can fetch the installation parameters of the extension. In production mode, only those parameters that have the value of the secure key set to false can be retrieved. In development mode, all parameters can be obtained irrespective of the value of the secure key.

      ZOHODESK.get("extension.config").then(function(response)
      {
            //response returns the installation parameters of the extension
      }).catch(function(err){
            //error handling
      })

As we already know, the extensions you build for Zoho Desk will be hosted in Zoho Marketplace from where users can install the extension. For your reference, here are some extensions from the Zoho Marketplace that are built for Zoho Desk using the Data APIs explained above. These could give you an idea of how the functionality of Zoho Desk can be enhanced using widgets.
In this post, we've stuck to explaining Data APIs. We'll be covering the features of other APIs available in the JS SDK package in the upcoming posts.

Stay tuned!



<<Previous                                                                                                                                              Next >>

    Access your files securely from anywhere

          Zoho Developer Community




                                    Zoho Desk Resources

                                    • Desk Community Learning Series


                                    • Digest


                                    • Functions


                                    • Meetups


                                    • Kbase


                                    • Resources


                                    • Glossary


                                    • Desk Marketplace


                                    • MVP Corner


                                    • Word of the Day



                                        Zoho Marketing Automation


                                                Manage your brands on social media



                                                      Zoho TeamInbox Resources

                                                        Zoho DataPrep Resources



                                                          Zoho CRM Plus Resources

                                                            Zoho Books Resources


                                                              Zoho Subscriptions Resources

                                                                Zoho Projects Resources


                                                                  Zoho Sprints Resources


                                                                    Qntrl Resources


                                                                      Zoho Creator Resources



                                                                          Zoho Campaigns Resources


                                                                            Zoho CRM Resources

                                                                            • CRM Community Learning Series

                                                                              CRM Community Learning Series


                                                                            • Kaizen

                                                                              Kaizen

                                                                            • Functions

                                                                              Functions

                                                                            • Meetups

                                                                              Meetups

                                                                            • Kbase

                                                                              Kbase

                                                                            • Resources

                                                                              Resources

                                                                            • Digest

                                                                              Digest

                                                                            • CRM Marketplace

                                                                              CRM Marketplace

                                                                            • MVP Corner

                                                                              MVP Corner





                                                                                Design. Discuss. Deliver.

                                                                                Create visually engaging stories with Zoho Show.

                                                                                Get Started Now


                                                                                  Zoho Show Resources


                                                                                    Zoho Writer Writer

                                                                                    Get Started. Write Away!

                                                                                    Writer is a powerful online word processor, designed for collaborative work.

                                                                                      Zoho CRM コンテンツ






                                                                                        Nederlandse Hulpbronnen


                                                                                            ご検討中の方





                                                                                                  • Recent Topics

                                                                                                  • Why option for 'include form submission in the body of the email' check box is missing

                                                                                                    Hi In all our forms we have configured an <Email Notification> (<Rules> <Form Rules>) In some forms, there is an option to <include form submission in the body of the email> in the <Additional Options> section, however, this option is not available in
                                                                                                  • no puedo recibir correos

                                                                                                    Hola, en la cuenta de la empresa desde hace unos tres días dejamos de recibir correos y no hemos realizado ningun cambio de configuracion, requerimos asistencia urgente por favor
                                                                                                  • NO PUEDO RECIBIR CORREOS EN MI CUENTA ZOHO MAIL

                                                                                                    LO QUE SI PUEDO HACER ES ENVIAR CORREOS PERO NO PUEDO RECIBIR CORREOS. Y LA CONFIGUIRACION DE MI DNS YA ESTA CORRECTA Y APUNTAN A ZOHO PERO AUN ASI NO PUEDO RECIBIR  NECESITO AYUDA URGENTE YA QUE EN MEXICO NO HAY FORMA DE COMUNICARNOS VIA TELEFONIA CON
                                                                                                  • Mozilla Vault extension will not Unlock even once.

                                                                                                    I have been using the Vault extension in Chrome based browsers for years, yet after installing the Mozilla Extension in Firefox, it will not unlock. Initially it did redirect me to log into my account, and then enter the master password. However, it did
                                                                                                  • Unable to Download CRM Contact Data: WorkDrive Integration Issues

                                                                                                    ## Problem Description We need to let users download contact information from CRM as CSV files to their local computers. Since we couldn't implement a direct download option, we're trying to use WorkDrive as a workaround - but we're encountering issues
                                                                                                  • Sort mail by name and subject

                                                                                                    I don't see sort function on columns FROM and Subject. I see only sort functio by date. Could add it ?
                                                                                                  • Zoho Creator monthly roundup - September 2024

                                                                                                    Hello all, We're back with an exciting set of new features and enhancements that will elevate your Creator experience even further. In case you missed it, we’ve recently revamped our Product Roadmap page, now with a refreshed design and showcasing all
                                                                                                  • Kiosk Studio Session #1: View paid customers in the same industry

                                                                                                    Update | 15 Oct 2024: Session #2 is now available here! Hello everyone! We're excited to launch our new series of posts on Kiosk Studio today. Called Kiosk Studio Sessions , these posts will be packed with actionable ideas to help you get the most out
                                                                                                  • Issues hosting Zoho Desk Web Form on SharePoint and/or Power BI

                                                                                                    Zoho Desk onboarding support has no experience with embedding their web form in either SharePoint or Power BI. Microsoft states that SharePoint and Power BI only support iframe HTML. And unfortunately, the web form embed code that Zoho generates is not
                                                                                                  • "Send with Zoho Sign" broken

                                                                                                    Our company uses hyphens in our file name conventions. Our users have been sending the files from other modules with the "Send with Zoho Sign" shortcut in the upper right buttons. Since around June 10, 2024, this stopped working. Our users can send the
                                                                                                  • Not able to change colors help center

                                                                                                    Hi. How can I change the orange color in the help center? You can change everything besides this font color And how can I remove the part on the bottom?
                                                                                                  • Transform Numeric Values using st, nd, rd, th or Convert Numerals to Ordinal Form - Deluge

                                                                                                    Please Use this sample Code This_Day_Date = zoho.currentdate.toString("dd"); value1 = "th"; if(This_Day_Date.right(1) ="1" && This_Day_Date != "11") { This_Day_Date = This_Day_Date+" "+"st"; } else if ( This_Day_Date.right(1) = "2" && This_Day_Date !=
                                                                                                  • Kaizen #166 - Handling Query Variables in Zoho CRM

                                                                                                    Hello, Code Enthusiasts! Welcome to another week of Kaizen! This week, we'll dive into handling variables in Zoho CRM Queries and see how they can be deployed in Kiosk to dynamically retrieve data. This technique is especially useful for integrating data
                                                                                                  • Automate User Invitations on Zoho Desk with API

                                                                                                    Automate User Invitations on Zoho Desk with API Hello Team, We are excited to announce that you can now automatically invite users to the Zoho Desk portal using the API! ### How It Works For example, when a contact is created in Zoho Desk and you enable
                                                                                                  • Is there a way to add clients who don't have organisation in Zoho Books/Payroll/Expense ?

                                                                                                    The Zoho Practice software is only allowing a total of 15 such clients who are not organisations in Zoho Books/Payroll/Expense. i.e. 5 organisation in each of the software by creating a new organization for them and adding the accountant as the admin
                                                                                                  • Email with attachments saving attachments into Zoho CRM from Zoho Mail

                                                                                                    Hi, I get a lot of emails from prospective clients asking if we would bid their project. Those projects usually have many documents associated with them that I link to.  I would like to have those documents be saved as an attachment in my Potential or Contact or Account. I don't see a way to do that that isn't multi-step. As of now I do the following: 1.) Open email 2.) If email sender isn't in my Zoho CRM database I enter them creating a Potential 3.) I download the attachment and save it to a different
                                                                                                  • Fixed assets recording

                                                                                                    Hello there, I recorded a bill for a vendor contain (Computer) so the PC is a fixed assets, do I need to do a manual journal to include this PC under the fixed assets category (furniture & equipment)? If yes, please take me through the manual journal
                                                                                                  • Multi-Select lookup field has reached its maximum??

                                                                                                    Hi there, I want to create a multi-select lookup field in a module but I can't select the model I want the relationship to be with from the list. From the help page on this I see that you can only create a max of 2 relationships per module? Is that true?
                                                                                                  • Zoho Sheet-Pulling in Data

                                                                                                    I have a module where we track POs, Bills etc (its easier for us this way). In this PO Module, we have a task related to a Job/Deal and various fields for costs. A Supplier on a Job might have several POs in this module for the job. I want to generate
                                                                                                  • Can't get ZFS file ID of a field via specific module record

                                                                                                    I have a `fileupload` field on a custom module that I need to replace the file for but I don't know how to get the ZFS ID from the module record. # Getting the current fileupload GET https://www.zohoapis.eu/crm/v7/<MODULE>/<ID> # Response { data: [{ //
                                                                                                  • Contemplating moving my site from WordPress to Zoho Sites

                                                                                                    Hi Everyone, We currently find ourselves in a situation where we ant to review and update our current sites content. We are small business owners, not developers. We currently use a wide range of Zoho products. We sometimes think about the possibility of either moving or just starting from scratch on Zoho Sites. I would like to know if anyone has done this and of course the things that need to be considered. We have spent quite a bit of time getting our current site positioned organically and I guess
                                                                                                  • Multiple Salesperson against an invoice

                                                                                                    Hello, Against a particular invoice, we have multiple sales people working. The reason we combine the invoice is becuase we are an exporter and often consolidate cargo for our customer to save them freight costs. How do I capture the contribution of each
                                                                                                  • Allow a brand to connect multiple facebook pages at the same time

                                                                                                    Our company have multiple facebook pages to represent, every branch, right now we can only link one facebook page, so we can only recive messages from one branch. It would be nice to be able to connect all pages.
                                                                                                  • Whatsapp reply not reflected under Tickets for offline agent

                                                                                                    Hi, We are encountering a situation where WA response from customer is not reflected under tickets (if the agent handling the case previously is not active due to off day/ MC). The ticket will remain in the offline agent's queue until agent is back to
                                                                                                  • Select CRM Custom Module in Zoho Creator

                                                                                                    I have a custom module added in Zoho CRM that I would like to link in Zoho creator.  When I add the Zoho CRM field it does not show the new module.  Is this possible?  Do i need to change something in CRM to make it accesible in Creator?
                                                                                                  • Send Whatsapp with API including custom placeholders

                                                                                                    Is is possible to initiate a session on whatsapp IM channel with a template that includes params (placeholders) that are passed on the API call? This is very usefull to send a Utility message for a transactional notification including an order number
                                                                                                  • Increase Round Robin Scheduler Frequency in Zoho Desk

                                                                                                    Dear Zoho Desk Team, We hope this message finds you well. We would like to request an enhancement to the Round Robin Scheduler in Zoho Desk to better address ticket assignment efficiency. Current Behavior At present, the Round Robin Scheduler operates
                                                                                                  • Separate One-Time Mentions from Ongoing Ticket Following in Zoho Desk

                                                                                                    Dear Zoho Desk Support Team, We are writing to request an enhancement to the mention functionality within Zoho Desk. Currently, when an agent is mentioned in a ticket, they receive notifications for all subsequent activity on that ticket, similar to being
                                                                                                  • Mass update Accounts in Zoho Desk

                                                                                                    We used the integration feature to bring in all of our accounts from Zoho CRM. While all of the names and links are in place, on the Zoho Desk side the email, phone, website, and address fields are blank. By going into each account I can select "Update
                                                                                                  • Vivaldi will not open the Zoho Mail app when I click a email link in the browser

                                                                                                    I'm running Vivaldi on Arch with the Plasma desktop and have under default applications Zoho Mail set as my default email client. Whenever I click a email link in Vivaldi I get the below when it should be launching Zoho. Any ideas on rectifying this issue?
                                                                                                  • Digital publisher

                                                                                                    Kinetic Digital Publisher provides comprehensive digital publishing services, including eBook creation, formatting, cover design, and marketing. We help authors publish and promote their work across online platforms with ease.
                                                                                                  • Time Zone Correction with Daylight Savings Time

                                                                                                    Hey, I'm writing a series of reports where the source data is synced from an external source which stores the date/time information in GMT, but I want the reports to be in local time. Now, I understand there is the CONVERT_TZ function which allows me
                                                                                                  • Load form in iframe without header

                                                                                                    I am trying to load a form into an iframe without the header, but I am not having any luck. I am using openUrl() to load the iframe with the form URL and zc_Header set to false, e.g. #Form:Add_Case?zc_Header=false but it is still loading the header. Any
                                                                                                  • Filter embedded report

                                                                                                    How to filter embedded report in a page, below code is not working. dateField => startDate & dateField=< endDate The report should print on page containing records from startDate to endDate. params='zc_Header=true&amp;Service_Date__gte=<%=startDate%>&amp;Service_Date__lte=<%=endDate%>'
                                                                                                  • Creator Simplified #5: Set file upload restrictions in Zoho Creator

                                                                                                    Hey Creators, Welcome to the next post in the Creator Simplified series. Today, we’ll explore how to implement file upload restrictions to limit user submissions to specific file types. By implementing an allowed list for file uploads, you can optimize
                                                                                                  • Field Type: Address, Change District/State to Dropdown with picklist??

                                                                                                    Using the Address Field type, is there a way to make the District/State field be a dropdown with a picklist so the users can select rather than type the state name every time? I know this can be done if I use a drowdown field for the State (or entire address information), but that isn't as tidy as using the address field type. I apologize if this is a duplicate. I posted this question the other day, or so I though. Can't find that post.
                                                                                                  • cutomized fields are not showing up in zoho creator from zoho crm

                                                                                                    We have customized fields in zoho crm under accounts module like "Last production upgrade" --> This field is a date. When created a solution in zoho creator i couldn't find any of the customized fields. Would you please help me on this matter? Thanks
                                                                                                  • How to Add Bulk Data in Zoho Creator Forms Using Deluge Without Exceeding Execution Time Limit

                                                                                                    I have a database form with a column named 'Product Name' containing 8000 values in a Zoho Creator form. In another form named 'Returns Data,' I have a column with the same name, 'Product Name.' How do I add these 8000 values to the 'Returns Data' form
                                                                                                  • Open New Free Zoho Account

                                                                                                    Hi Team, Do you guys offer a free email hosting? I do have a domain already. If yes, what is the process to open the new account? Thanks,
                                                                                                  • 554 5.7.1 : Recipient address rejected: user info@intimspace.de does not exist

                                                                                                    554 5.7.1 : Адрес получателя отклонен: пользователь info@intimspace.de не существует I can't send an email to Google at info@intimspace.de. An error comes. I entered everything correctly in DNS https://zohomail.tools/#domainDetails/intimspace.de/ALL
                                                                                                  • Next Page