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

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

The Zoho Desk platform supports custom fields. The custom fields can be introduced using an extension. The Zoho Desk platform supports this capability through resources.json found in the plugin-manifest file and the Resources API offered in the JS SDK bundle.
 
In this forum post, we'll explore the Resources API in detail with an example of creating custom fields. Other resource types offered by the Zoho Desk platform include webhooks, custom permissions, and channel connectors; we'll talk about these individually in our upcoming forum posts.

Need for custom fields 

There are various scenarios that may call for custom fields. Without creating an exhaustive live, here are a few scenarios in which you may need custom fields in Zoho Desk:
  • You might have to accommodate data from integrated third-party applications inside Zoho Desk. In such cases, you can add custom fields to help with this.
  • Your extension functionality may require some new fields to be available in the Zoho Desk modules. E.g., a few additional fields in your Tickets or Customers modules. In such scenarios, you would add a custom field to the desk modules.
  • You may want to provide agents with some additional information about the customer in the ticket's property section. You can add custom fields and pre-populate them with the relevant information.

Defining custom fields 

The custom fields are to be included in Zoho Desk by defining them in the resources.json of the plugin-manifest file. Below is the structure of the resources.json with sample data filled in.
      ...
      {
          "fields": [{
              "resourceName": "field1",
              "module": "tickets",
              "displayLabel": "Counter",
              "type": "Text",
              "defaultValue" : "none",
              "maxLength": "100"
          }]
      },
      ...
 
Every field you create should have a unique identifier that is defined using the mandatory resourceName key. The resourceName(s) specified in resources.json should be unique across the extension and will be validated before the extension is made available on the Zoho Marketplace. The resourceName also serves as the unique identifier across all organizations that install your extension. The new custom fields will be automatically mapped to the default layout configured for a department, so there is no need to pass the layoutId key anywhere else in the extension code.

Any field you include in your extension will be added to the user's Zoho Desk portal on the very first installation of the extension, while subsequent installations map to the fields already created. The fields are deleted from the portal on the last uninstallation of the extension. You can include a maximum of 10 custom fields in an extension.

Using custom fields in extensions 

The resourceName defined in the resources.json file is automatically mapped with an ID and an apiName, which can be used in the APIs related to the resource as required. You need to retrieve the ID and/or the apiName of a resource to be used in the API calls of your extension.
 
To retrieve this, you can use one of the following approaches:
  • Using merge fields in the invoke API
  • Using the client SDK

 Using the merge fields 

This method is applicable for Desk's invoke API where you need to specify the resourceName value in the following format.
 
      {{resourceType.resourceName.id}} or {{resourceType.resourceName.apiName}}
 
Refer to specifying placeholders in invoke API for more information.

Note: The resourceType should be fields or webhook, based on your use case. The id returns the fieldId or webhookId, based on the value in resourceType. The apiName returns the apiName of the resource and is applicable only to fields.

Using the client SDK 

In this method, you must use the Resource API to retrieve resource details.
 
Note: We will use the second approach in this forum post example; the first approach will be covered when we discuss Desk Invoke APIs.

Resource API   

The resource details of the extension can be obtained using this API provided the resourceName key is given in the resources.json file.

Note: The response will be given against the resourceName given in the extension.
 
Sample Request: Get the details of the resource "field1"
 
      ZOHODESK.get("extension.resource", {resourceName: "field1", resourceType:       "fields"}).then(function(response){
                //response returns the value saved
      }).catch(function(err){
                //error handling
      })
 
Response:
      {
          "status": "success",
          "extension.resource": {
          "resourceName": "field1",
          "id": "4000000020060",
          "resourceType": "fields",
          "apiName": "cf_counter"
          }
      }

Scenario:

Let's say you plan to provide support agents with some additional information about the users in the tickets' details page. Specifically, you need to display whether the user is a new user or an existing user. If the user is an existing user, you also want to note how many tickets are associated with that user and the number of open tickets. This can be implemented by adding the required custom fields and writing a script that provides details about the user and the tickets associated with them.

Defining fields in resources.json 

As per our use case, you can define two fields with the following properties:
 
Sl.No
Field name
Type
1
User type
Text
2
Number of open tickets
Text
 
Below is the resource.json file that needs to be defined. As mentioned earlier, the resourceName key for every field needs to be unique and has to be defined for every field.
      
      {"fields": [
          {
            "module": "tickets",
            "displayLabel": "User Type",
            "type": "Text",
            "defaultValue" : "none",
            "resourceName": "UserType",
            "maxLength": 100
          },
          {
            "module": "tickets",
            "displayLabel": "Number of open tickets",
            "type": "Text",
            "defaultValue" : "none",
            "resourceName": "openStatus",
            "maxLength": 100
          }
        ]
      }
 
Note: You'll need the API names of the resources in your implementation whenever you refer to the respective resource. The Resources API can be used to fetch the API names. The code below has been used for fetching the API names for the two fields in our use case and the same API names are used in the code. The console output is added for reference.

      ZOHODESK.get("extension.resource", {resourceName: "UserType", resourceType:       "fields"}).then(function(response){
      console.log(response);
      }).catch(function(err){
      console.log(err);
      })

      ZOHODESK.get("extension.resource", {resourceName: "openStatus", resourceType:       "fields"}).then(function(response){
       console.log(response);
      }).catch(function(err){
      console.log(err);
      })


Use case implementation 

To implement our use case, we perform the following steps in extension.onload. The code snippet is added below for reference:
  • Get the email ID of the current ticket.
  • Use the Zoho Desk search API to check if there are any other tickets from the same user.
  • If the search API results show more tickets from the same email, check the status of those tickets.
  • Finally, construct the result so it is set to the custom fields and update them accordingly.

Sample code: 

      Please check the attachments for the sample code.

Output:




 
Here, you can see the text for the two custom fields were added to the ticket and were populated with the relevant values. In this manner, you can add required custom fields to Zoho Desk using extensions, based on your business needs.
 
Hope you found this post to be useful. Stay tuned for more posts in this space!

    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

                                                                                                                • Zoho Form URL displays incorrect name

                                                                                                                  Hi, I have a form I created called "Design Request form". It displays this way everywhere I look. However, in the URL, it shows up as "DesignJobRequestFormFINAL011325PROOFV1B" and I'm not sure why. I can't find where to fix this. Does anyone have any
                                                                                                                • Introducing Radio Buttons and Numeric Range Sliders in Zoho CRM

                                                                                                                  Release update: Currently out for CN, JP, AU and CA DCs (Free and standard editions). For other DCs, this will be released by mid-March. Hello everyone, We are pleased to share with you that Zoho CRM's Layout Editor now includes two new field formats—
                                                                                                                • Is there a way to update all the start and end dates of tasks of a project after a calendar change?

                                                                                                                  Hi! Here's my situation. I've built a complete project planning. All its tasks have start dates and due dates. After completing the planning, I've realized that the project calendar was not the right one. So I changed the project calendar. I now have
                                                                                                                • Writing SQL Queries - After Comma Auto Suggesting Column

                                                                                                                  When writing SQL Queries, does anyone else get super annoyed that after you type a comma and try to return to a new line it is automatically suggest a new column, so hitting return just inputs this suggested column instead of going to a new line? Anyone
                                                                                                                • Finding rhythm through poetry

                                                                                                                  Poetry has long been a powerful form of expression, discovery, and reflection. For many, it is a way to pen down their thoughts and experiences. The "poetic license" allows writers to shape their words with rhythm and flow. This year, on World Poetry
                                                                                                                • Zoho Desk Ticket SLA Level

                                                                                                                  Hello, we have 2 levels of SLA escalation for our Tickets. Is there a way to display on the ticket information the level of SLA escalation the ticket currently on? I am aware that we can see in the ticket history the level of escalation that has been
                                                                                                                • Allow Font Size 11 in Editors...

                                                                                                                  That is basic functionality...
                                                                                                                • Darshan Hiranandani : How many participants can join a Zoho Meeting at once?

                                                                                                                  Hi everyone, I'm Darshan Hiranandani, trying to find out the maximum number of participants that can join a Zoho Meeting at once. Has anyone here used Zoho Meeting for larger groups and can share their experience or knowledge about the participant limit?
                                                                                                                • 【まだ間に合う!】Zoho ユーザー交流会 | AI活用・CRM・Analytics の事例を聞いて、ユーザー同士で交流しよう!

                                                                                                                  ユーザーの皆さま、こんにちは。コミュニティチームの藤澤です。 3月27日(金)に東京、新橋で開催する「東京 Zoho ユーザー交流会 NEXUS」へのお申し込みがまだの方は、この機会にぜひお申し込みください!(参加無料) ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー イベントの詳細はこちらから▷▷ https://www.zohomeetups.com/tokyo2026vol1#/?affl=communityforumpost3 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
                                                                                                                • Where is the scheduled report in New UI?

                                                                                                                  Hi Team, Seems there is not such a field in New UI, hence I have to switch to old UI to handle request..
                                                                                                                • Building a Simple Raspberry Pi + Keypad IoT PoC with Zoho Flow

                                                                                                                  I want to share a simple IoT PoC I recently built that connects a Raspberry Pi to Zoho Flow and Zoho Creator. The goal was to send PIN input data from a hardware keypad to Zoho and trigger a servo and buzzer for visual/audible feedback. This can serve
                                                                                                                • Enable integration of CRM CPQ functionality for ZohoOne customers using Zoho Finance application

                                                                                                                  Hi there. I can't believe I'm needing to launch this idea as I would have thought this was a little obvious. Following a number of conversations with the technical team it's become evident that the CPQ functionality within CRM cannot integrate with Zoho
                                                                                                                • What's New in Zoho Billing | January 2026

                                                                                                                  Excited about the latest enhancements in Zoho Billing? Our January updates bring an intelligent AI assistant, smarter subscription management, and improved tax compliance, saving you time and reducing manual work. Dive into the details below to see how
                                                                                                                • Is there a way to sell in a practical method multiple subscriptions of the same product? i.e. domain names

                                                                                                                  In evaluating Zoho Billing, a hurdle to adopting it is that Zoho Billing does not seem designed to support businesses that sell multiple subscriptions of the same product. In our case, we need to sell and manage several domain names per client. Am I right
                                                                                                                • Zoho Writer Frequently not loading

                                                                                                                  I've reported this as a problem already but I can't log into my email right now or get onto the main site so you're going to hear about it again here: at least once a week, Zoho Writer will just refuse to load entirely. The main page will load and load
                                                                                                                • Update P_Leave: code: 7052 "Employee_ID": "Enter Employee ID"

                                                                                                                  Hi, Zoho People - Update Leaves Can someone assist? ------------------------------------------------------------------------------------------ col = Collection(); col.insert("recordid":id); col.insert("Date_Check_Approval":zoho.currentdate); info zoho.people.update("P_Leave",col.toMap());
                                                                                                                • 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
                                                                                                                • Can't rename groups on Mac desktop app

                                                                                                                  I'm working on an up-to-date Mac with a freshly downloaded Notebook app. I'm trying to rename a group within a notebook. Here I have, left to right, a note, a group, and a note. I select the group. On the top left, I select Action. On the dropdown, "Rename"
                                                                                                                • Custom CSS for Zoho CRM Team Bookings embeded widget

                                                                                                                  Hello, we are adding Zoho CRM Team Bookings (crm.zoho.com) in our public website. We know that we can change Theme Color, Font Color and Background Color: Zoho CRM Booking Styling But is it possible to change other CSS attributes e.g. Font Family, like
                                                                                                                • Strange behavior in CRM Number Field – Characters allowed but not "e"?

                                                                                                                  Hi everyone, Has anyone faced this strange issue in Zoho CRM? In a Number field, it is possible to type some characters, but the character "e" cannot be entered. This was really surprising to me. Normally, a number field should restrict all characters
                                                                                                                • Best Way to Manage Approvals Within Blueprint Stages?

                                                                                                                  Hi, I am working on a requirement involving Blueprint and approval logic in Zoho CRM and would appreciate some guidance. I understand that approval processes do not trigger when a record is currently within a blueprint, which makes it challenging to implement
                                                                                                                • Marketing Tip #25: Grow your social presence with a simple posting routine

                                                                                                                  Consistency is one of the biggest growth drivers on social media. Regular content keeps your store visible and helps customers remember you. Even 3–4 posts a week can build momentum over time. The easiest way to stay consistent is to stop trying to create
                                                                                                                • How to add "All Open AND Overdue" back to the Home Page Task Component?

                                                                                                                  Hi everyone, I’m looking for a way to restore the Tasks component dropdown list on the Zoho CRM Home Page. Since the recent update to the Task area in my Home Page Classic View, the dropdown options (e.g., My Next 7 Days + Overdue) are too restrictive
                                                                                                                • Duplicate Leads Concerns with Round Robin and Lead Approval Process

                                                                                                                  It is great to have the Duplicate Lead Approval Process,  there are a few issues with the process that I would greatly appreciate taken consideration in enhancing. It appears that A Lead comes in Lead owner assigned by the Round Robin Check for Duplicate, If the lead is a Duplicate the Lead owner gets an email of a duplicate needs approval email assign to the approval process      This causes problems, The duplicate approval process is done by a different level person, they do not get the email notification
                                                                                                                • Dashboard target enhancements

                                                                                                                  Often individuals in IT are creating dashboards for their sales team. The ability to create a single dashboard that can be used by multiple people is key. A components for a dashboard have the ability to filter by logged in user which is great. However
                                                                                                                • How to update "Lead Status" to more than 100 records

                                                                                                                  Hello Zoho CRM, How do I update "Lead Status" to more than 100 records at once? To give you a background, these leads were uploaded or Imported at once but the lead status record was incorrectly chosen. So since there was a way to quickly add records in the system no matter how many they are, we are also wondering if there is a quicker way to update these records to the correct "Lead Status". I hope our concern makes sense and that there will be a fix for it. All the best, Jonathan
                                                                                                                • Bring your own credentials (BYOC) for connections in Zoho Creator

                                                                                                                  Hello everyone, We're excited to announce an important step forward in how integrations and authentications work in Zoho Creator. Zoho Creator is a versatile platform for integrations, enabling you to connect with thousands of third-party services using
                                                                                                                • CRM x WorkDrive: File storage for new CRM signups is now powered by WorkDrive

                                                                                                                  Availability Editions: All DCs: All Release plan: Released for new signups in all DCs. It will be enabled for existing users in a phased manner in the upcoming months. Help documentation: Documents in Zoho CRM Manage folders in Documents tab Manage files
                                                                                                                • 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,
                                                                                                                • Composite items inside of composite items; bill of materials needed

                                                                                                                  Hi Zoho and Everyone, I am evaluating whether Zoho Inventory will work for my small business. I grow and harvest herbs and spices but also get from wholesalers. I use all these items to make herbal teas, but also sell them as individual items on my Shopify store and Etsy. I discovered the composite item bundling and am wondering if I could get some assistance since there is no bill of materials: Our herbal company's best selling tea is a sleepytime tea. Sleepytime Tea can be purchased in three weights
                                                                                                                • Automation Series: Sync Task Status with Zoho Desk Tickets

                                                                                                                  In Zoho Projects, you can automatically close and reopen an associated Zoho Desk ticket when the status of a task is changed. This syncs the current state of the task with the support ticket without manual updates. For instance, a support team handling
                                                                                                                • Auto-Generate Line Numbers in Item Table Using HTML & CSS Counters (Zoho Books & Zoho Inventory Custom Templates)

                                                                                                                  <div> <style> /* Start counter from 0 inside tbody */ tbody#lineitem { counter-reset: rowNumber; } /* Increment counter for each row */ tbody#lineitem tr { counter-increment: rowNumber; } /* Show counter value in first column */ tbody#lineitem tr td:first-child::before
                                                                                                                • Does zoho inventory need Enterprise or Premium subsrciption to make Widgets.

                                                                                                                  We have Zoho One Enterprise and yet we can't create widgets on inventory.
                                                                                                                • New UI for Writer - Disappointed

                                                                                                                  I've been enjoying Zoho Writer as a new user for about 6 months, and I really like it. One of my favorite things about it is the menu bar, which you can hide or leave out while still seeing most of your page because it is off to the left. I think this
                                                                                                                • Zoho CAMPAIGNS working hours

                                                                                                                  Hi I use Campaigns Automation workflows to automate follow-ups to my Leads. I discovered this weekend that emails are being sent out on Sundays. How do I limit my Campaigns outgoing emails to business working hours? This is very important! Thanks, D
                                                                                                                • Depositing funds to account

                                                                                                                  Hello, I have been using Quickbooks for many years but am considering moving to Zoho Books so I am currently running through various workflows and am working on the Invoicing aspect. In QB, the process is to create an invoice, receive payment and then
                                                                                                                • Create Receipt of a Donation (not a sale)

                                                                                                                  We are a non-profit organization that receives general donations. How do I create a receipt of payment for the donor and categorize the payment as a Gift? I tried the method of creating an invoice; however that automatically created a "Sales" transaction
                                                                                                                • Function #2: Create a Deal in Zoho CRM when an Estimate is created in Zoho Books

                                                                                                                  For those who use Zoho CRM integrated with Zoho Books, here's a nifty function that helps you optimize your sales process by adding a Deal in Zoho CRM whenever an estimate is created in Zoho Books. Custom Function: To create the custom function, go to
                                                                                                                • New Custom View -Sorting the Custom fields

                                                                                                                  While creating a New Custom View in invoice , Customers, Bills ,expense etc , the sorting of custom fields are not available , a query function "order by / sort by  " may also be included in  Define new criteria module  which will be more beneficial to
                                                                                                                • Grouping Undeposited Funds to Move to other accounts

                                                                                                                  In the bank option it would be nice to check what transactions in undeposited funds I want to move to other accounts. Then while checking this it can accumulate totals and created whats essentially a deposit slip. Once the transaction is moved it should
                                                                                                                • Next Page