Building Extensions #10: Creating widgets with the JS SDK bundle in Zoho Desk - Data Storage API

Building Extensions #10: Creating widgets with the JS SDK bundle in Zoho Desk - Data Storage 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.

In our previous post, we discussed Request APIs, what they're used for in extensions, and how to use them in your Zoho Desk extensions. In this post, we'll examine the next set of APIs in the JS SDK bundle—Data Storage APIs—and show you how to use them in the Zoho platform (Sigma) to build the Zoho Desk extensions.

Data Storage APIs

You may find that you require an extension that has data storage and retrieval capabilities. Zoho Desk allows you to store extension-related data in a database so that it can be retrieved and used when required. This can be data from a third-party application, or any other data related to the extension's functionality that needs to be preserved for future use. With the Data Storage APIs, you'll have access to a data store where the extensions can set (store) and get (retrieve) data using the Data Storage APIs. A key-value pair is used in managing the details about the data that's stored and retrieved, and is explained in detail in this post. When the data is no longer required, it can even be removed using the delete API.

The following SDK methods provide database management functionalities in your extensions.

Get data

The get API retrieves data from the extension's connected database. The request includes two parameters: key and queriableValue. The API request must include at least one of them.
  • key - Helps to identify what is being called by the API.
  • queriableValue - Specifies a common lookup group which will be useful for lookup from the database.
Here is a sample code snippet of the get data function:

     ZOHODESK.get("database", { "key": "3", "queriableValue": "test" })
    .then(function (response) {
        //response returns the value, based on the key specified
    })
    .catch(function (err) {
        // Error handling
    })

Set data

The set data API asynchronously sets data in the extension's connected database. The request includes three parameters: key, value, and queriableValue. The API request must include all three parameters. Each parameter is subject to further conditions:
  • The value passed by key can have a maximum length of 50 characters. The only special characters allowed are commas (,), underscores (_), and colons (:). The value of this parameter cannot be NULL.
  • The data passed by value must be a JSON object whose size cannot exceed 1 KB. Empty JSON objects can be passed, too. 
  • The value passed by queriableValue can have a maximum length of 50 characters. The only special characters allowed are commas (,), underscores (_), and colons (:). The value of this parameter can be NULL.
Here is a sample code snippet of the set data function:

      ZOHODESK.set("database", { "key": "3", "value": { "test": "testid" }, "queriableValue": "test" })
    .then(function (response) {
        // response returns the value saved
    })
    .catch(function (err) {
        // Error handling
    })

Delete data

The delete data API completely removes the selected data from the connected database. The key parameter must be included in the API request.

Here is a sample code snippet of the delete data function:
      
      ZOHODESK.delete("database", { "key": "3" })
    .then(function (response) {
        // response returns the status of deletion
    })
    .catch(function (err) {
        // Error handling
    })

Scenario: Let's say you're building an extension that involves creating events in Zoho Calendar from within Zoho Desk—i.e., the user creates Calendar events without switching from Zoho Desk to Zoho Calendar. In this case, the events created can be fetched from Zoho Calendar and are categorized and listed in the extension, such as completed event, upcoming event, or any other events, according to requirements. The Data Storage APIs can be used to get those events' data, store them in the extension database, and list those events in the extension's widget.

To implement this scenario, you must establish a connection between Zoho Desk and Zoho Calendar with the required scope. This will allow you to make requests between these services by invoking their APIs. Please check the Connectors post to learn more about creating connections. Once the connection is established and the configurations are completed in the plugin-manifest.json file, you can proceed with executing your extension functionalities.

The code below demonstrates how an event is created in Zoho Calendar using the Request API and the events are listed in Zoho Desk using the set method.
  • Use ZOHODESK.request to invoke Zoho Desk's "Create Events" API.
    Here, we are pushing the event data into Zoho Calendar.
  • Construct the request object for ZOHODESK.request.
    {
        "type": "POST",
        "headers": {},
        "postBody": {},
        "connectionLinkName": "calendarEvent",
        "data": {
            "eventdata": {
                "dateandtime": {
                    "timezone": "Asia/Kolkata",
                    "start": "20220225T130000+0530",
                    "end": "20220225T133000+0530"
                },
                "title": "Today's morning meeting"
            }
        }
    }
  • Extract the required values from the response of the request.
  • Use ZOHODESK.set to invoke Zoho Desk's "set record" API.
    ZOHODESK.set("database", {
        "key": userId,
        "value": {
            "eventId": eventData.id
        },
        "queriableValue": "eventIds"
    })


In this code, we're doing the following:
  • Creating events in Zoho Calendar by making a call to the Calendar events API, post method. The Request API SDK of Zoho Desk is used to invoke the Zoho Calendar API. The events are created with event date, event start time, and end time, with the time zone defined.
  • As mentioned, we need to list those events in our extension for our quick reference, so the required event information is fetched from the Request API's response.
  • Finally, we're storing the event information in our extension database using the set method. Here, we have defined key as userId, value as eventData.id, and queriableValue as eventIds. So all the events (eventData.id) created by the user (userId) will be stored within the database (eventIds).

Now that we have the event information in our extension database, we can use the get Data Storage API, define the key and queriableValue to retrieve the event information, process them, and display the events in your customized widget in the extension.

We hope that this example code has given you a clear picture of when and how to use the Data Storage APIs in building extensions for Zoho Desk.

Stay tuned for our next post where we will discuss another SDK method.

<<Previous                                                                                                                                       Next>>

    Access your files securely from anywhere

        All-in-one knowledge management and training platform for your employees and customers.







                              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

                                                                                                                • API credit COQL COUNT

                                                                                                                  The docs describe API credits in COQL from the LIMIT perspective: https://www.zoho.com/crm/developer/docs/api/v8/COQL-Overview.html When using aggregate functions such as `COUNT` or `SUM`, is that billed as 1 API credit?
                                                                                                                • 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
                                                                                                                • Super Admin Logging in as another User

                                                                                                                  How can a Super Admin login as another user. For example, I have a sales rep that is having issues with their Accounts and I want to view their Zoho Account with out having to do a GTM and sharing screens. Moderation Update (8th Aug 2025): We are working
                                                                                                                • One Contact with Multiple Accounts with Portal enabled

                                                                                                                  I have a contact that manages different accounts, so he needs to see the invoices of all the companies he manage in Portal but I found it not possible.. any idea? I tried to set different customers with the same email contact with the portal enabled and
                                                                                                                • Disable Zoho Contacts

                                                                                                                  We don't want to use this app... How can we disable it?
                                                                                                                • Default Ticket View - Table?

                                                                                                                  Guys, We mostly use the table view to queue tickets. Maybe I am missing it - but how can I set that view as 'default" for all our agents? Thanks JV
                                                                                                                • Zoho One IS BUGGY

                                                                                                                  Here are some things that just don't work: - Disabling applications from certain Spaces - Adding users (probably only for me) - Renaming applications in Zoho One Portal (fixed by now) - Reordering applications in Spaces When I try to reorder: It feels
                                                                                                                • Paid Support Plans with Automated Billing

                                                                                                                  We (like many others, I'm sure) are designing or have paid support plans. Our design involves a given number of support hours in each plan. Here are my questions: 1) Are there any plans to add time-based plans in the Zoho Desk Support Plans feature? The
                                                                                                                • Merge Fields that previously worked are now giving an Error!

                                                                                                                  Saving a URL Link button on the Deal module. The below fields used to save without issue at all, but now produce an error of "URL contains unsupported merge field!" ${Contacts.Mailing Street} ${Contacts.Mailing City} ${Contacts.Mailing State} ${Contacts.Mailing
                                                                                                                • Move email between inboxes?

                                                                                                                  Is it possible to move emails from one team inbox to another? We would like to be able to have a single "catch-all" inbox for incoming requests, and then move the email to the appropriate department inbox. I was hoping we would be able to accomplish this
                                                                                                                • Clarification on Zoho Forms 1-User Plan: Multiple Submitters and Approvers

                                                                                                                  Question Content (Copy–Paste Ready) Hello Zoho Team, I would like clarification regarding Zoho Forms pricing and user limits. I am planning to subscribe to the ₹700/month (1 user) plan. My use case is as follows: Only 1 person (myself) will create and
                                                                                                                • CRM Cadences recognise auto-responses

                                                                                                                  I have leads in a Cadence. I get an auto-responder reply "I'm out of the office..." Normally Cadences seems to know that isn't a real reply and keeps the lead enrolled in the cadence. However, today, Cadences has UNENROLLED a Lead who sent an auto-reponse
                                                                                                                • App for Mac OS X please!

                                                                                                                  It would be awesome to have a mail app for Mac OS X that included all the cool features such as steams, calendar, tasks, contacts, etc. Most people prefer native apps, rather than running it through a web browser. I know that we can use the IMAP, CalDAV,
                                                                                                                • Facing Issues with Sites Mobile font sizes

                                                                                                                  my page renediaz.com is facing issues mobile view, when i try to lower font sizes in home page, instead of changing the size, it changes the line space
                                                                                                                • Zoho Books Payroll

                                                                                                                  How am I supposed to do payroll and pay my employees with Zoho Books? I think it's pretty strange that an accounting software doesn't have the ability to perform one of the most common functions in business; paying your employees. Am I missing something,
                                                                                                                • Different Task Layouts for Subtasks

                                                                                                                  I was wondering how it would be possible for a subtask to have a different task layout to the parent task.
                                                                                                                • 60 Days Into Zoho - Tiktok Branding Startup -7 Questions?!

                                                                                                                  Wsp Everybody I co-own a TikTok Branding / Consulting Startup & have been using Zoho for the past 60 days - Am now looking to make our overall operations & processes more Efficient & Effective! Curious to know how others are using the platform & what's
                                                                                                                • Notifications in Cliq client for Linux

                                                                                                                  If I got it right, Cliq desktop client for Linux does not use the generally accepted notification method via org.freedesktop.Notification interface. For this reason, Cliq notifications do not look and behave as all other notifications. Is it possible
                                                                                                                • Canvas templates can now be shared with different CRM organizations

                                                                                                                  ----------------------------------------Moderated on 14th February, 2023------------------------------------------- Dear all, This feature is now open for all users in all DCs. To learn more about importing and exporting canvas templates, read our help
                                                                                                                • Unable to produce monthly P&L reports for previous years

                                                                                                                  My company just migrated to Books this year. We have 5+ years financial data and need to generate a monthly P&L for 2019 and a monthly P&L YTD for 2020. The latter is easy, but I'm VERY surprised to learn that default reports in Zoho Books cannot create
                                                                                                                • Change Last Name to not required in Leads

                                                                                                                  I would like to upload 500 target companies as leads but I don't yet have contact people for them. Can you enable the option for me to turn this requirement off to need a Second Name? Moderation update (10-Jun-23): As we explore potential solutions for
                                                                                                                • Drag 'n' Drop Fields to a Sub-Form and "Move Field To" Option

                                                                                                                  Hi, I would like to be able to move fields from the Main Page to a Sub-Form or from a Sub-Form to either the Main Page or another Sub-Form. Today if you change the design you have to delete and recreate every field, not just move them. Would be nice to
                                                                                                                • Passing Info from Function to Client Script

                                                                                                                  Hello, I have recently started making use of client script for buttons, allowing me to give the user information or warnings before they proceed. This is great. However, I have never quite managed to pass back any extra information from the function to
                                                                                                                • Reply to Email for SO/PO

                                                                                                                  Hello, We are new to Zoho Books and running into an issue. Our support@ email is our integration user. When our team is sending out PO/SO's we are updating the sender email, but for some reason many of our responses are coming back to our support@ email
                                                                                                                • ZOHO Payroll Canada

                                                                                                                  Any plans on the roadmap for Canada?
                                                                                                                • What's New in Zoho Billing | January 2026

                                                                                                                  Excited about the latest enhancements in Zoho Billing? Our January updates bring an intelligent AI assistant, smarter subscription management, and improved tax compliance, saving you time and reducing manual work. Dive into the details below to see how
                                                                                                                • Zoho Books Sandbox environment

                                                                                                                  Hello. Is there a free sandbox environment for the developers using Zoho Books API? I am working on the Zoho Books add-on and currently not ready to buy a premium service - maybe later when my add-on will start to bring money. Right now I just need a
                                                                                                                • Multi-currency and Products

                                                                                                                  One of the main reasons I have gone down the Zoho route is because I need multi-currency support. However, I find that products can only be priced in the home currency, We sell to the US and UK. However, we maintain different price lists for each. There
                                                                                                                • 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
                                                                                                                • ZOHO Writer Folders

                                                                                                                  Hi We would love to have ability to create folders on the left hand side. We would then be able create and store our documents within each folder Hope you can provide this feature soon ! dux.centra
                                                                                                                • COQL API in JS Widget only pulling 200 records

                                                                                                                  Hello! We've been building a custom homepage widget using the Zoho JS SDK, and it seems that this https://help.zwidgets.com/help/latest/ZOHO.CRM.API.html#.coql only allows 200 records. I thought the limit was 2000 for COQL queries, but am I mistaken?
                                                                                                                • How can Data Enrichment be automatically triggered when a new Lead is created in Zoho CRM?

                                                                                                                  Hi, I have a pipeline where a Lead is created automatically through the Zoho API and I've been trying to look for a way to automatically apply Data Enrichment on this created lead. 1) I did not find any way to do this through the Zoho API; it seems like
                                                                                                                • Do buttons and vba msgbox work on mobile, specifially the iPhone zoho sheets app?

                                                                                                                  In Zoho sheets on the web, I inserted a button and assigned a VBA macro to it. It pops up a msgbox with some text. When I go onto the iPhone mobile zoho sheets app, the button is there. When I click on that button, the spinning asterisk appears for a
                                                                                                                • Different form submission results for submitter and internal users

                                                                                                                  I'm looking for suggestions on how to show an external submitter a few results while sending internal users all the results from the answers provided by the external user. The final page of our form has a section with detailed results and a section with
                                                                                                                • Column letter from number

                                                                                                                  Hello, I am trying to select a cell and i have the column number. How do i do this or is there a way of getting the letter from the number? Thank you
                                                                                                                • Help Desk Services Solution

                                                                                                                  I am here looking for Help Desk services solution for organization. I also searched this on many different website and found many solutions. We are bit confused to which one to choose. One of my friend suggest me this platform, and i am hoping i will
                                                                                                                • Remove 'This is an automated mail from Zoho Sign' in footer

                                                                                                                  Hi there, Is it possible to remove or change the text under the e-mail templates? I can't figure out how to do that: Would love to hear from you. Kind regards, Tristan
                                                                                                                • Formatting and slow

                                                                                                                  Creating campaigns are difficult.  I'm fairly computer literate but some of the way Zoho Campaigns formatting works is painful.  Images fail to upload or are very slow. To top it off, syncing the contacts is a pain as well as temperamental links to create Segments. At this rate I'm afraid we might need to migrate back to Mailchimp.
                                                                                                                • Boost your Zoho Desk's performance by archiving tickets!

                                                                                                                  The longer your help desk operations are, the more likely it is to accumulate tickets that are no longer relevant. For example, ticket records from a year ago are typically less relevant than currently open tickets. Such old tickets may eventually lead
                                                                                                                • Paste emails to create segment

                                                                                                                  We are moving over from Mailchimp to ZOHO. However Mailchimp allows me to create a segment by pasting in emails from excel (or importing a .csv) can I do the same in Mailchimp?
                                                                                                                • Next Page