Building Extensions #3: Setting up the development environment and building extensions for Zoho Desk

Building Extensions #3: Setting up the development environment and building extensions for Zoho Desk

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.

Welcome back, Developers!

With our previous post on the basics of extensions and the scope of building them, we'd like to continue the momentum by discussing the process of actually building extensions for Zoho Desk. In this post, we'll address the technical prerequisites to develop extensions for Zoho Desk. We will also take you through the steps involved in creating and testing your extension.

The first step to build extensions for Zoho Desk is to download and install Node.js, followed by ZET (Zoho Extension Toolkit). ZET is the CLI tool offered by Zoho Desk that comes with a built-in http server to render the extension. It also enables you to build, test, validate, and package your extensions.

Setting up the development environment 

Installing Node.js 

You can install the Node.js runtime environment here (versions 7.1.0 and above are supported). Once you have installed Node.js, run the following command to verify it.

 $ node -v
 $ npm -v

Installing ZET CLI

Install ZET CLI, which enables you to build your extensions for Zoho products.
  • If you are a Mac/Unix user, run the following command to install ZET: 
 $ sudo npm install -g zoho-extension-toolkit
  • If you are a Microsoft Windows user, run the following command:
 $ npm install -g zoho-extension-toolkit
  • Use the following command to check the version:       
 $ zet -v
  • Use the help command to view all the available commands in ZET CLI and their usage.     
 $ zet -help

ZET commands:

init: Creates the skeleton of the extension project. It scaffolds the index file of your project with the necessary code to ease the development process.
run: Starts an https server in the current directory to serve the assets in it.
validate: Helps developers to ensure the extension is in alignment with the Zoho Desk guidelines.
pack: It will create ZIP file in the current directory to host extension's static assets in Zoho servers.


Building your extension 

Once the required development environment is set up, you are ready to build and test your extension. To start building your extension, you need to create a new project in ZET CLI.

Create a new project

Open your terminal and move to the directory under which you will be creating a new project for your extension.
  • Run the following command. This command will display the list of all Zoho Products for which extensions can be developed.
 $ zet init
  • Use the arrow keys to choose Zoho Desk and press Enter.    
 $ zet init
 ? Select the Zoho service for your widget and hit enter key (Use arrow keys)
 > Zoho Desk
   Zoho CRM
   YES 
  • You will be prompted for the Project Name.
  • Provide a project name and click EnterYou will have to choose Yes/No based on your need for module support.
Note: We will be discussing module support in detail in a separate post. If you are a beginner developing your first extension, you can choose No.

Now, the project directory with all the necessary folders, dependency code packages, and files will be created.

 D:\zet\projects>D:\zet\projects>zet init
 ? Select the Zoho service for your widget and hit enter key Zoho Desk
 ? Project Name demoproject
 Initializing project at: D:\zet\projects\demoprojects
 Installing NPM dependencies…
 Project Initialized D:\zet\projects\demoprojects
 Run the following commands:
 cd demoproject
 zet run



The image below represents the project's default folder structure. The widget.html file is the default widget created within the project. Let's test this extension using this sample widget.


Testing your extension

You need to perform the following steps to test your extension:
  1. Start server in your local host
  2. Activate development mode in Zoho Desk

Starting the server

To start the local host server, navigate to the newly created project's directory and execute the following command.

 $ zet run

The http server will start and be accessible through port 5000 of your local machine.

Activate development mode

  1. Log into your Zoho Desk account. 
  2. Click on the gear icon in the top right corner and go to the Setup page.
  3. Click Build Extensions under Developer space.
  4. Click the Enable Developer Mode button in the top right corner of the page.Developer mode will be enabled.
  5. Go to the Tickets module and open a ticket.
  6. Click the Extension icon to the right of the Ticket details page. The extension widget page will appear. 


We hope you found this post useful. Try it out and let us know your feedback! We really appreciate hearing from you.

Stay tuned!


See Also


<<Previous                                                                                                                                                                                                    Next>>

    Access your files securely from anywhere







                            Zoho Developer Community





                                                  Use cases

                                                  Make the most of Zoho Desk with the use cases.

                                                   
                                                    

                                                  eBooks

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

                                                   
                                                    

                                                  Videos

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

                                                   
                                                    

                                                  Webinar

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

                                                   
                                                    
                                                  • Desk Community Learning Series


                                                  • Meetups


                                                  • Ask the Experts


                                                  • Kbase


                                                  • Resources


                                                  • Glossary


                                                  • Desk Marketplace


                                                  • MVP Corner






                                                            Manage your brands on social media



                                                                  Zoho TeamInbox Resources



                                                                      Zoho CRM Plus Resources

                                                                        Zoho Books Resources


                                                                          Zoho Subscriptions Resources

                                                                            Zoho Projects Resources


                                                                              Zoho Sprints Resources


                                                                                Qntrl Resources


                                                                                  Zoho Creator Resources



                                                                                      Zoho CRM Resources

                                                                                      • CRM Community Learning Series

                                                                                        CRM Community Learning Series


                                                                                      • Kaizen

                                                                                        Kaizen

                                                                                      • Functions

                                                                                        Functions

                                                                                      • Meetups

                                                                                        Meetups

                                                                                      • Kbase

                                                                                        Kbase

                                                                                      • Resources

                                                                                        Resources

                                                                                      • Digest

                                                                                        Digest

                                                                                      • CRM Marketplace

                                                                                        CRM Marketplace

                                                                                      • MVP Corner

                                                                                        MVP Corner







                                                                                          Design. Discuss. Deliver.

                                                                                          Create visually engaging stories with Zoho Show.

                                                                                          Get Started Now


                                                                                            Zoho Show Resources


                                                                                              Zoho Writer Writer

                                                                                              Get Started. Write Away!

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

                                                                                                Zoho CRM コンテンツ






                                                                                                  Nederlandse Hulpbronnen


                                                                                                      ご検討中の方




                                                                                                            • Recent Topics

                                                                                                            • how to edit the converted lead records?

                                                                                                              so I can fetch the converted leads records using API (COQL), using this endpoint https://www.zohoapis.com/crm/v5/coql and using COQL filter Converted__s=true for some reasons I need to change the value from a field in a converted lead record. When I try
                                                                                                            • Auto Update Event Field Value on Create/Edit

                                                                                                              Hi there, I know this question has been posted multiple times and I've been trying many of the proposed similar scripts for a while now but nothing seems to work... what might I do wrong? The error I receive is this: Value given for the variable 'meetingId'
                                                                                                            • Pre-orders at Zoho Commerce

                                                                                                              We plan to have regular producs that are avaliable for purchase now and we plan to have products that will be avaliable in 2-4 weeks. How we can take the pre-orders for these products? We need to take the money for the product now, but the delivery will
                                                                                                            • Constant color of a legend value

                                                                                                              It would be nice if we can set a constant color/pattern to a value when creating a chart. We would often use the same value in different graph options and I always have to copy the color that we've set to a certain value from a previous graph to make
                                                                                                            • Zoho Pagesense really this slow??? 5s delay...

                                                                                                              I put the pagesense on my website (hosted by webflow and fast) and it caused a 5s delay to load. do other people face similar delays?
                                                                                                            • Payroll and BAS ( Australian tax report format )

                                                                                                              Hello , I am evaluating Zoho Books and I find the interface very intuitive and straight forward. My company is currently using Quickbooks Premier the Australian version. Before we can consider moving the service we would need to have the following addressed : 1.Payroll 2.BAS ( business activity statement ) for tax purposes 3.Some form of local backup and possible export of data to a widely accepted format. Regards Codrin Mitin
                                                                                                            • Problem with Email an invoice with multiple attachments using API

                                                                                                              I have an invoice with 3 attachments. When I send an email manually using the UI, everything works correctly. I receive an email with three attachments. The problem occurs when I try to initiate sending an email using the API. The email comes with only
                                                                                                            • Page Layouts for Standard Modules like CRM

                                                                                                              For standard modules like quotes, invoices, purchase orders, etc, it would be a great feature to be able to create custom page layouts with custom fields in Zoho Books similar to how you can in Zoho CRM. For example, and my current use case, I have a
                                                                                                            • Non-depreciating fixed asset

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

                                                                                                              I want to know if there is any individual module for fixed assets management
                                                                                                            • One time sale item in billing automatically detects as service

                                                                                                              if i have some items which i don't want to add in my "item" list because its sold only for one time. but when i type item name in invoice, it (system) automatically takes it as a service and despite of HSN , it shows SAC code to be entered. if its selectable i.e. either item or service , it would be very helpful and a must have feature.
                                                                                                            • Project template after project creation

                                                                                                              How can I apply a project template AFTER the project has been created?
                                                                                                            • convert the project to templet

                                                                                                              i have some deployment ME product for different customer , i need to create a fixed template for use it rather then keeping creating this template every time
                                                                                                            • Is there a notification API when a new note is addeding

                                                                                                              Trying to push to Cliq, or email notification when there's a new note added in module. How to implement this?
                                                                                                            • Seriously - Create multiple contacts for leads, (With Company as lead) Zoho CRM

                                                                                                              In Zoho CRM, considering a comapny as a lead, you need us to allow addition of more than one contact. Currently the Lead Section is missing "Add contact" feature which is available in "Accounts". When you know that a particular lead can have multiple
                                                                                                            • Related Module in Sharing Rules

                                                                                                              Zoho CRM team recently added the feature to filter records by Related Records It will be really beneficial if we can have this feature for Sharing Rules as well
                                                                                                            • Assignment Thresholds Resetting After Lead Conversion

                                                                                                              Hello everyone, We're facing an issue with Zoho CRM's lead assignment thresholds that makes them unsuitable for our workflow. I'm hoping to find a potential workaround or solution from the community. Here’s our current process: A new lead is created automatically
                                                                                                            • Vendor Signatures Needed for Purchase Orders

                                                                                                              Hello everyone, We have a unique requirement that necessitates that Vendors & Suppliers formally acknowledge our Purchase Orders upon receipt. I was hoping that there would be an option to do so in Zoho Books, but that does not appear to be the case.
                                                                                                            • Zoho CRM Analytics - Allow To Reorder Dashboards

                                                                                                              I would like to suggest that you add the ability to reorder dashboards in the Analytics Module. I can see that this has been requested some time ago, the latest 9 years ago. I am not sure if this is a big or small endeavor, but such a small fix can go
                                                                                                            • Territory view for custom modules?

                                                                                                              I have recently activated territories however I can't seem to find how to use territories for custom modules? These modules have territories:  Contacts /  Accounts / Opportunities These modules don't have territories:   Buildings (custom module) and 
                                                                                                            • Zoho Books - How to Invoke a Custom Function in Schedulers

                                                                                                              We have multiple schedulers that send emails to customers in batches. Currently, we are maintaining the same code across several schedulers. Is it possible to use a custom function inside a scheduler script? If yes, how can we invoke the custom function
                                                                                                            • Approval Process Comments

                                                                                                              Is it possible to view the comments entered during the approval or rejection of a record in the approval process? If not, is there a way to require a field to be completed upon approval or rejection?
                                                                                                            • Login for test case

                                                                                                              Had a few questions regarding authentication test cases and couldn't find an answer in the the docs. 1. If an app like Zoho Creator requires authentication before providing access, do I need to create a login function and add it to each test case? 2.
                                                                                                            • Zoho / Outlook Calendar sync

                                                                                                              The current Marketplace -> Microsoft -> Meetings integration needs 2 changes. 1. The current language for the Two-Way sync option should be changed. It currently states, "Sync both your Zoho CRM Calendar and Office 365 Calendar meetings with each other."
                                                                                                            • Please make it easier to Pause syncing

                                                                                                              right now it takes 3 clicks to get there. sounds silly, but can you make it just 2 clicks to get it done instead? thats how dropbox does it, 2 clicks to pause instead of 3.
                                                                                                            • Customer members area

                                                                                                              Does FSM support a customer members area? If not what do you propose we use if we want the data used in FSM for customers to give them an area / login to see past orders, create new orders and general announcements.
                                                                                                            • Zoho Books-Accounting on the Go Series!

                                                                                                              Dear users, Continuing in the spirit of our 'Function Fridays' series, where we've been sharing custom function scripts to automate your back office operations, we're thrilled to introduce our latest initiative – the 'Zoho Books-Accounting on the Go Series'.
                                                                                                            • Desktop app doesn't support notecards created on Android

                                                                                                              Hi, Does anybody have same problem? Some of last notecards created on Android app (v. 6.6) doesn't show in desktop app (v. 3.5.5). I see these note cards but whith they appear with exclamation mark in yellow triangle (see screenshot) and when I try to
                                                                                                            • Notes created in mobile can no longer be accessed in desktop

                                                                                                              Working with a 2013 Mac running OS 10.14.6; Desktop Notebook version 4.5.3. Using Motorola Moto G Power 5G - 2024; Android app version 6.7 I have been using Notebook for some years. Starting several weeks ago, the notes newly created ion the phone can
                                                                                                            • Function #49: Manage varying installment payments using Zoho Books

                                                                                                              . Hello everyone, and welcome back to our series! Last week, we discussed automating the collection of fixed installment payments in Zoho Books. But what if your payment structure involves charging varying percentages of the invoice total as installments?
                                                                                                            • Open Sans Font in Zoho Books is not Open Sans.

                                                                                                              Font choice in customising PDF Templates is very limited, we cannot upload custom fonts, and to make things worse, the font names are not accurate. I selected Open Sans, and thought the system was bugging, but no, Open Sans is not Open Sans. The real
                                                                                                            • Zoho Writer - Option to Export as .zdoc format

                                                                                                              I've noticed that it's not possible to export a Zoho Writer Document in the .zdoc format. Isn't zdoc, Zoho Writer's own format? My use case is that I sometimes need to create quite complex documents with floating elements, which sometimes need to become
                                                                                                            • Is it possible for contacts to "Re-enter" a workflow in Zoho Campaign?

                                                                                                              We are currently working on a way to automatically add users to from one list to other lists based on specific criteria, but can't seem to find a native way of doing this so we are trying to use Workflows to do this. So, for example, if a user's status is set to "Active," then they should be added to the list "Active Users." If the same user's status is then set to "Paused," they should be added to the list "Paused Users" and removed from the list "Active Users." This works fine for the first go
                                                                                                            • Bulk upload images and specifications to products

                                                                                                              Hi, Many users have asked this over the years and I am also asking the same. Is there any way in which we can bulk upload product (variant) images and product specifications. The current way to upload/select image for every variant is too cumbersome.
                                                                                                            • Out of Office for Just One of My Alias Email

                                                                                                              Can I set up the Out of Office Reply for Just One of my Alias Email Addresses?
                                                                                                            • Can I map multiple Surveys into the CRM using the same fields?

                                                                                                              Hello, We are a healthcare practice that offers two distinct services (Nutrition and Primary Care). We use Zoho Survey for our lead generation form (Get Started Survey), which allows people to express interest in one of the two services and even allows
                                                                                                            • Dealing with API responses where integers have more than 16 digits

                                                                                                              Hi there How do I deal with an api response contaning an int or float with more than 16 digits (before any decimal places for a float). I constantly receive the response "Unable to cast the 'BigInteger' value into a 'BIGINT' value because the input is
                                                                                                            • To Zoho customers and partners: how do you use Linked Workspaces?

                                                                                                              Hello, I'm exploring how we can set up and use Linked Workspaces and would like to hear from customers and partners about your use cases and experience with them. I have a Zoho ticket open, because my workspace creation fails. In the meantime, how is
                                                                                                            • [Webinar] Automate sales and presales workflows with Writer

                                                                                                              Sales involves sharing a wide range of documents with customers across the presales, sales, and post-sales stages: NDAs, quotes, invoices, sales orders, and delivery paperwork. Generating and managing these documents manually slows down the overall sales
                                                                                                            • Can't change form's original name in URL

                                                                                                              Hi all, I have been duplicating + editing forms for jobs regarding the same department to maintain formatting + styling. The issue I've not run into is because I've duplicated it from an existing form, the URL doesn't seem to want to update with the new
                                                                                                            • Next Page