Kaizen #70 - Client Script Support for Wizards

Kaizen #70 - Client Script Support for Wizards

Hello everyone! 
Welcome back to another interesting Kaizen post. In this post, we can discuss the recently added Client Script Support for Wizards.

What is a Wizard?
A Wizard in Zoho CRM helps you divide a long form into a series of screens. You can also have dynamic changes to your forms based on the input in Wizard using Conditional Rules in Wizard. This type of step-wise approach reduces the chances of erroneous data entry, as the partially completed form can be saved as a draft and submitted later. 

What is Client Script?
Client Script gives you a seamless platform for achieving and extending your business cases in Zoho CRM by allowing Java Script code execution in your browser. To know more about the feautres of Client Script, click here.

Need for Client Script in Wizards
Client Script support for Wizard enables you to customize and extend your business cases with respect to Wizards, beyond Conditional Rules. 
For example,
  • Auto-populate field data while creating or editing a record using Wizard.
  • Apply advanced formula computation to the fields in a Wizard.
  • Achieve field validation, auto-correction, and data enrichment in Wizard.
  • Display custom error messages for a specific set of users or fields in a Wizard.
Events for Wizards in Client Script
      You can trigger a Client Script using the Events available for create/edit pages of Wizard.
  • whenever a wizard loads - onLoad Wizard Event
  • when you click on the save button in  a Wizard - onBeforeSave Wizard Event
  • when you navigate from one screen to another - onTransition Wizard Event
  • before navigating from one screen to another screen - onBeforeTransition Wizard Event
  • when you update any of the fields - onChange Wizard Event
  • when you update a specific field - onChange Field Event.


ZDK Client Function

Description
setVisibility()


Show or Hide a button or text component of a Wizard

setContent(value)

Set text content for the text element.

getElementByID(element_id)

Get the UIElement object.
transitionTo(api_name)

Makes the transition to the specified screen
getComponent(record-create-wizard) 
 To fetch the component details like screen information of a Wizard. record-create-wizard - is the default value of the Wizard component name.

Note
Apart from these functions, you can use all the other ZDK functions which are not tagged as canvas.

Use Case
Med-X is a Health Care Company that uses Zoho CRM.  For order creation, let us consider that there is an existing Wizard with three screens. The first screen has the product details, the second screen consists of fields related to payment using credit/debit card and the third screen consists of the address fields. The company wants to achieve the following validations and requirements using Client Script in both create and edit pages of the Wizard in Orders module.

1. The minimum quantity for the Category - Masks is 1000. If the user enters a lesser value, display the error message " Minimum quantity should be 1000". The minimum quantity for the Category Surgical Instruments is 100. If the user enters a lesser value, display the error message " Minimum quantity should be 100".

2. If the field Is shipping address same as billing address? is true , then copy and populate the Shipping Address value in the field Billing Address.

3. If the payment method in screen 1 is selected as Credit/Debit card in screen 3, then the Wizard should transit to screen 2.

4. If the country selected in the field Select the Country is India then display the below text, 
Your order will be shipped using the FedEx courier service. Track your order using  the link https://www.fedex.com/en-us/home.html.
If the country selected is the US, then display the below message,
Your order will be shipped using the Blue Dart courier service. Track your order using this link https://www.bluedart.com/tracking.  

Solution using Client Script
The requirements are for create and edit pages of the Orders Wizard. So create two scripts as follows.
  1. Client Script for Create Page (Wizard)
  2. Client Script for Edit Page (Wizard)

1. Client script for Create Page (Wizard)
  • Go to Setup > Developer Space > Client Script. Click +New Script.
  • Specify the details to create a script and click Next.

  • The Client Script should run as and when the fields are updated with values. So create a Client Script with Wizard Event Type and onChange Event.
  • Enter the following script and click Save.
      
switch (field_name) {
case 'Quantity':
        var qty = ZDK.Page.getField("Quantity");
        if ((ZDK.Page.getField("Choose_the_category").getValue() == "Surgical Instruments") && (qty.getValue() < 100)) {
                qty.showError("Minimum order quanity should be 100 pieces");
            }
            else if ((ZDK.Page.getField("Choose_the_category").getValue() == "Masks") && (qty.getValue() < 1000)){
                qty.showError("Minimum order quanity should be 1000 pieces");
            }
        break;
 case 'Is_the_shipping_address_same_as_thbilling_address':
        var billAdd = ZDK.Page.getField("Billing_Address");
        var shipAdd = ZDK.Page.getField("Shipping_Address");
        shipAdd.setValue(billAdd.getValue());
        break;
    case 'Payment_Method':
        var payment = ZDK.Page.getField("Payment_Method");
        if (payment.getValue() != "COD") {
            log(ZDK.Page.getComponent('record-create-wizard'));
            ZDK.Page.getComponent("record-create-wizard").transitionTo("Screen_2");
            break;
        }
case 'Select_the_Country':
        var Text1 = ZDK.UI.getElementByID('Text_1');
        if (ZDK.Page.getField("Select_the_Country").getValue() == 'India') {
            Text1.setContent("Your order will be shipped using Blue Dart courier service. Track your orders using this link.");
        }
        else if (ZDK.Page.getField("Select_the_Country").getValue() == 'US') {
            Text1.setContent("Your order will be shipped using FedEx courier service. Track your orders using this link");
        }
break;
}


  • Here, the field name is the event argument that will hold the value of the field that is being changed by the user in the Wizard. With the help of this argument (field_name), you can check which field is being updated by the user using switch...case or if.. else statement. To display the error message, you can use showError(error), to change the content in the text component use setContent(), to jump to a different screen use ZDK.Page.getComponent("record-create-wizard").transitionTo("Screen_X");  and to copy the content to another field use setValue(). Here, the name record-create-wizard is constant for create and edit Wizard pages.
  • Here is how the Client Script works in a Wizard,




2. Client Script for Edit Page (Wizard)
      To achieve the solution for the edit page of Orders Wizard, you need to create another Client Script and select the Page as Edit Page (Wizard) as shown below.


  • Use the same code and click Save.

Note
Using transitionTo(api_name), you can transit only to previous screens in Create Page (Wizard).

We hope you found this post useful. We will meet you next week with another interesting topic! Get in touch with us at support@zohocrm.com if you have any questions, or let us know in the comments.


Cheers!


    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



                                                              • 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


                                                              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

                                                                                                                • A method for renaming tab titles in Creator to display more relevant information

                                                                                                                  Hi Zoho Devs, Updates: Rules Export File attached; you can now import this into Tab Modifier instead of manually entering the rules yourself) 2022-06-08: Updated rules so that crm.zoho.com tabs are not affected; uploaded new .json import file 2022-06-09:
                                                                                                                • Options on the New Auto Logged In User Profile for the Name Field

                                                                                                                  Hi, I love the new function, but when used it automatically formats the record and therefore the export with comma separated values, so id you enable First Name & Last Name it puts "First Name, Last Name" rather than just "First Name Last Name". Could
                                                                                                                • Zoho Practice Roadmap

                                                                                                                  Hi - interested to understand the roadmap for this product. I think a number of people are watching to see if this is receiving investment prior to exploring more - but it appears to be very quiet on the development front.
                                                                                                                • CRITICAL DOWNTIME IN ZOHO PRACTICE!! NO RESPONSE FROM SUPPORT TEAMS

                                                                                                                  Dear Team, We are randomly unable to login to Zoho Practice since this morning. All our team members are reporting this issue. Work has come to a grinding halt and we are not getting any support or answers. This is a highly serious matter of concern for
                                                                                                                • Tip 49#: Obtaining global reports in Zoho Sprints

                                                                                                                  Zoho Sprints comes with data analysis capabilities like reports and dashboards that enable the project teams to introspect quantifiable information. These reports and dashboards are project specific. Recently, a user contacted us regarding a requirement
                                                                                                                • Clone entire dashboards

                                                                                                                  If users want to customize a dashboard that is used by other team members, they can't clone it in order to customize the copy. Instead they have to create the same dashboard again manually from scratch. Suggestion: Let users copy the entire dashboard
                                                                                                                • Zoho Cliq REST APIs v3 : A complete guide to what's changed and why 

                                                                                                                  APIs are not just consumed by a developer with numerous automations and a series of open browser tabs. They are parsed by LLMs, fed into agent pipelines, and auto-completed by AI coding assistants that have zero tolerance for inconsistency. A verb tucked
                                                                                                                • Allow native Webhooks to authenticate via Connections

                                                                                                                  Allow native Webhooks to authenticate via Connections (Basic Auth) instead of plaintext custom headers Summary Please allow native Webhooks (Workflow Rules > Instant Actions > Webhooks) to authenticate against the destination endpoint using the existing
                                                                                                                • Zoho desk extension update custom field

                                                                                                                  Hi all, I'm trying to update a custom field in my zohodesk extension. But the documentation is fairly unclear. The custom field is named "testveld". The api name is cf_testveld I'm trying to update it like this: ZOHODESK.set('ticketForm.cf_testveld',
                                                                                                                • Introducing Custom Columns in Forecasts in Zoho CRM

                                                                                                                  Release Plan: Enabling in Phased Manner, Enabled for JP DC Hello all, Forecasts in Zoho CRM help sales representatives, managers, and business stakeholders evaluate performance and plan future sales activities. While standard metrics such as Target, Achieved
                                                                                                                • Zoho Expense Auto Tracking Sync Fails "Request Timed out"

                                                                                                                  I am testing this feature to move away from MileIQ who significantly raised their prices. It seems to be tracking but it is not syncing unless I manually perform a resync under "Drives pending Sync". I am not sure what would be causing this, as some drives
                                                                                                                • How to show product cards in your chatbot

                                                                                                                  Hey everyone, If you are using Guided Conversations to help customers find products, you have probably run into this problem: the bot gives customers a list of options, but they still have no idea which one to pick. There will be no images, no specs,
                                                                                                                • Zoho Team Inbox - roadmap

                                                                                                                  Hi, would be good to understand the Teaminbox roadmap, in particular: 1. API / Zoho Deluge connections. We have a process where the each email needs to be either tagged or assigned daily. It would be great if we could automate a 5pm alert for any exemptions
                                                                                                                • Zoho Projects Coming to CRM Teamspaces

                                                                                                                  Availability: The US DC Standard Edition is now available. It will be rolled out to customer accounts in all DCs in phased manner. Hello all, You are probably already familiar with Teamspaces, the dedicated workspaces where teams organize the CRM modules
                                                                                                                • Canva Integration

                                                                                                                  Hello! As many marketing departments are streamlining their teams, many have begun utilizing Canva for all design mockups and approvals prior to its integration into Marketing automation software. While Zoho Social has this integration already accomplished,
                                                                                                                • Editing Draft Fixed assets

                                                                                                                  I have a few Fixed Assets still currently in Draft Status that I need to edit. I need to edit the Fixed Asset Type, the Fixed Asset Account, the Accumulated Depreciation account and the Depreciation account. Once I have done it and attempt to "Save as
                                                                                                                • Zoho Status Pages: Our Domain Has Changed — Here's What You Need to Know

                                                                                                                  We're making a change to how you access Zoho Status Pages. Our status page domains have been updated to provide a more consistent and region-specific experience across all locations. If you have the old domain bookmarked or referenced anywhere — emails,
                                                                                                                • Zoho Books and TRAINING SALES receipt label for eTims?

                                                                                                                  Hi, Can Zoho Books implement TRAINING SALES receipts and push them to eTims for test? In other words how can we send to Zoho or even create in Zoho training mode invoices and TEST the workflow POS>Zoho Books>eTims and back without actually registering
                                                                                                                • The Social Wall: May 2026

                                                                                                                  Hello everyone, This month, we're excited to introduce two powerful features designed to help you create more engaging content and streamline your team's communication workflow. Adding audio via Zoho Social Audio is one of the biggest drivers of engagement
                                                                                                                • SalesIQ : How to disable "Idle chat handling" ?

                                                                                                                  Hello SalesIQ Team. SalesIQ, How to disable "Idle chat handling" ? I would like to disable the option “Automatically close chats that have been idle for a specified amount of time.”
                                                                                                                • Zoho Webinar - Sharing System Audio (NOT AVAILABLE)

                                                                                                                  Hi, We are having a serious problem with Zoho Webinar. In the webinars we run, we very often share the audio from a video we are streaming directly from YouTube or other applications. Until recently we were using Zoom, but as we use other Zoho applications
                                                                                                                • Customising Outcome drop down

                                                                                                                  Is it possible to customize the drop down list for appointment outcomes?
                                                                                                                • Automate Backups

                                                                                                                  This is a feature request. Consider adding an auto backup feature. Where when you turn it on, it will auto backup on the 15-day schedule. For additional consideration, allow for the export of module data via API calls. Thank you for your consideration.
                                                                                                                • Mirror Component in Zoho CRM: Access real-time related data without leaving your record

                                                                                                                  Hi everyone, This feature is now available for the JP, CA, SA, UAE, and AU DCs. We're excited to bring to you Zoho CRM's mirror component, which presents relevant data on a record's details page and keeps everything users need in one place without having
                                                                                                                • Partial payments for retainer invoices

                                                                                                                  When a customer does not pay the entire retainer invoice there is no way to apply a partial payment. PLEASE add this function.
                                                                                                                • Custom Display Field for Lookup Dropdowns in Zoho CRM

                                                                                                                  Could Zoho CRM support changing the display field in lookup dropdowns, like Zoho Creator does? This would make it much easier to select the right record by showing a more useful field instead of only the default one. It would improve speed, clarity, and
                                                                                                                • Create custom field in multiple modules

                                                                                                                  I am trying to create some custom fields that will be in both leads and contacts module without having to create them separately and then mapping them. How is that performed? it is too time-consuming to create 20+ fields and then do the same thing in a different module when they carry the same info. The idea is that when we get a lead from web site, there are items that we capture and once that lead is a client and moved to Contacts, that info should come over. So trying to find an easy way to create
                                                                                                                • Add Specific Identification as an Inventory Costing Method

                                                                                                                  --- Business Context We are a security systems distributor handling high-value, serialized products such as IP cameras, NVRs, and RAID storage systems. Each unit is uniquely identified by a serial number and arrives in separate shipments at varying purchase
                                                                                                                • Creator Portal Page Customization Issues

                                                                                                                  I have been using Creator to make Portals recently. Yesterday, I created a new portal and noticed that the page customization editor ("Open Builder") was different. Using the new page builder, I was able to customize and add an image to the various sign
                                                                                                                • Zoho Books - Budget Creation and Reporting Tags

                                                                                                                  Is there a way to create one budget for multiple reporting tags. For example, if my company has 4 different divisions I would like to be able to enter in what the budgeted revenue for each division is and view that information in 1 budget. I would then
                                                                                                                • Razorpay + Zoho Billing + Zoho Books Integration

                                                                                                                  Please help us set up this integration.
                                                                                                                • Why is Approval Hierarchy Not Available for the Expenses Module in Zoho Books?

                                                                                                                  Hello, I noticed that Zoho Books allows us to configure approval workflows and approval hierarchies for modules such as Bills, Vendor Credits, and Invoices. However, the same approval hierarchy option does not seem to be available for the Expenses module.
                                                                                                                • Zoho Mail Android app update - Traditional Chinese language and contact nickname support

                                                                                                                  Hello everyone! The Zoho Mail Android app now includes support for the Traditional Chinese language. You can change the language to Chinese (Traditional) from the Settings module of the Zoho Mail app. You can also view the nickname of the contacts within
                                                                                                                • Get Cliq Meetings in my O365 calendar

                                                                                                                  Hi, we are currently evaluating to replace the Teams Messaging and Meetings with Cliq. We currently still have all our email and calendars in O365. What i want to achieve is, to create a (ZOHO) meeting from Cliq and have this meeting added to my Outlook/O365
                                                                                                                • Latest update in Zoho Meeting | On-demand webinars

                                                                                                                  Hello everyone, We’re excited to introduce our new on-demand webinar feature, you can now provide pre-recorded sessions that your audience can access immediately, no need to wait for scheduled sessions. Benefits of On-demand webinars : Scheduling flexibility
                                                                                                                • Replicating Zoho Books "Accounts" and "Accrual Transactions" in Analytics via API: Best Endpoint Strategy?

                                                                                                                  Hi everyone, I am working on a custom integration where I need to programmatically replicate two specific tables in Zoho Analytics via API on an hourly schedule: Accounts and Accrual Transactions. Those two tables sync from Zoho Books. (Note: I am aware
                                                                                                                • Terms & Conditions

                                                                                                                  I have defined Terms & Conditions in the invoice setting and have set %TermsAndCondition% where I want it to appear but nothing shows up in that area. Is this something we have to define per invoice or can we have a global variable?
                                                                                                                • BUG and HANGUP - Add Row with Fields DOUBLES the amount of rows instead of Adding Just 1 Row

                                                                                                                  As it says in the title, there is a bug with forms generated with Zoho Writer where the Add Row With Fields ends up DOUBLING the amount of rows instead of Adding just 1 row.
                                                                                                                • Subform edits don't appear in parent record timeline?

                                                                                                                  Is it possible to have subform edits (like add row/delete row) appear in the Timeline for parent records? A user can edit a record, only edit the subform, and it doesn't appear in the timeline. Is there a workaround or way that we can show when a user
                                                                                                                • From Zoho CRM to Paper : Design & Print Data Directly using Canvas Print View

                                                                                                                  Hello Everyone, We are excited to announce a new addition to your Canvas in Zoho CRM - Print View. Canvas print view helps you transform your custom CRM layouts into print-ready documents, so you can bring your digital data to the physical world with
                                                                                                                • Next Page