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





                                                  Use cases

                                                  Make the most of Zoho Desk with the use cases.

                                                   
                                                    

                                                  eBooks

                                                  Download free eBooks and access a range of topics to get deeper insight on successfully using Zoho Desk.

                                                   
                                                    

                                                  Videos

                                                  Watch comprehensive videos on features and other important topics that will help you master Zoho Desk.

                                                   
                                                    

                                                  Webinar

                                                  Sign up for our webinars and learn the Zoho Desk basics, from customization to automation and more

                                                   
                                                    
                                                  • Desk Community Learning Series


                                                  • Meetups


                                                  • Ask the Experts


                                                  • Kbase


                                                  • Resources


                                                  • Glossary


                                                  • Desk Marketplace


                                                  • MVP Corner






                                                            Manage your brands on social media



                                                                  Zoho TeamInbox Resources



                                                                      Zoho CRM Plus Resources

                                                                        Zoho Books Resources


                                                                          Zoho Subscriptions Resources

                                                                            Zoho Projects Resources


                                                                              Zoho Sprints Resources


                                                                                Qntrl Resources


                                                                                  Zoho Creator 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

                                                                                                            • Enhance Barcode/QR Code scanner with bulk scanning or continuously scanning

                                                                                                              Dear Zoho Creator, As we all know, after each scan, the scanning frame closes. Imagine having 100 items; we would need to tap 100 times and wait roughly 1 second each time for the scanning frame to reopen on mobile web. It's not just about wasting time;
                                                                                                            • Is there a way to sync Tags between CRM and Campaigns/Marketing Hub?

                                                                                                              I wonder if there is a way to synch the tags between CRM and Marketing-Hub / Campaigns?
                                                                                                            • Non-depreciating fixed asset

                                                                                                              Hi! There are non-depreciable fixed assets (e.g. land). It would be very useful to be able to create a new type of fixed asset (within the fixed assets module) with a ‘No depreciation’ depreciation method. There is always the option of recording land
                                                                                                            • Managing Rental Sales in Zoho Inventory

                                                                                                              I am aware that Zoho Inventory is not yet set up to handle rental sales and invoicing. Is anyone using it for rentals anyway? I'd like to hear about how others have found work arounds to manage inventory of rental equipment, rental payments, etc. Th
                                                                                                            • Megamenu

                                                                                                              Finally! Megamenu's are now available in Zoho-Sites, after waiting for it and requesting it for years! BUT ... why am I asked to upgrade in order to use a megamenu? First: Zoho promised to always provide premium versions and options for all included Zoho-applications
                                                                                                            • Cannot access KB within Help Center

                                                                                                              Im working with my boss to customize our knowledge base, but for some reason I can see the KB tab, and see the KB categories, but I cannot access the articles within the KB. We have been troubleshooting for weeks, and we have all permissions set up, customers
                                                                                                            • Zoho Flow to Creator 3001 Respoonse

                                                                                                              I have updated my Flows with the new V2 connection to Zoho Creator, but now some Flows do not work. They take in data from a Webhook and are supposed to create a record in Creator, however creator returns a 3001 message along with a failure, but I cannot
                                                                                                            • File Upload to Work Drive While Adding Records in Zoho Creator Application

                                                                                                              Hi I am trying to set a file attachment field in zoho creator form, to enable the user to upload a scanned document from their local pc. The file should be uploaded to zoho workdrive and not to the default zoho creator storage. The file link should be
                                                                                                            • COQL order by COUNT not working

                                                                                                              Dear community, I am trying to get a list of deal amounts per planner working on it and sorted to get see who has the least amount of deals. For some reason, I am unable to use sort by in combination with a COUNT. My original code was: query = "select
                                                                                                            • Why not possible to generate?

                                                                                                              Using this https://desk.zoho.com/DeskAPIDocument#TicketCount#TicketCount_Getticketcountbyfield on my ZML script url :"https://desk.zoho.com/api/v1/ticketsCountByFieldValues?departmentId=XXXXXXXXXXX&accountId!=XXXXXXXXX&customField1=cf_country_1:XXXXXX&field=overDue"
                                                                                                            • email

                                                                                                              Hi My crm email is not working, can you check, I have zoho one account.
                                                                                                            • Need option to see Mass Emails & Cadences in Gmail Outbox OR a dedicated Zoho Outbox

                                                                                                              Hi everyone, Right now, when we send 1:1 emails from gmail (with gmail API connected to Zoho CRM), those emails appear both in gmail's sent folder and in Zoho CRM. That works well. But when we send Mass Emails or Cadence emails form Zoho CRM, they are
                                                                                                            • Integración Books para cumplir la ley Crea y Crece y Ley Antifraude (VeriFactu)

                                                                                                              Hola: En principio, en julio de 2025, entra en vigor la ley Crea y Crece y Ley Antifraude (VeriFactu). ¿Sabéis si Zoho va a cumplir con la ley para cumplir con la facturación electrónica conectada a Hacienda? Gracias
                                                                                                            • I can't found API for Sales Receipts

                                                                                                              Hello May you please help me to find an API document for Sales Receipts to get data and retrive a custom fields like Invoice and credit notes Regards
                                                                                                            • Problem with reports due to "Connected" items change

                                                                                                              Now that the change has been made to use "connected" items I can no longer run the reporting I need in CRM. I should be able to start with Deals as the parent, connect down to the Account (Account_Name) on the deal as the child, then to any child items
                                                                                                            • Kaizen #205 - Answering Your Questions | Managing Picklists and Enabling History Tracking via Zoho CRM APIs

                                                                                                              Hello everyone! Welcome back to another post in our Kaizen series. In this post, we will look at how you can manage picklist fields in Zoho CRM using APIs. This topic was raised as feedback to Kaizen #200, so we are taking it up here with more details.
                                                                                                            • Custom Fonts in Zoho CRM Template Builder

                                                                                                              Hi, I am currently creating a new template for our quotes using the Zoho CRM template builder. However, I noticed that there is no option to add custom fonts to the template builder. It would greatly enhance the flexibility and branding capabilities if
                                                                                                            • Multiple Vendor SKUs

                                                                                                              One of the big concerns we have with ZOHO Inventory is lack of Vendor Skus like many other inventory software packages offer. Being able to have multiple vendor skus for the same product would be HUGE! It would populate the appropriate vendor Sku for
                                                                                                            • Internally created tickets

                                                                                                              Hi there When tickets are created internally on-behalf of customers - there is nothing to show that the ticket was created by an internal agent. This means, that it's easy for our agents to confuse tickets which were created by internal team members and
                                                                                                            • Spilt Axis for stacked column and line graph

                                                                                                              Each month around this time I prepare a business review deck. One of the biggest annoyances I have with Zoho, also happens to be something that most other platforms have provided for a long time now, and that is being able to create a chart with stacked
                                                                                                            • Automatically change website passwords

                                                                                                              Hi everyone, We just switched to a Professional package to also use the "Automatically change website passwords" function. But I cannot find anything about it, how to use it, anywhere. Does anyone know how I can use this function? Best, Caspar
                                                                                                            • Change Invoice Prices for an Effective Date

                                                                                                              Hi, It would be a really good feature to be able to change the prices on invoices/recurring invoices from an effective date in the event of price increases. For instance, I am in the process of increasing prices that will be effective from a specific
                                                                                                            • "Other Current Asset" accounts as "Paid Through" accounts in Expense

                                                                                                              It would be incredibly useful to be able to assign accounts of type Other Current Asset as Paid Through accounts in Expense. Currently, Other Current Liability are permitted as Paid Through Accounts. This makes sense, as Credit Cards are current liabilities.
                                                                                                            • Multi column open text questions that allows respondents to add rows for additional information

                                                                                                              I need to create a question that has 2 columns with open text, but I also need to allow respondents to click a "+" button, or something similar, so that they can add additional information if they choose to. I've tried using the Multiple Textboxes type
                                                                                                            • Bot Filtering & Apple Mail Privacy Protection Compliance in Zoho Campaigns

                                                                                                              Dear Campaigns Users, The wait is over! We’re excited to announce that the enhanced bot filtering feature is now live in Zoho Campaigns. This update brings greater accuracy to your email campaign reports by distinguishing real user engagement from automated
                                                                                                            • Découvrons les détails qui simplifient vos journées de travail avec Trident

                                                                                                              Nous nous installons dans des routines efficaces et rodées avec le temps. Chaque matin, nous ouvrons nos e-mails, passons aux messages, consultons notre agenda, puis attaquons nos tâches. Ce processus nous semble maîtrisé, mais est-il réellement optimisé
                                                                                                            • Issue with Purchase Rate Showing as “0” After Importing Items List

                                                                                                              Dear Zoho Books Support Team, Good day. I’m reaching out regarding an issue I’m facing while importing my items list into Zoho Books. Despite mapping all fields correctly and including the purchase price for each product in my Excel file, the Purchase
                                                                                                            • API for Task Entity in Zoho Books

                                                                                                              I’m working on automating task creation in Zoho Books via a custom button in the Bills Module. The goal is to create a task in the Tasks Module and assign it to the Finance Team, so they can track progress efficiently. While reviewing Zoho Books documentation,
                                                                                                            • create invoice in zoho books from the zoho forms

                                                                                                              Is there a native way to have create invoice in zoho books, when zoho form is completed?
                                                                                                            • Email undelivered

                                                                                                              GOod Day I am always receiving an uncategorized-bounce to my email. I am not sure why this is happening.
                                                                                                            • Custom Buttons for Mass Actions

                                                                                                              Hello everyone, We’ve just made Custom Buttons in Zoho Recruit even more powerful! You can now create Bulk Action Buttons that let you perform actions on multiple records at once, directly from the List View. What’s new? Until now, custom buttons were
                                                                                                            • Add inventory_valuation_method to items endpooints

                                                                                                              To ensure consistent item creation it would be helpful to have the inventory_valuation_method (FIFO vs WAC) be able to be set at item creation or as an update (consistent with current behavior where it is not allowed for items with existing transactions)
                                                                                                            • Use Zoho to send sales receipts for Gocardless transactions

                                                                                                              I've been using gocardless for years and have d/d mandates set up on there. Each week we get bulk payments from customer d/d's. However, we need to send sales receipts to these customers. So I know I can sync mandates into Zoho, and then I can set up
                                                                                                            • Zoho - Gocardless sales receipts

                                                                                                              I've been using gocardless for years and have d/d mandates set up on there. Each week we get bulk payments from customer d/d's. However, we need to send sales receipts to these customers. So I know I can sync mandates into Zoho, and then I can set up
                                                                                                            • Introducing Rollup summary in Zoho CRM

                                                                                                              ------------------------------------------Moderated on 5th July'23---------------------------------------------- Rollup summary is now available for all organizations in all the DCs. Hello All, We hope you're well! We're here with an exciting update that
                                                                                                            • Introducing Connected Workflows in Zoho CRM for Everyone : Free Your Teams to Focus on What Matters

                                                                                                              Hello Everyone, We’re thrilled to introduce the next big evolution in Zoho CRM for Everyone -- Connected Workflows. This new feature builds on our commitment to deliver a CRM that’s truly inclusive, adaptable, and designed for consistent collaboration
                                                                                                            • Introducing Connected Records to bring business context to every aspect of your work in Zoho CRM for Everyone

                                                                                                              Hello Everyone, We are excited to unveil phase one of a powerful enhancement to CRM for Everyone - Connected Records, available only in CRM's Nextgen UI. With CRM for Everyone, businesses can onboard all customer-facing teams onto the CRM platform to
                                                                                                            • Cooling-off Period Just Got Better: More Coverage, More Control

                                                                                                              We’ve enhanced the Cooling-off Period feature in Zoho Recruit to give you more control over repeat applications and referrals. This helps you maintain a cleaner, more efficient recruitment pipeline. With this enhancement, you can: Prevent duplicate candidate
                                                                                                            • Cliq iOS can't see shared screen

                                                                                                              Hello, I had this morning a video call with a colleague. She is using Cliq Desktop MacOS and wanted to share her screen with me. I'm on iPad. I noticed, while she shared her screen, I could only see her video, but not the shared screen... Does Cliq iOS is able to display shared screen, or is it somewhere else to be found ? Regards
                                                                                                            • Revenue Management: #7 Revenue Recongition in Construction & Real Estate Industry

                                                                                                              If you are in the construction or real estate business, you are used to long project timelines and progressive invoicing to keep up with your billing. But when does revenue get recognized? Will it happen when the contract gets signed? At different milestones
                                                                                                            • Next Page