Kaizen# 209 - Answering Your Questions | All About Client Script

Kaizen# 209 - Answering Your Questions | All About Client Script


Hello everyone!

 

Welcome back to another exciting Kaizen post! Thanks for all your feedback and questions. In this post, let's see the answers to your questions related to Client Script.

We took the time to discuss with our development team, carefully reviewing all aspects, so we could bring you accurate and complete information firsthand.

Q1: Repeating the same validation code across Create, Edit, List, and Detail views reduces maintainability


Currently, this requirement is under analysis. For now, we suggest you use Static Resources to reduce duplication and improve maintainability.


Q2: A unified screen for writing client-side validation logic would improve efficiency, especially if it supports both validation and CRM data fetching


We are planning to provide a Client Script IDE with a tree structure listing all scripts. This will allow you to access a page’s complete script in a single view without exiting each time. This is part of future enhancements and as of now there is no ETA for this.



Q3: Client Scripts currently do not support access to third-party APIs

API calls can be made using HTTP requests or Connections.
Check out Kaizen#135: Third Party Integration using Client Script to see the implementation and a practical use case.
Also, our new ZRC support, now in early access, provides direct API calls for enhanced control and flexibility.



Q4: Need for deeper UI control in Client Scripts (like modifying metadata CSS and HTML)

Direct modification of CRM page CSS/HTML via Client Script is not possible.



Q5: Canvas actions cannot trigger Blueprint transitions, limiting process automation

Blueprint transitions can now be initiated from Canvas pages. Click here for documentation.



Q6: Lack of functions to retrieve a field’s data type (text, boolean, datetime) limits dynamic handling
This feature is planned for future enhancements.



Q7: The onSave event is missing in Detail Page processing
While the Save action is not available on Detail pages, the onBeforeUpdate() field event can be used to enforce validations post-edit.

 

Q8: onChange does not work on multi-picklists and subforms

The development of onChange support for multi-select picklists  is completed and will get released very soon (in a week). The onCellChange() method is currently available for subforms.


Q9: Currently, there is no way to control or restrict access to the "Record detail page views" dropdown selector in Canvas detail pages based on user profiles or roles.

We are working on addressing this limitation and will keep you updated once the enhancement is available.

 


 

Q10: Why Zoho CRM provides too many ways for client validation? One is through Layout Validation->Setup, Layout Validation-Function, Client Script (ZDK). What is the major difference?

Feature

How It Works

Best For

Validation Rules
(no code)

Define conditions in the setup UI without coding. These checks run when you try to save a record. If conditions fail, the save is blocked and an error message is shownClick here for more details.

Quick, straightforward validations like “Email must contain @domain.com” or “Amount cannot be negative,” especially for admins with no coding knowledge.

Layout rules
(no code)

Define layout rules that adjust the form UI in real-time based on field values. This includes showing/hiding sections, enabling/disabling fields, or making them mandatory. Click here for more details.

Use when the form sections needs to adapt dynamically to the context for pages other than Canvas (e.g., “If Customer Type = Business → Show GST details section”).

Functions (Deluge)

In Functions, you can write a Deluge script that executes server-side. Functions are usually triggered by workflows, buttons, schedules or record actions and can update fields, create related records, call external APIs and so on. Click here for more details.

Ideal for automating complex business logic and integrating with Zoho services or third-party applications.

Client Scripts (ZDK + JavaScript)

Use Zoho Developer Kit (ZDK) APIs with JavaScript to run logic directly in the browser. Triggers include On Load, On Field Change, On Save. You can block record save, fetch CRM/external data instantly, show dynamic messages, or modify field behavior and much more. Click here for more details.

Perfect for advanced, real-time validations and dynamic UI.
Example: Prefill address fields from an API, validate PAN instantly, or disable Save if multiple conditions fail.


In this Kaizen post, we have answered all your questions about Client Script, shared solutions along with relevant help doc links, and highlighted upcoming features and enhancements.  We hope this answers your queries and provides clarity on Client Script usage.

 

Happy Client Scripting!

Idea
Previous Post: Kaizen #208 - Answering your Questions | Functions, AI and Extensions - Advanced Queries using COQL API | Kaizen Directory: Home




    • Sticky Posts

    • Kaizen #198: Using Client Script for Custom Validation in Blueprint

      Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Kaizen #226: Using ZRC in Client Script

      Hello everyone! Welcome to another week of Kaizen. In today's post, lets see what is ZRC (Zoho Request Client) and how we can use ZRC methods in Client Script to get inputs from a Salesperson and update the Lead status with a single button click. In this
    • Kaizen #222 - Client Script Support for Notes Related List

      Hello everyone! Welcome to another week of Kaizen. The final Kaizen post of the year 2025 is here! With the new Client Script support for the Notes Related List, you can validate, enrich, and manage notes across modules. In this post, we’ll explore how
    • Kaizen #217 - Actions APIs : Tasks

      Welcome to another week of Kaizen! In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard.
    • Kaizen #216 - Actions APIs : Email Notifications

      Welcome to another week of Kaizen! For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are
      • Recent Topics

      • Archive Option in Conversation View

        Hello, I have a suggestion\request to add an "Archive Thread" button in conversation view of Zoho Mail. The best suggestion I have is to put an "Archive Thread" button next to the "Label Entire Thread" button in conversation view. Most users don't just
      • Collapsing and expanding of lists and paragraphs

        hello Would you ever implement Collapsing and expanding of lists and paragraphs in zoho writer ? Best regards
      • Does Zoho Writer have Dropdowns

        I want to add a drop down field in Zoho writer. Is this possible?
      • Automatic Refresh on Page?

        Hi everyone, We use a page as a dashboard which shows data for the laboratory and tasks pending etc. Is there a way to set the page to automatically refresh on a X time? Many thanks TOG
      • Is It Possible to Convert a Custom Module to a Quote?

        I recently created a custom module in our CRM environment for RFQs so that our sales team can submit quote requests directly in Zoho rather than by email/phone. This allows for a cleaner overall process, minimizing potential errors and potentially encouraging
      • Dropshipping Address - Does Not Show on Invoice Correctly

        When a dropshipping address is used for a customer, the correct ship-to address does not seem to show on the Invoice. It shows correctly on the Sales Order, Shipment Order, and Package, just not the Invoice. This is a problem, because the company being
      • Inventory "Bulk Actions" button - add more fields to "Bulk Update > Select a field"

        Can we not get a lot more actions that are commonly used by customers into the "More Actions" button on the Inventory list? More fields listed in the Bulk Update > Select A Field? Possible Bulk update Fields Preferred Supplier ( to quickly move items
      • Bulk upload image option in Zoho Commerce

        I dont know if I am not looking into it properly but is there no option to bulk upload images along with the products? Like after you upload the products, I will have to upload images one by one again? Can someone help me out here? And what should I enter
      • Function #11: Apply unused credits automatically to invoices

        Today, we bring you a custom function that automatically applies unused credits from excess payments, credit notes, and retainer payments to an invoice when it is created. Prerequisites: Create a Connection named "zbooks" to successfully execute the function.
      • Tip #60- Exploring Technician Console: Screen Resolution- 'Insider Insights'

        Hello Zoho Assist Community! Have you ever started a remote session and felt the screen quality wasn’t sharp enough for detailed work? A new user recently explored Zoho Assist after installing the trial version and running a few initial tests. While the
      • Right Moment, Right Message, Right Operator: Never Miss a High-Intent Lead

        Ever been on a website or app, thinking “Should I buy this or not?” and suddenly a friendly “Hi! How can I help you?” pops up at the perfect moment? That’s not luck. That’s timing done right. Engaging right visitors at the right moment, with the right
      • CRM x WorkDrive: We're rolling out the WorkDrive-powered file storage experience for existing users

        Release plan: Gradual rollout to customers without file storage add-ons, in this order: 1. Standalone CRM 2. CRM Plus and Zoho One DCs: All | Editions: All Available now for: - Standalone CRM accounts in Free and Standard editions without file storage
      • Multiple header in the quote table???

        Hello, Is it possible in Zoho CRM to add multiple headers or sections within the Quote product table, so that when the quote is printed it shows separate sections (for example “Products” and “Services”)? To clarify, I’m asking because: This does not appear
      • Zoho CRM Workflow Automation: Activate & Deactivate Workflows Using API

        Zoho has now enabled: ✅ Activate / Deactivate workflows using API ✅ Schedule workflow activation & deactivation This is extremely useful for real-world automation use cases 💡 🧩 My Use Case I created a scheduled automation that: ☀️ Activates workflows
      • {Action Required} Re-authenticate your Google Accounts to Continue Data Sync

        Hello Users! To align with Google’s latest updates on how apps access files in Google Drive, we’ve enhanced our integration to comply with the updated security and privacy standards, ensuring safer and more reliable access to your data. With this update,
      • Function #53: Transaction Level Profitability for Invoices

        Hello everyone, and welcome back to our series! We have previously provided custom functions for calculating the profitability of a quote and a sales order. There may be instances where the invoice may differ from its corresponding quote or sales order.
      • Project-Based Inventory Consumption and Proforma Invoice in Zoho ERP

        While working with customers across different industries, we have identified a few functional questions and gaps that commonly arise—especially for project-based and service-oriented businesses. Many organizations, such as those in shipping, construction,
      • Power up your Kiosk Studio with Real-Time Data Capture, Client Scripts & More!

        Hello Everyone, We’re thrilled to announce a powerful set of enhancements to Kiosk Studio in Zoho CRM. These new updates give you more flexibility, faster record handling, and real-time data capture, making your Kiosk flows smarter and more efficient
      • Release Notes | January 2026

        We have rolled out a set of powerful new enhancements across Zoho Vertical Studio that bring several long-awaited capabilities to your applications. These updates focus on deeper customization, smarter automation, better reporting, and improved usability
      • [Free Webinar] Zoho RPA - OCR, PDF Automation, & More

        Hello Everyone! Greetings from the Zoho RPA Training Team! We’re excited to invite you to our upcoming webinar on the latest release updates for Zoho RPA, where we’ll unveil powerful new capabilities designed to make your automation journey smarter, faster,
      • Zobot Execution Logs & Run History (Similar to Zoho Flow)

        Dear Zoho SalesIQ Team, We would like to request an enhancement for Zoho SalesIQ Zobot: adding an execution log / run history, similar to what already exists in Zoho Flow. Reference: Zoho Flow In Zoho Flow, every execution is recorded in the History tab,
      • Capture Last check-in date & days since

        I have two custom fields on my Account form, these are "Date of Last Check-In" and "Days Since Last Contact" Using a custom function how can I pull the date from the last check-in and display it in the field "Date of Last Check-In"? and then also display the number of days since last check-in in the "Days SInce Last Contact" field? I tried following a couple of examples but got myself into a bit of a muddle!
      • Global Search Settings

        I'd love a way to remove some modules from being included in the global search. This would allow use to provide a better user experience, limiting the global search to only those modules that are regularly used removing any models used for background
      • Card Location in Zobot

        Hello, when using the “Location” card in a codeless builder Zobot, the behavior in WhatsApp is inconsistent. When asking the user to share their location, they can type a message, which will return the message “Sorry, the entered location is invalid.
      • Automation Series: Auto-create Dependent Task on Status Change

        In Zoho Projects, you can automatically create and assign a dependent task when a task’s status is updated. This helps teams stay aligned, ensures reviews happen on time, and reduces manual effort. In this post, we’ll walk through an easy setup using
      • Zoho CRM || Unable to Bulk Assignment of Territories for Contacts

        Dear Zoho CRM Support Team, I hope this email finds you well. We recently performed a bulk upload of Contacts into Zoho CRM using the official sample Excel template downloaded from the CRM. The upload itself was completed successfully; however, we encountered
      • Languages in Zobot

        Hello, I have found a list of supported languages for the Zobot. The information specifies the languages are supported in the following 3 features: SalesIQ supports 34 different languages in the following features. Resources (Articles, FAQs, Small Talks)
      • Sync your Products Module for better context.

        In customer support, context is everything. The integration between Zoho Desk and Zoho CRM helps your sales and support teams function as one, delivering better customer experiences. With the latest update to this integration, you can now sync the Product module in your Zoho CRM with your Zoho Desk portal. This feature enables products from Zoho CRM to reflect in the "product" field in Zoho Desk. This can save your support team valuable time and effort.    Some things to note when syncing the two:
      • 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
      • Action required: Reauthorizing your Google account for automatic cloud backup to Google Drive

        This is applicable to users who have already configured automatic cloud backup to Google Drive. Hi there! Google has mandated reauthorization of all preconfigured third-party integrations to ensure only the necessary scopes are shared as an improved security
      • Zoho CRM Layouts

        I have customised all our modules, Leads, Contacts and deals, and within them, I have created lots of different layouts depending on the type of Lead or contact, for example. Since the new Zoho UI came out, they have all disappeared. I have gone into
      • Zoho Desk API - Send Reply to CUSTOMERPORTAL

        Hello! I'll try to send a reply to Customer Portal, But the response is 500 (INTERNAL_SERVER_ERROR in service response). {"Error":"{\"errorCode\":\"INTERNAL_SERVER_ERROR\",\"message\":\"An internal server error occurred while performing this operation.\"}"}
      • Zoho CRM for Everyone's NextGen UI Gets an Upgrade

        Hello Everyone We've made improvements to Zoho CRM for Everyone's Nextgen UI. These changes are the result of valuable feedback from you where we’ve focused on improving usability, providing wider screen space, and making navigation smoother so everything
      • WhatsApp IM in Zoho Desk always routes to Admin instead of assigned agent

        Hello Zoho Experts, I connected WhatsApp IM to my Zoho Desk account. I only assigned my Customer Service (CS) agent to the WhatsApp channel, and I did NOT include Admin in this channel. However, every new WhatsApp conversation automatically gets assigned
      • hide resolution from help centre

        to my surprise, i just found out that the resolution text is public in the helpcenter, even if 'notify customer' is off. is there a workaround to that? how do others deal with this? How zoho support does this and I don't think its used by Zoho in the first place. the resolution is meant to be private, not public
      • Multiple Cover Letters

        We are using the staffing firm edition of Recruit and we have noticed that candidates cannot add more than one cover letter. This is a problem as they might be applying for multiple jobs on our career site and when we submit their application to a client,
      • Zoho Analytics + Facebook Ads: Performance Alerts for Active Campaigns

        Is it possible with integration of Zoho Analytics with Facebook Ads and set up alerts or notifications for active campaigns when performance drops? For example, triggering a notification if CTR goes below a defined threshold or if other key metrics (like
      • 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?
      • Workdrive Oauth2 Token Isn't Refreshing

        I have set up oauth for a bunch of zoho apis and have never had a problem with oauth. With workdrive i am using the exact same template i usually use for the other zoho apps and it is not working. All requests will work for the first hour then stops so
      • Sort by age

        It would be very helpful if there was a way to sort by age in the Age column. Please add this function if possible. Thanks!
      • Next Page