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




                                                  • Desk Community Learning Series


                                                  • Digest


                                                  • Functions


                                                  • Meetups


                                                  • Kbase


                                                  • Resources


                                                  • Glossary


                                                  • Desk Marketplace


                                                  • MVP Corner


                                                  • Word of the Day


                                                  • Ask the Experts





                                                            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

                                                                                              Get Started. Write Away!

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

                                                                                                Zoho CRM コンテンツ



                                                                                                  Nederlandse Hulpbronnen


                                                                                                      ご検討中の方




                                                                                                              • Recent Topics

                                                                                                              • TrueSync regularly filling up my local disk

                                                                                                                Seems that WorkDrive's TrueSync randomly starts filling up my local hard drive space. None of the folders have been set as "Make Offline" but still it seems to randomly start making file offline. The settings of the app is so minimal and is of no real
                                                                                                              • How to print a label from zoho creator app?

                                                                                                                Hello, I would like to print a label from zoho creator app record similar to attached one. Size 74mm x 102mm. I tried record template. It leaves plenty of space around the content and also I couldn't set the height of the page. So it is not printing properly. Could someone please direct me to right direction for this requirement?
                                                                                                              • Integration between "Zoho Sprints Stories" and "Zoho Projects Tasks/Subtasks"

                                                                                                                We have two separate teams in our organization using Zoho for project management: The Development team uses Zoho Sprints and follows Agile/Scrum methodology. The Infrastructure team uses Zoho Projects for traditional task-based project management. In
                                                                                                              • Where can we specify custom CSS in Zoho Forms custom theme ?

                                                                                                                I'm using a form with a dark theme. The OTP popup window is unreadable, because for some reason, the OTP popup background fixes color to white, but still takes the font color specified in the custom theme. This ends up as white on white for me, rendering
                                                                                                              • Team Gamification

                                                                                                                Would love to motivate, engage and encourage our team with our social media posts. Would like to include Gamification features of Social Media in Zoho Social or Marketing Automation. And also bring in Social Advocacy tools/tracking/management to these,
                                                                                                              • Sync Data from MA to CRM

                                                                                                                Currently, it's a one-way sync of data from the CRM to MA. I believe we should have the ability to select fields to sync from MA to the CRM. The lead score is a perfect example of this. In an ideal world we would be able to impact the lead score of a
                                                                                                              • Update CRM record action

                                                                                                                Currently, MA only offers a "Push Data" action to push data to a CRM module. This action is built to cover the need to both create a new record and update an existing record. Because it has been implemented this way all required fields on the CRM module
                                                                                                              • Pro Lite Upgrade - Quick Access Tray

                                                                                                                Hello, I was going to upgrade to Pro Lite but the Quick Access Tray feature isn't available for Windows. Of the four features not available for Windows, the QAT is what I'm most interested in. Are there plans to add this feature for Windows anytime soon?
                                                                                                              • Boost your CRM communication with new font types, sizes, and default reply-to options while composing emails

                                                                                                                Hello Everyone, We’re excited to introduce a series of impactful enhancements to the email composer settings in Zoho CRM. These updates enable you to personalize and optimize your customer interactions with greater efficiency. So what's new? Add custom
                                                                                                              • Auto tracking URL generation based on Carrier

                                                                                                                Hi, While creating a shipment order for a package in Zoho Books, I have a requirement that for example, if the carrier is Delhivery and tracking number is 1234, then can automatically the tracking link/URL be generated as www.delhivery.com/1234. Similary,
                                                                                                              • Notes badge as a quick action in the list view

                                                                                                                Hello all, We are introducing the Notes badge in the list view of all modules as a quick action you can perform for each record, in addition to the existing Activity badge. With this enhancement, users will have quick visibility into the notes associated
                                                                                                              • Webtabs for Mobile App

                                                                                                                We let our users strictly use CRM and use webtabs to integrate other applications like Zoho Desk. We need these webtabs in the mobile app as well. Otherwise our approach of using CRM as an entry point for our system does not work anymore. Update: It would
                                                                                                              • 3 year sick leave cycle

                                                                                                                How do you set up a sick leave cycle for South Africa? In SA the sick works like this for the first 6 months you get 0.83 paid sick days a month, then after 6 months you sick leave balance is reset to 30 days that can be used over a 36 month cycle.  This
                                                                                                              • WorkDrive and CRM not in sync

                                                                                                                1/ There is a CRM file upload field with WorkDrive file set as the source: 2/ Then the file is renamed in WorkDrive (outside CRM): 3/ The File in CRM is not synced after the change in WorkDrive; the file name (reference) in CRM record is not updated (here
                                                                                                              • 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
                                                                                                              • Is Zoho Communityspaces now part of Zoho One?

                                                                                                                Is Zoho Communityspaces now part of Zoho One?
                                                                                                              • How to update "Lead Status" to more than 100 records

                                                                                                                Hello Zoho CRM, How do I update "Lead Status" to more than 100 records at once? To give you a background, these leads were uploaded or Imported at once but the lead status record was incorrectly chosen. So since there was a way to quickly add records in the system no matter how many they are, we are also wondering if there is a quicker way to update these records to the correct "Lead Status". I hope our concern makes sense and that there will be a fix for it. All the best, Jonathan
                                                                                                              • Bigin’s 2025 Evolution: Highlights from 2025 and What’s Ahead in 2026

                                                                                                                Dear Biginners, Wishing you a very happy New Year! As we stand at the cusp of endless possibilities in 2026, we would like to take a moment to reflect on what we achieved together in 2025. Your continued support, thoughtful feedback, and kind words of
                                                                                                              • Send Supervisor Rule Emails Within Ticket Context in Zoho Desk

                                                                                                                Dear Zoho Desk Team, I hope this message finds you well. Currently, emails sent via Supervisor Rules in Zoho Desk are sent outside of the ticket context. As a result, if a client replies to such emails, their response creates a new ticket instead of appending
                                                                                                              • Zoho Desk - Change Time Zone for all users and set default for new user

                                                                                                                Hi,   Is there a way to set a default time zone so that when user creates an account via the Zoho Desk invitation, they don't need to select the time zone via the hundreds of choice?   And, for already created users, can we edit the incorrect time zone selected by the user at the account creation ?   Thanks ! Fred
                                                                                                              • Introducing WhatsApp integration in Bigin

                                                                                                                Greetings! In today's business landscape, messaging apps play a significant role in customer operations. Customers can engage with businesses, seek support, ask questions, receive personalized recommendations, read reviews, and even make purchases—all
                                                                                                              • Allow Manual Popup Canvas Size Control

                                                                                                                Hello Zoho PageSense Team, We hope you're doing well. We would like to request an enhancement to the PageSense popup editor regarding popup sizing. Current Limitation: Currently, the size (width and height) of a popup is strictly controlled by the selected
                                                                                                              • Why does Zoho’s diff viewer highlight parts of unchanged lines?

                                                                                                                Hi everyone, I’ve noticed something odd in the Zoho editor’s diff view. When I delete a single line, the diff doesn’t just mark that line as removed. Instead, it highlights parts of the next line as if they changed, even though they are identical. Example:
                                                                                                              • All new Address Field in Zoho CRM: maintain structured and accurate address inputs

                                                                                                                The address field will be available exclusively for IN DC users. We'll keep you updated on the DC-specific rollout soon. It's currently available for all new sign-ups and for existing Zoho CRM orgs which are in the Professional edition. Latest update
                                                                                                              • CRM x WorkDrive: File storage for new CRM signups is now powered by WorkDrive

                                                                                                                Availability Editions: All DCs: All Release plan: Released for new signups in all DCs. It will be enabled for existing users in a phased manner in the upcoming months. Help documentation: Documents in Zoho CRM Manage folders in Documents tab Manage files
                                                                                                              • Wrapping up 2025 on a high note: CRM Release Highlights of the year

                                                                                                                Dear Customers, 2025 was an eventful year for us at Zoho CRM. We’ve had releases of all sizes and impact, and we are excited to look back, break it down, and rediscover them with you! Before we rewind—we’d like to take a minute and sincerely thank you
                                                                                                              • Passing the CRM

                                                                                                                Hi, I am hoping someone can help. I have a zoho form that has a CRM lookup field. I was hoping to send this to my publicly to clients via a text message and the form then attaches the signed form back to the custom module. This work absolutely fine when
                                                                                                              • Automating Employee Birthday Notifications in Zoho Cliq

                                                                                                                Have you ever missed a birthday and felt like the office Grinch? Fear not, the Cliq Developer Platform has got your back! With Zoho Cliq's Schedulers, you can be the office party-cipant who never forgets a single cake, balloon, or awkward rendition of
                                                                                                              • Drop Down Value

                                                                                                                Hi, May I know why Zoho Flow treat this drop down as number and not as string. If so, how can I fetch the right value for filtering. This field is from Creator, in Creator upon checking by default it is a string since it's not a lookup field.
                                                                                                              • Create PO from an invoice

                                                                                                                We are a hardware and software sales company which receives orders over the internet. We drop ship most of our products from a warehouse outside of our company. Our orders get sync'd into Zoho from our store via onesaas as invoices. It would be great
                                                                                                              • SMS to customers from within Bigin

                                                                                                                Hi All, Is there anyone else crying out for Bigin SMS capability to send an SMS to customers directly from the Bigin interface? We have inbuilt telephony already with call recordings which works well. What's lacking is the ability to send and receive
                                                                                                              • Zoho Survey reminder settings are extremely confusing

                                                                                                                Hi, I just want to set 3 reminders, one week apart from the first email out. Your form is too confusing and I don't understand. Can you simplify and be more specific regarding the language used on the form ?
                                                                                                              • Add deluge function to shorten URLs

                                                                                                                Zoho Social contains a nice feature to shorten URLs using zurl.co. It would be really helpful to have similar functionality in a Deluge call please, either as an inbuilt function or a standard integration. My Creator app sends an email with a personalised
                                                                                                              • form data load issue when saving as duplicate record is made

                                                                                                                Hello. I have a form with a lookup when a value is selected the data from the corresponding record is filled into all of the fields in the form. But the form is loaded in such a state that if any value is changed it will take all of the values pre loaded
                                                                                                              • Recurring Tasks and Reminders in Projects

                                                                                                                Recurring tasks are tasks that are created once, and then recreated automatically after a designated time period. For example, the invoice for your billable tasks is due every week. You can set that task to recreate itself every week. Also, the future
                                                                                                              • Unable to remove the “Automatically Assigned” territory from existing records

                                                                                                                Hello Zoho Community Team, We are currently using Territory Management in Zoho CRM and have encountered an issue with automatically assigned territories on Account records. Once any account is created the territory is assigned automatically, the Automatically
                                                                                                              • Track online, in-office, and client location meetings separately with the new meeting venue option

                                                                                                                Hello everyone! We’re excited to announce meeting enhancements in Zoho CRM that bring more clarity and structure to how meetings are categorized. You can now specify the meeting venue to clearly indicate whether a meeting is being held online, at the
                                                                                                              • Google Fonts Integration in Pagesense Popup Editor

                                                                                                                Hello Zoho Pagesense Team, We hope you're doing well. We’d like to submit a feature request to enhance Zoho Pagesense’s popup editor with Google Fonts support. Current Limitation: Currently, Pagesense offers a limited set of default fonts. Google Fonts
                                                                                                              • Improved Contact Sync flow in Google Integration with Zoho CRM

                                                                                                                Hello Everyone, Your contact sync in Google integration just got revamped! We have redesigned the sync process to give users more control over what data flows into Google and ensure that this data flows effortlessly between Zoho CRM and Google. With this
                                                                                                              • CRM Canvas - Upload Attachments

                                                                                                                I am in the process of changing my screens to Canvas.  On one screen, I have tabs with related lists, one of which is attachments.  There doesn't appear to be a way to upload documents though.  Am I missing something really obvious?  Does anyone have
                                                                                                              • Next Page