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

          Zoho Developer Community




                                    Zoho Desk Resources

                                    • Desk Community Learning Series


                                    • Digest


                                    • Functions


                                    • Meetups


                                    • Kbase


                                    • Resources


                                    • Glossary


                                    • Desk Marketplace


                                    • MVP Corner


                                    • Word of the Day



                                        Zoho Marketing Automation


                                                Manage your brands on social media



                                                      Zoho TeamInbox Resources

                                                        Zoho DataPrep Resources



                                                          Zoho CRM Plus Resources

                                                            Zoho Books Resources


                                                              Zoho Subscriptions Resources

                                                                Zoho Projects Resources


                                                                  Zoho Sprints Resources


                                                                    Qntrl Resources


                                                                      Zoho Creator Resources



                                                                          Zoho Campaigns Resources


                                                                            Zoho CRM Resources

                                                                            • CRM Community Learning Series

                                                                              CRM Community Learning Series


                                                                            • Kaizen

                                                                              Kaizen

                                                                            • Functions

                                                                              Functions

                                                                            • Meetups

                                                                              Meetups

                                                                            • Kbase

                                                                              Kbase

                                                                            • Resources

                                                                              Resources

                                                                            • Digest

                                                                              Digest

                                                                            • CRM Marketplace

                                                                              CRM Marketplace

                                                                            • MVP Corner

                                                                              MVP Corner





                                                                                Design. Discuss. Deliver.

                                                                                Create visually engaging stories with Zoho Show.

                                                                                Get Started Now


                                                                                  Zoho Show Resources


                                                                                    Zoho Writer Writer

                                                                                    Get Started. Write Away!

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

                                                                                      Zoho CRM コンテンツ






                                                                                        Nederlandse Hulpbronnen


                                                                                            ご検討中の方





                                                                                                  • Recent Topics

                                                                                                  • Getting The Following Error.. 550 5.4.6 Unusual sending activity detected

                                                                                                    I just launched a marketing campaign and I got this error. Everything was working fine previously. This is a big launch so need to fix it asap. Can anyone help?
                                                                                                  • Printing on 80mm bluetooth Pos Printer

                                                                                                    Hello. I am trying to print receipts and invoices using my 80mm bluetooth connectivity Pos printer. I have configured the Templates to Retail so that it matches the paper width of the Pos printer. However, when I click Print in zoho, first it opens the
                                                                                                  • Trying to integrate gmail but google keeps blocking Zoho access for integration??

                                                                                                    hi i am trying to integrate a gmail account so can track/access business emails this way. I have followed the instructions but after selecting my email account it gets re-routed to this message (screengrab below) Can anyone advise a way around this or
                                                                                                  • Which attribute in Zoho books invoice api represent branch attached to the invoice?

                                                                                                    Hi Zoho Team, We have done the integration with Zoho Books API. While fetching data from Invoice API we want to get branch value attached to the invoice. We could not figure out which field in "Get an Invoice" api represents branch value attribute. Thanks
                                                                                                  • How to Billed from two different GST Numbers

                                                                                                    How to Billed from two different GST Numbers. Suppose ABC & Co had GST registration in Delhi and Haryana and Zoho account is created with Delhi GST Registration number. Now i also want to issue invoice from Haryana GST Registration number. How can i proceed ?
                                                                                                  • How to hide Predefined views

                                                                                                    Hi, I would like to know how to hide: Predefined views and Recent views or some records from this list. If I'm using it form iPad I have to scroll to see User created views. Or maybe it's possibility to move User created views on the top. All the best,
                                                                                                  • Deleting Views

                                                                                                    How do you delete views? Please syd
                                                                                                  • Fixed Assets

                                                                                                    Where would I manage my fixed assets
                                                                                                  • Report on Assets

                                                                                                    Hi,  Is it possible to report purchased assets on a specific year? The Balance Sheet shows everything up to the current date, and the expense reports will not show purchased assets because they are assets not expenses. If it is not possible, then is it possible to setup an API connection with Books to extract data from to another Reporting application?
                                                                                                  • Purchase of Fixed Assets

                                                                                                    How can I record the purchase of assets using zoho books? For example, I purchased 4 laptop for 100000 $ each and paid it through my bank account. How can I record this transaction and maintain track of how much of the assets I bought?
                                                                                                  • Where is the Fixed Asset Register?

                                                                                                    I am a Zoho One user for 18 months, using invoicing and CRM and now ready to migrate my books to Zoho Books. Where do I keep the fixed asset register for the equipment that I use in my business? I have a service based business with a lot of gear and business
                                                                                                  • Kaizen #168 - Incremental Authorization

                                                                                                    Welcome to this week's post in the Kaizen series. In this post, we will discuss Incremental Authorization. What is Incremental Authorization? Incremental Authorization is an OAuth strategy that allows a client to request specific authorization scopes
                                                                                                  • Configure Notes Title for Blueprint Transition

                                                                                                    It'd be very helpful to be able to configure note titles on blueprint transitions when requiring notes. This would help tie back the history of notes to the blueprint actions. We have some approval processes in our blueprint and require notes for the
                                                                                                  • An update to improve email delivery | Email Authentication & Relay

                                                                                                    Dear Zoho Recruit Community, We hope this message finds you well. This post is to inform you about an important update regarding the authentication of all email domains in your Zoho Recruit account. Effective 31st December, 2024, emails sent using email
                                                                                                  • Stop adding Default ID column to xls exports

                                                                                                    When anything is exported to xls, Zoho adds a column with an ID.  WE DO NOT WANT THIS COLUMN.  We use an automated report to a team.  We have our own tracking number.  1. This makes the report messy, it just pushes OUR data off to the right.  2. We have
                                                                                                  • Zoho cases and remote work api

                                                                                                    How to use zoho cases listing api? When i try to hit the endpoint specified in the docs , i get the error : the page you are looking for does not exist with a 401.
                                                                                                  • Calendly does not show scheduled Meetings

                                                                                                    I use Calendly as my standard booking tool, but no matter what I am doing, Calendly shows any appointment as free (when in fact there already is an appointment in CRM Calendar or Zoho Calendar). Drives me nuts - cannot go away from Calendly due to various
                                                                                                  • I want the currency in my account to be Mexican pesos.

                                                                                                    Hello, I am a Mexican citizen and live in Ukraine. When I registered to your system, it was seen that I was from Ukraine, so the default currency is Euro. This is causing me a problem. Please change the standard currency in my account to Mexican Pes
                                                                                                  • Year-End Wrap: Don't rewrite - Switch to Email Templates

                                                                                                    As we're half-way through December, now is the perfect time to start sending out festive greetings. Whether it is to your clients or your team, it is important that every mail is tailored to the recipient and feels genuine, which allows you to make better
                                                                                                  • Elevating Email Security on Zoho Desk: DKIM Now Mandatory

                                                                                                    Hello Zoho Desk Users! It has been a wonderful journey with you on Zoho Desk. As we prepare to welcome 2025, we are strengthening our efforts to ensure a secure and seamless experience for you. To enhance email security, DKIM configuration will be mandatory
                                                                                                  • How to view shared mailbox in Outlook

                                                                                                    How to view shared mailbox in Outlook or in another software
                                                                                                  • Necesito el código ZB para mi cuenta

                                                                                                    Hice cambio de servidor y no encuentro el codigo unico de cname.
                                                                                                  • Privacy error

                                                                                                    Privacy error on Chrome for all embedded forms and reports, this is a huge issue: "Your connection is not private Attackers might be trying to steal your information from creator.zohopublic.com (for example, passwords, messages, or credit cards). NET::ERR_CERT_COMMON_NAME_INVALID"
                                                                                                  • Automate Backups

                                                                                                    This is a feature request. Consider adding an auto backup feature. Where when you turn it on, it will auto backup on the 15-day schedule. For additional consideration, allow for the export of module data via API calls. Thank you for your consideration.
                                                                                                  • Customise Search Bar in CRM

                                                                                                    Is there a way to customise this search bar in the CRM to add fields?
                                                                                                  • Counting downloads of a file

                                                                                                    Hello Could anyone help me, I would like to use a custom script to count how many times a file contained in a record has been downloaded. Is that something that is possible in Creator? Thanks Estelle
                                                                                                  • Is there any way to prevent emails from being sent from zoho crm without pressing email opt out?

                                                                                                    When I left my desk yesterday I excitedly thought I had fixed my problem, by making use of the "Inactive" field ... However after contacting the support chat, they have advised to stop emails being sent I need to update the "Email Opt Out" field - which
                                                                                                  • New Search Function

                                                                                                    Hey Team, The search function updated in our CRM about a week ago, so I assume it was an automated update across Zoho. It no longer displays leads/deals etc in Chronological order so that the most recently created or updated is the first to display which
                                                                                                  • New permissions for accessing emails sent via Zoho CRM

                                                                                                    Last modified on Nov 4, 2024: Permissions for accessing emails sent via Zoho CRM have now been extended to the IN DC. With this rollout, the feature is now available to all users across all DCs. Resources: Data sharing for emails, Configuring email compose
                                                                                                  • is it possible to add more than one Whatsapp Phone Number to be integrated to Zoho CRM?

                                                                                                    so I have successfully added one Whatsapp number like this from this User Interface it seems I can't add a new Whatsapp Number. I need to add a new Whatsapp Number so I can control the lead assignment if a chat sent to Whatsapp Phone Number 1 then assign
                                                                                                  • Request for Alerts on Workflow and Function Changes.

                                                                                                    I want to get an alert whenever a new workflow or function is added or an existing workflow or function is edited. Is there any way to do that? I need to log all changes whenever updates are made or new ones are added.
                                                                                                  • Transfer Amount from One Vendor to Another Vendor

                                                                                                    One of the vendors, who has a balance with us, has closed the business and has started a new business; Now he wants me to transfer the outstanding from the old account to the new Vendor Account. I am trying to do this using Payment Settlement a/c, But
                                                                                                  • How to make Branch compulsory in Zoho Books invoice?

                                                                                                    How I make Branches compulsory in Zoho Books invoice?
                                                                                                  • Regarding GST Report Issue in Zoho Books

                                                                                                    Hi, Right now, the very important point from my end is this Zoho Books issue. Here, you can see that we have created the invoice with the items of account sales and expenses. The journal is also correct. The profit and Loss statement is also correct.
                                                                                                  • Default Ship To Address on Purchase Orders cannot be different than Organization Address

                                                                                                    Our organization address is not where we want shipments delivered, it is just a mailing address. We would like to change the Ship To address on our PO's so that by default it is our warehouse (not the mailing address). I understand that when creating
                                                                                                  • Function #57: Automatically group items in invoices based on categories

                                                                                                    Hello everyone, and welcome back to our series! As a business expands and new product lines are launched, it becomes important to organize the items for better inventory management. The Category field in Zoho Books helps here by allowing you to add and
                                                                                                  • Differences between Zoho Books and Zoho Billing

                                                                                                    Without a long drawn out process to compare these. If you were looking at these Books and Billing, what made you opt for one and not the other. Thanks
                                                                                                  • unable to import transactions into zoho books

                                                                                                    I download a csv with separate columns for deposit and withdraw. The sample has zero's in the blank spaces so I ensure mine does too. When I try to import it says the fields must have values greater than zero.
                                                                                                  • Zoho Forms Unable to Save Account Numbers with a Leading Zero

                                                                                                    We are using Zoho Forms to for rental applications. It is working well, except for one thing:  when a user enters their bank account information, and that account number actually starts with a ZERO (like 00123456) the Zoho form will return the value without
                                                                                                  • How to include GST% in PO amount?

                                                                                                    Currently when I raise PO, the basic price of the item is used. However, the GST is not calculated and added along with the basic amount. I have added a Custom field for GST in the PO but I need Zoho Inventory to calculate the GST amount and add it with the Basic price to give me the final PO price.
                                                                                                  • Next Page