Kaizen#75 - Frequently Asked Questions on Client Script

Kaizen#75 - Frequently Asked Questions on Client Script

Welcome to another week of Kaizen! In this post, let us discuss some of the frequently asked questions in Client Script.

1. Where can you see the list of ZDKs supported by Client Script?

The Zoho Development Kit (ZDK) library comprises a rich set of Client and Web APIs that broaden the scope of Zoho Applications. You can utilize them to perform UI operations and trigger REST API calls. 
To view the documentation for ZDK, click the help icon in the Library under Information of the Client Script IDE.



2. Will the CRM API calls triggered from Client Script count into daily API limits?

Yes, every ZDK Web API in Client Script makes an  API call to Zoho CRM and  so every execution of a ZDK Web API affects the API limits.

3. What would be the correct way to set the value of a lookup field via Client Script?

You need to mention the id of the record along with the name when you try to set the value to a lookup field. 

Example:
Consider that there is a lookup field Category and the requirement is that it should be populated based on the Product selected by the user.
  • Battery, Thermostat, and Ignition Switch belong to the category of Electrical Switches.
  • Fuel level sensor, Light sensor, and Airbag sensor belong to the category of Sensors.
i.e. If the user selects the product "Battery", then the lookup field Category should get auto-populated as Electrical Switches.

Here is the code to accomplish this.


if (value.name == 'Airbag sensor' || value.name == 'Light sensor' || value.name == 'Fuel level sensor') {

//Populate value for lookup field Category based on the condition

ZDK.Page.getField('Category').setValue({ "id": "4967860000001049208", "name": "Sensors" });   

    }

else if (value.name == 'Ignition Switch' || value.name == 'Thermostat' || value.name == 'Battery') {

//Populate value for lookup field Category  based on the condition

ZDK.Page.getField('Category').setValue({ "id": "4967860000001049217", "name": "Electrical Switches" });

    }


Here is how the above script works.



4. How do I debug a Client Script in Zoho CRM?

You can use the log() statement to debug the script. The results of the execution of this log() statement will be displayed in the Messages panel of the Run option. Also, information about the execution status, logs, exception messages, and time taken for the execution are also displayed.

For example, consider the following script. It has two log statements. You can view the output of the log statements in the messages panel of Run option.


var user = ZDK.Apps.CRM.Users.fetchById($Crm.user.id);

var field_obj = ZDK.Page.getField('Phone_Number');

log(field_obj.getValue());

log("Profile name of the user is "+ user.profile.name);

if(user.profile.name != 'Administrator')
{

    field_obj.mask({ character: '*', length: 5, reverse: true });

}



Any CRM Operation performed inside the run mode will get reflected in your Zoho CRM account.

5. Does Client Script support languages other than Javascript?

No. Client Script in Zoho CRM supports only Javascript.

6. Will a Client Script run for all the layouts of the module?

No. Client Script will execute only for the layout specified while configuring the Client Script. If you want the script to run for other layouts or all the layouts of a module, you should create a separate Client Script for each layout. 

7. What is the use of the Terminal section in the Client Script IDE?

You can execute the ZDK APIs instantly in the Terminal section of the Client Script IDE. For example, when you type the below script in the Terminal section and hit enter, you can see the alert message on the screen.


ZDK.Client.showMessage('Welcome to Client Script IDE', { type: 'info' });




8. When should you use onChange Page Event and onChange Field Event?


Field Event - onChange
Page Event - onChange
If you want the script to run only when the specific field is updated, you can use the Field onChange Event.

If you want the script to run whenever any of the fields on that page is updated, you can use the Page onChange Event. 


When you have to write a script for more than one field on the same page, you can use if and switch..case statements.


9. Using Client Script, how do I prevent the record from being saved when the value for a specific field entered is invalid?

To prevent a record from getting saved, you should follow the following steps:
  • You need to use the onSave event type since you want to prevent the record from getting saved.
  • Add "return false;"  statement.
  • Always display the error/alert/message, so that the user will know the why the record is not getting saved.
Example:
Consider that the field quantity should not have a value of less than 100. To accomplish this, you need to create a Client Script with the onSave event type, show an error message, and add a return false statement if the record should not get saved for that particular condition.



//Get the value of the field Quantity of Products 

var qty_field = ZDK.Page.getField("Quantity_of_products");

log(qty_field);

//Invoke the static method by passing the value of Quantity of Products

if(qty_field.getValue() < 100)
{
    qty_field.showError('The minimum value should be 100'); // or

   //  ZDK.Client.showMessage('The minimum value should be 100', { type: 'error' });//or

    //ZDK.Client.showAlert('The minimum value should be 100');//or

    return false;
}


Here is how the above script works.



10. What are all the places where the Client Script can run?
Currently, Client Script can be executed in the following pages of Zoho CRM.
  • Create Page
  • Edit Page
  • Clone Page
  • Detail Page (Canvas)
  • Create Page (Wizard)
  • Edit Page (Wizard)
11. Can Client Script run in Quick Create page?

No, currently Client Script in Zoho CRM cannot be executed in Quick Create Page.

12. Does Client Script support the Detail Page (Standard)? 

Currently, there is no support for the Detail Page (Standard) but it is in our roadmap.
Once this goes live, you will also be able to hide fields.



    • Recent Topics

    • In arattai received message can't be deleted

      The issue has been noticed in following: arattai app (Android) arattai app (Window) arattai web While the message posted by me may be deleted, the ones received from others can't be. The item <Delete> change to <Report> when the message is a received
    • Fill Colors

      Hello, Just curious, is it possible to manage the Used and standard colors in the fill drop down menu ? I would like to change/edit them is possible to colors I frequently use. Thanks for you reply, Bruce
    • Is there a way to generate a virtual meeting for a group service in Zoho Bookings?

      Are virtual meetings not supported for group services/meetings? I have integrated Zoom with one-on-one services, but I need a way to create an online group meeting. Thanks
    • Attachment reminder?

      My team and I often need to attach files to our messages, e.g. an explanatory screenshot or a shipping label. More often that I want to admit I mention the attachment but forget to actually attach it. Some email clients have a check-for-missing-attachments
    • Items Below Reorder Point Report?

      Is there a way to run a report of Items that are below the Reorder Point? I don't see this as a specific report, nor can I figure out how to customize any of the other stock reports to give me this information. Please tell me I'm missing something s
    • Markdown for Desk?

      Hi, my company wants to use markdown for formatting text in Desk (in all modules there, especially Tickets and Helpcenter). Zoho already offers use of markdown in several products (see https://help.zoho.com/portal/en/kb/backstage/microsite-guide/formatting-with-markdown/articles/formatting-with-markdo)
    • Multiple upload field CRM

      I desperately need the functionality to add more than one upload field to web to contacts form. How can I do this?
    • Client scripts for Zoho Books ?

      Good day everyone, I am looking for a way to be able to interact with the Quotes and Invoices as they are being created. Think of it like Zoho client script in Zoho CRM. But for the life of me I dont see a way to do this. The issue with having function
    • Fillable template with dynamic tables?

      Is there a way to build a fillable template so that users can add rows to a table? To describe what I'm trying to accomplish the table has 3 sections; a header row, some number of rows with custom information, and a summary row with totals. I can't figure
    • Audio/video quality issues with Zoho Meeting – Any roadmap for improvement?

      Hi Zoho Team, We’ve been using Zoho Meeting for both internal and external meetings, and unfortunately, the experience has been consistently poor. The video and audio quality are so unreliable that it often renders meetings ineffective—especially with
    • Invoicing multiple expense items as a single line item

            My client would like me to invoice them for multiple expense items on a single line item on an invoice.  Can this be done?  I know I can import billable expenses to an invoice, but I don't know how to show them as a single line item or have them
    • Zoho Books | Product updates | November 2025

      Hello users, We’ve rolled out new features and enhancements in Zoho Books. From translating email notification templates to the new transaction locking restrictions, explore the updates designed to enhance your bookkeeping experience. Making Tax Digital
    • Tables improvement ideas / features

      Heya, I've been using Zoho Tables for a few months now and wanted to post some features that I think will be greatly beneficial for the tool: 1. Ability to delete a record in automation or move a record in automation. - Usecase: I move a record from one
    • Announcing offline payment modes for event tickets

      Hello everyone,   Collecting ticket payments from prospective attendees can be a tricky part of event planning. While Zoho Backstage has always allowed you to collect payments online as people buy tickets from your event microsite, we have now enabled
    • What is going on with GMail extension.

      Suddenly, it is popping up and saying "Please wait while we work our magic... 10%" and it sits there. Yesterday I waited for an entire hour call and it never got further. Today, it's not resolved. Is there a fix I can do? I've tried all the typical
    • Gmail is ramping up its email sender policy from November 2025

      Hello marketers, As you may be aware, Gmail introduced a guideline for bulk senders starting February 2024. If not, here's a quick refresher straight from Google: After this policy was announced first in 2023 and soft-implemented in February 2024, we
    • Collapsible Sections & Section Navigation Needed

      The flexibility of Zoho CRM has expanded greatly in the last few years, to the point that a leads module is now permissible to contain up to 350 fields. We don't use that many, but we are using 168 fields which are broken apart into 18 different sections.
    • Gmail is ramping up its email sender policy as of November 2025

      Hello marketers, As you may be aware, Gmail introduced a guideline for bulk senders starting February 2024. If not, here's a quick refresher straight from Google: After this policy was announced first in 2023 and soft-implemented in February 2024, we
    • Good news! Calendar in Zoho CRM gets a face lift

      Dear Customers, We are delighted to unveil the revamped calendar UI in Zoho CRM. With a complete visual overhaul aligned with CRM for Everyone, the calendar now offers a more intuitive and flexible scheduling experience. What’s new? Distinguish activities
    • Deluge Error Code 1002 - "Resource does not exist."

      I am using the following script in a Custom Button on a Sales Return. Basically, the function takes the information in the sales return (plus the arguments that are entered by the user when the button is pushed) and creates a return shipping label via
    • Zoho Analytics Export API

      Hi Team, I’m working on some integration tasks and wanted to confirm if it’s possible to retrieve a Zoho Analytics table as JSON data using a Deluge script. I’ve already stored my custom data from multiple sources and combined it into a single source.
    • Enhance Sign CRM integration

      Hello all, I'm working on a custom Deluge script to enhance the integration between Zoho CRM and Sign by using a writer merge template for additional flexibility. I want to replicate the post-sign document integration that exists between CRM and Sign
    • Item images

      Can we get an "On hover" expanded image for items please ?
    • Ability to Create and Manage YouTube Video Chapters in Zoho Social

      Hi Zoho Social Team, How are you? We would like to request an enhancement to Zoho Social that would allow users to create and manage YouTube video chapters directly within the platform. Currently, Zoho Social does not support manually adding chapters
    • What happens to my current site SEO if i opt for zoho creator?

      I have an existing website and I need to use Zoho creators for the rapid creation of my webpage creation. Currently, my IT team is creating the web pages, but I am concerned about the SEO of my current website if I shift to zoho will i loose it all?
    • Automatic Portal invite

      We have numerous customers we move through a blueprint in deals, when they get to a certain point we need to give them portal access, how can this be done through deluge or a workflow?
    • Preview Emails with Merge Fields before sending

      Hello, Are there plans to preview an email with merge fields before sending out? Currently, all you see in the preview are the merge field values, but before I send out the email I want to make sure the merge is working. Also, the saved emails only show
    • User Filter not selecting All Items

      We are encountering 2 issues when using the user filter. When users are trying to search using the filter option, the OK button is grayed out. Users have to unselect or make a change before it filters properly. 2. When filtering and the OK button works,
    • Support Nested JavaScript Variables in PageSense Pop-up Targeting

      Hello Zoho PageSense Team, I hope you're doing well. I’d like to request a feature enhancement for the PageSense pop-up targeting functionality. Current Limitation: Currently, PageSense pop-ups can be triggered using simple JavaScript variables. However,
    • Cannot Invert Axis for Rankings

      Hi there I want to be able to create a ranking graph in Analytics/BI, with 1 at the top of the Y axis, but I am unable to invert the axis. Super simple example in Excel below. Higher rankings need to be higher up on the graph to give the correct visual
    • How to copy value from a single line field into a picklist field within a module's subform?

      Hello there, I have a single line field in a module's subform. I would like the value in the field to automatically update a picklist field within the same subform (both have items with the same names). Is this possible via function? Unfortunately, workflows
    • Committed Stock and To Be Received Stock via API?

      Is it possible to retrieve Committed Stock and/or To Be Received Stock for an Item via the API? I want to use this information for calculating the amount of inventory needed to be purchased.
    • Creating Email template that attaches file uploaded in specific field.

      If there's a way to do this using Zoho CRM's built-in features, then this has eluded me! I'm looking to create a workflow that automatically sends an email upon execution, and that email includes an attachment uploaded in a specific field. Email templates
    • Marketer’s Space - Automate a Personalized Holiday Workflow with Zoho Campaigns

      Hello marketers, Welcome back to another post in Marketer’s Space! From Thanksgiving through Christmas, you have a flurry of opportunities to connect with your audience. In this post, we’ll see how you can plan an entire month-long automated workflow
    • Zoho Inventory Custom Field Update

      Hello All, In this post I am describing how can we Update the Custom Field Value in Zoho Inventory. // Get Org ID orgid = organization.get("organization_id"); // Field Value resvp = ifnull(item.get("purchase_rate"),null); // Record ID iid = item.get("item_id");
    • Sorting columns in Zoho Projects

      Hi, In project management best practice, sorting columns (ascending, descending) is an important tool. Sorting dates to see the order of tasks starting, sorting on priority or even on planned hours is a must for an efficient project control. Currently,
    • Zoho CRM - Calendar Cards View - Let Users Decide What Is Displayed On Calendar Entries

      Imagine planning your week of face-to-face meetings across three counties. You’re trying to group appointments by location to make the best use of your time, but Zoho CRM’s calendar doesn’t show where each meeting is happening. You’re left trying to remember
    • Explore the Redesigned Quotes Module in Zoho Billing

      Dear users, We’re excited to introduce a refreshed look for the Quotes details page in Zoho Billing! This update brings you a more efficient user interface experience without changing your existing workflow. We've enhanced layouts with organized tabs,
    • Updating custom fields in Zoho Projects

      Hi I am wondering if anyone has experience with custom fields in Zoho Projects. I am struggling to update the field using either deluge or the api endpoint. My code is: //custom_Map = map(); custom_Map = {"UDF_DOUBLE_1":"0.27"}; update_Map = map(); update_Map.put("custom_fields",custom_Map.toList());
    • Zoho Inventory - How to pay a supplier up front then receive multiple deliveries

      How do we manage situations where we pay a supplier up front, then the receive the products in increments? Example Workflow: Create Purchase Order > Receive Bill for full amount > Receive Items 2 or more deliveries. Currently, once a Bill is created against
    • Next Page