Building Extensions #11: Creating widgets with the JS SDK bundle in Zoho Desk - Event API

Building Extensions #11: Creating widgets with the JS SDK bundle in Zoho Desk - Event 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 Data Storage APIs, their use in extensions, and how to use them in your Zoho Desk extensions. This post will briefly explain the next set of APIs in the JS SDK bundle, Event APIs, and show when and how to use them within Zoho Desk extensions.

Event APIs 

The extension you're intending to build may require you to perform an action upon the occurrence of a particular event in your Desk portal. In order to trigger that action in Zoho Desk, your extension needs to listen to those event occurrences. The Zoho Desk platform provides Event APIs, which is an SDK method that helps you incorporate custom functionalities in your extension when certain events occur in your Zoho Desk portal. The events can be both ticket- and call-related.
  • Ticket events: You can configure extensions to receive information when an event, such as adding a comment to a ticket or opening a different ticket, occurs on the ticket detail page.
  • Call events: You can configure extensions to receive information when a call-related event occurs in your help desk portal.
There are multiple events available both in ticket events and call events. Whenever a particular event occurs, the parameter (Event API) for that event is used to broadcast information from Zoho Desk. The information from that event can then be processed in your extension using other APIs based on your business needs. Every event can be invoked from multiple locations in Zoho Desk; the details of the locations supported by every event and the parameter to be passed to invoke the events are listed here.

Scenario: Let's say you're using Zoho Desk to handle your technical support queries and Zoho Projects to manage your internal tasks. Here, we'll explain a simple use case where an extension could create a task in Zoho Projects automatically whenever the ticket classification of a ticket is changed in Zoho Desk. In this instance, we'll say you classify a ticket as 'problem' in Zoho Desk and get a task created for that ticket in Zoho Projects automatically. Let's see how the Events API can be used to achieve this simple use case in your extension.
 
When an agent triggers an event change in Zoho Desk, the Event API broadcasts the information about the event's occurrence from that ticket and can be fetched for further processing. To create a task in Zoho Projects, you can use Request API to invoke the Create Task API of the Zoho Projects. If you need additional information from the ticket while creating a task, you can use the Data API to get those details.
 
Below are the steps involved to implement this use case:
  • Create a connection in Zoho Sigma with required scopes
  • Create a task in Zoho Projects using the required JS SDK methods
    • Events API: Listen to the event
    • Data API: Fetch required ticket details for creating a task in Projects
    • Request API: Invoke Create Task API in Projects

Creating a connection 

To build this extension, you must establish a connection between Zoho Desk and Zoho Projects with the required scopes. This will allow you to facilitate communication between these two services by invoking their APIs. Please check the Connectors post to learn more about creating connections. Once the connection is established, perform the following in the plugin-manifest.json file and save the file.
  1. Paste the JSON code copied from Sigma in zohoAuthorization
  2. Provide the Zoho Projects base URL (https://projectsapi.zoho.com) in whiteListedDomains
The plugin-manifest file with the connection and whitelisted domain details:
{
    "locale": ["en"],
    "service": "DESK",
    "storage": false,
    "type": "personal",
    "whiteListedDomains": ["https://projectsapi.zoho.com"],
    "modules": {
        "widgets": [
            {
                "location": "desk.ticket.detail.rightpanel",
                "url": "/app/widget.html",
                "name": "Desk Extension",
                "logo": "/app/img/logo.png",
                "icon": "/app/img/icon.png"
            }
        ]
    },
    "cspDomains": {
        "connect-src": []
    },
    "zohoAuthorisation": {
        "type": "connectors",
        "connectionLinkName": "deskproject",
        "connectionName": "DeskProject",
        "serviceName": "zlabs_integration",
        "userAccess": true,
        "isUserDefinedService": false,
        "sharedBy": "696258884",
        "scope": [
            "Desk.tickets.ALL",
            "ZohoProjects.projects.ALL",
            "ZohoProjects.tasklists.ALL",
            "ZohoProjects.tasks.ALL",
            "ZohoProjects.events.ALL",
            "Desk.basic.ALL",
            "ZohoProjects.tags.ALL",
            "ZohoProjects.status.ALL",
            "ZohoProjects.portals.ALL"
        ]
    },
    "connectors": [],
    "config": [],
    "moduleSupport": false
}

Creating a task in Zoho Projects 

Below are the code snippets of different APIs that are used in this extension. The Event API will get triggered whenever the ticket classification is changed by the agent. You need to fetch the response from the broadcasted message and check the value of the ticket classification. According to our use case, we need to create a task if the classification is "problem," so the Request API is called for the same.
 
App.instance.on("ticket_classification.changed", function (data) {
                        classif = data["ticket.classification"];
                        if (classif == "Problem") {
                            
ZOHODESK.request({url: "https://projectsapi.zoho.com/restapi/portal/" + xxx + "/projects/" + yyy + "/tasks/?name=" + encodeURI(ticketSub) + "&description=" + encodeURI(x) + "&priority=" + ticketPriority,
                                headers: {
                                    "Content-type": "application/json",
                                },
                                type: "POST",
                                data: {},
                                connectionLinkName: "deskproject",
                                postBody: {},
                                contentType: "application/json",
                            })
                                .then(function (response) {
                                    var resultparse = JSON.parse(response);
                                    var resultparse2 = JSON.parse(resultparse.response).statusMessage;
                                    var aaa = JSON.stringify(resultparse2);
                                })
                                .catch(function (err) {
                                    console.log(err);
                                });
                        }
                    });
 
All the required ticket details, including the ticket ID, subject of the ticket, ticket description, and the priority status of the ticket are fetched using the Data APIs and passed to the Zoho Projects API. This information will be filled in within the task that is being created.
 
ZOHODESK.get(["ticket.id", "ticket.subject", "ticket.description", "ticket.priority"])
                        .then(function (res) {
                            var result = res.data;
                            var a = JSON.stringify(result);
                            console.log(a);
                            ticketID = result["ticket.id"];
                            ticketSub = result["ticket.subject"];
                            ticketDesc = result["ticket.description"];
                            ticketPriority = result["ticket.priority"];
                            x = ticketDesc.replace(/<[^>]+>/g, "");
                            ticketNumber = result["ticket.number"];
                        })
                        .catch(function (err) {});
 




In this example (full code given below), we have given you a clear picture on when and how to use the Event APIs in building extensions for Zoho Desk. Though other APIs are used too, the core of this extension is triggering an action on the occurrence of an event, which is done by the Event API.
 


While invoking the Zoho Projects API, you would have noticed that the Create Task API takes two important parameters, namely PortalID and ProjectID. These are specific to users; they are needed to decide for which project the task should be created. You may wonder how this should be handled in your extension development. We have config params to help you in such scenarios.
 
We'll discuss the usage of config params in our following post. Stay tuned !
 

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

                                                                                                                • Add Bounced as an Email Action / Notification for Bounced Emails

                                                                                                                  This is one of the hard requirements for the clients we're servicing. They want to get an internal email notification whenever the email they sent to their contacts have bounced, so that they can look into it and update the email address. Currently, the
                                                                                                                • Files Uploaded to Zoho WorkDrive Not Being Indexed by Search Engines

                                                                                                                  Hello, I have noticed that the files I upload to Zoho WorkDrive are not being indexed by search engines, including Google. I’d like to understand why this might be happening and what steps I can take to resolve it. Here are the details of my issue: File
                                                                                                                • not able to convert pdf to jpg and other forms and vice versa.

                                                                                                                  i want to change my pdf to jpg, word, etc and some times jpg to pdf. i don't know how to do in this.
                                                                                                                • What’s New in Zoho Analytics - March 2026

                                                                                                                  Hello Users! In this month's update, we bring improvements across integrations, security, reporting, and analytics capabilities to help you work with your data more efficiently and with greater control. Explore what’s new and see how these enhancements
                                                                                                                • Zoho People > Performance Management > Appraisal cycle

                                                                                                                  Hello All I am using this 2 users to test out how it work on Performance Management User 1 - Reportee User 2 - Reporting Manager : Li Ting Haley User 1 : Self Appraisal Error How do i fix this error?
                                                                                                                • SalesIQ Tip for Admins: Guide Operators in Real-time Without Interrupting the Chat

                                                                                                                  Consider this. You're a supervisor and you're looking through the active conversations. An associate is mid-chat with a high-value prospect. The prospect asks something unexpected, maybe about a tailor-made subscription plan or a bulk discount that’s
                                                                                                                • Early Access: Check Printing in Zoho Books

                                                                                                                  Hello Everyone,   Are you constantly writing checks to pay your vendors?   We've got a great news to share with you! You can now pay your vendors by writing and printing a check directly from Zoho Books. The feature is ready and we'll be rolling it out to our customers in phases.  It is available in the  US Edition of Zoho Books and also in the Global edition, where the country is selected as USA and the currency is USD.   Here’s a summary of what’s possible:   1. Write and print a check. 2. Make
                                                                                                                • Connecting Zoho Inventory to ShipStation

                                                                                                                  we are looking for someone to help connect via API shipStation with Zoho inventory. Any ideas? Thanks. Uri
                                                                                                                • Syncing zoho books into zoho crm

                                                                                                                  I was wondering how I can use zoho books in crm as I have been using them separately and would like to sync the two. Is this possible and if so, how? Thanks
                                                                                                                • Zoho no support response.

                                                                                                                  Problem is Zoho support seems to be just a concept. Just completing my trial, am ready to purchae 3 user subscriptions pending answer to a question, submitted two suport request during my trial that weren't responded to. Gave up trying the 888 line. Hard to imagine my production data in hosting environment with no support response.
                                                                                                                • Updating transaction number series for fiscal year 2026-2027 in Zoho POS

                                                                                                                  A fiscal year or financial year is a 12-month period that businesses follow to manage and track their financial activities such as expenses, revenue, and taxes. This doesn't need to match the calendar year (JAN-DEC) and varies based on region, and tax
                                                                                                                • Lack of Looping and Carry-Forward Functionality in Zoho Survey

                                                                                                                  Zoho Survey currently does not support looping or carry-forward functionality, meaning it is not possible to dynamically generate follow-up questions based on each option selected in a previous question or to pipe selected responses (such as {Looping
                                                                                                                • Forecast in Zoho CRM Just Got Smarter with an upgraded Zia Intelligence

                                                                                                                  Hello Everyone, We are here with an interesting enhancement to Forecasts in Zoho CRM — Enhanced Zia Insights for your sales Forecast. Imagine a regional sales manager reviewing their team’s performance using forecasts in Zoho CRM. Instead of switching
                                                                                                                • Update TDS and TCS rates for Income Tax Act, 2025 (effective April 1, 2026)

                                                                                                                  Hello everyone, The Income-tax Rules, 2026 (G.S.R. 198(E), dated March 20, 2026) have been notified, marking a significant structural shift in India’s direct tax framework. From April 1, 2026, the Income Tax Act, 2025 replaces the Income Tax Act, 1961.
                                                                                                                • Service line items

                                                                                                                  Hello Latha, Could you please let me know the maximum number of service line items that can be added to a single work order? Thanks, Chethiya.
                                                                                                                • Automation Series: Auto-assign Resources as Task Owners

                                                                                                                  In Zoho Projects, task ownership can be set automatically during task creation, allowing resources to be assigned based on the task name. Resources are work equipment or tools added to the portal to monitor their usage across projects. They can be assigned
                                                                                                                • Subform edits don't appear in parent record timeline?

                                                                                                                  Is it possible to have subform edits (like add row/delete row) appear in the Timeline for parent records? A user can edit a record, only edit the subform, and it doesn't appear in the timeline. Is there a workaround or way that we can show when a user
                                                                                                                • AI secretary

                                                                                                                  In our company, Claude is the secretary and creates inquiries and schedules from Gmail. You no longer have to enter them yourself. The secret is that we created an MCP server that connects to CRM. https://x.com/Mac_nishio/status/1917954562566328694
                                                                                                                • 5 small changes to Recruit that make a big difference

                                                                                                                  Sometimes, the biggest improvements aren’t new features, they’re small changes that make everyday actions feel smoother. Over the past few weeks, we’ve made a few such updates across Zoho Recruit. They’re subtle, but together, they remove friction from
                                                                                                                • Project Management Bulletin: March, 2026

                                                                                                                  We are passionate about equipping our users with efficient solutions that help them run their businesses successfully. Our collective efforts over the past 2 years have culminated in the launch of Sprints 3.0— built with reliable features, impactful integrations,
                                                                                                                • New security enhancements for portal users: MFA and password management

                                                                                                                  Hello everyone, We are excited to announce three major security enhancements that are now available to portal users in Zoho CRM: Organization-wide multi-authentication for portal users - Admins can enforce multi-factor authentication across the entire
                                                                                                                • [Free Webinar] Learning Table Series 2026 – Customer agreement & contract management using Zoho Creator

                                                                                                                  Hello everyone, We’re excited to announce the next session in Learning Table Series 2026, where we will continue with our purpose-driven approach—focusing on how Zoho Creator’s features help solve real-world business challenges. Each session in this series
                                                                                                                • Zoho Payroll's USA and KSA editions are available in Zoho One!

                                                                                                                  Greetings! We’re excited to share that Zoho Payroll, currently available only in India and the UAE, is now introducing the KSA (Kingdom of Saudi Arabia) edition and the USA (United States of America) edition, and these editions are now available in Zoho
                                                                                                                • Looking for Guidance on Building a Zoho Website

                                                                                                                  I'm exploring the possibility of building a custom website with specific features using Zoho as an alternative platform. My goal is to create something similar to https://gtasandresapk.com , with the same kind of functionality and user experience. I'd
                                                                                                                • Multilingual website feature

                                                                                                                  Would be a great feature to have. I saw that this feature was available for backstage. I think it could be done for zoho sites too.
                                                                                                                • [Webinar] Modernize your sales engine with agentic analytics

                                                                                                                  Traditional sales decision-making methods aren't cut out for modern businesses. Leveraging AI in sales helps businesses actively respond to the changing dynamics of the market. Agentic AI is letting sales teams across industries make better decisions
                                                                                                                • Built-in Date Functions in Zoho Analytics Query Tables

                                                                                                                  I have a doubt about whether Zoho Analytics Query Tables provide built-in functions for start date, end date, and the current month
                                                                                                                • Zoho Commerce in multiple languages

                                                                                                                  When will you be able to offer Zoho Commerce in more languages? We sell in multiple markets and want to be able to offer a local version of our webshop. What does the roadmap look like?
                                                                                                                • Nimble enhancements to WhatsApp for Business integration in Zoho CRM: Enjoy context and clarity in business messaging

                                                                                                                  Dear Customers, We hope you're well! WhatsApp for business is a renowned business messaging platform that takes your business closer to your customers; it gives your business the power of personalized outreach. Using the WhatsApp for Business integration
                                                                                                                • Connectivity issues with Google Calendar and third-party integrations

                                                                                                                  Description: We are currently experiencing a critical failure with Zoho CRM third-party connections. This issue is heavily affecting our primary workflow. Symptoms: Sync Failure: Existing Zoho CRM to Google Calendar connections have been failing for approximately
                                                                                                                • Dynamic image in form works in the app but not on the customer portal.

                                                                                                                  img = frm_Fichas[ID == input.Nombre].Foto; imgno = Nophoto[ID2 = 1].Image; if(len(img) > 1) { img = img.replaceAll("/sharedBy/appLinkName/",zoho.appuri); img = img.replaceAll("viewLinkName","Fichas_de_personal_public"); img = img.replaceAll("fieldName","Foto");
                                                                                                                • Incorrect Functioning of Time Logs API (Version 3)

                                                                                                                  We need to fetch the list of time logs for each task for our company internal usage. We are trying to achieve it by using the next endpoint: https://projects.zoho.com/api-docs#bulk-time-logs#get-all-project-time-logs Firstly, in the documentation the
                                                                                                                • How can I export all Deluge code across the application?

                                                                                                                  I’m working on a application with multiple forms, reports, and HTML views, where Deluge scripts are used across workflows, field actions, and custom functions. Is there a way to export all Deluge scripts into a single file for easier search?
                                                                                                                • First Name in Mail

                                                                                                                  While sending a mail/message to the user, I want only the first name to be displayed—for example: “Hi John” instead of the full name using "Hi ${Name_Field}"
                                                                                                                • Can you import projects into Zoho Projects yet?

                                                                                                                  I see some very old posts asking about importing project records into Zoho Projects. But I can't find anything up to date about the topic. Has this functionality been added? Importing tasks is helpful. But we do have a project where importing projects
                                                                                                                • Updating Sales orders on hold

                                                                                                                  Surely updating irrelevant fields such as shipping date should be allowed when sales orders are awaiting back orders? Maybe the PO is going to be late arriving so we have to change the shipment date of the Sales order ! Not even allowed through the api - {"code":36014,"message":"Sales orders that have been shipped or on hold cannot be updated."}
                                                                                                                • Zoho Social API for generating draft posts from a third-party app ?

                                                                                                                  Hello everyone, I hope you are all well. I have a question regarding Zoho Social. I am developing an application that generates social media posts, and I would like to be able to incorporate a feature that allows saving these posts as drafts in Zoho Social.
                                                                                                                • Deleting unwanted ticket replies

                                                                                                                  Hello, In a Zoho Desk Ticket thread, sometimes one of the recipients has auto-reply activated. This creates a new message in the Ticket thread that not only pollutes the thread, but most importantly cannot be replied properly because usually auto-reply e-mails don't do "reply all", so the other recipients are not included. I want to delete such a message in the Ticket thread. I searched the help of Zoho Desk, but only found a way to mark as Spam (https://help.zoho.com/portal/kb/articles/marking-support-tickets-as-spam)
                                                                                                                • Issue updating Multi-Select Picklist via API (saves as string instead of checking boxes)

                                                                                                                  Hi everyone, I'm hoping someone can point out what I'm doing wrong here. I'm stuck trying to update a custom multi-select field via the Desk API and it's driving me a bit crazy. I have a multi-select picklist called "Buy years" with options like 2023,
                                                                                                                • Page variable not receiving URL parameter in Creator 6 HTML snippet Deluge — Canada DC

                                                                                                                  I have a Creator 6 app on Canada DC. I'm trying to pass a URL parameter to an HTML snippet page via Deluge but the variable always returns empty. Setup: Page: MYC_Meeting_Tool Page variable declared: submission_id, type Text Page Script tab contains:
                                                                                                                • Next Page