Kaizen#76 - Using ZDK CRM APIs in Client Script

Kaizen#76 - Using ZDK CRM APIs in Client Script

Welcome to another week of Kaizen! In this post, let us discuss about the ZDK CRM APIs in Client Script.

Client Script provides us the flexibility to use its collection of ZDK Client APIs and ZDK CRM APIs. The ZDK CRM APIs invoke the Zoho CRM APIs. 
Here is the documentation on the available list of ZDK CRM APIs. 

Note:
Every execution of a ZDK CRM API affects your API Credits, as it implicitly calls the Zoho CRM API.

Let us see a few sample Use Cases where ZDK CRM APIs are used.

Use Case: 

ABC is a hardware manufacturing company. Consider that you want to achieve the following using Client Script in Detail Page (Canvas) of a custom module named Orders.

  1. The field Status should be editable only for the profiles "Salesperson" and "Administrator" and should be read-only for all other profiles.
  2. When the field Status is changed to "Dispatched" , send an email to the customer saying "Your order has been dispatched" and display a message that the email is sent.
  3. Add a tag "Delivered" to an order when the order status is changed to "Delivered".

Solution using Client Script

In order to send email, add tag and get user details through Client Script, you need to use the appropriate ZDK from the list of ZDK CRM APIs.
 To accomplish this requirement, create two Client Scripts as follows.

  1. Client Script for Detail Page (Canvas) onLoad (for requirement - 1)
  2. Client Script for Detail Page (Canvas) onChange of field Status (for requirements 2 and 3)

1. Client script for Detail Page (Canvas) onLoad (for requirement - 1)

  • Go to Setup > Developer Space > Client Script. Click +New Script.
  • Specify the details to create a script and click Next.



Enter the following script and click Save.


var user = ZDK.Apps.CRM.Users.fetchById($Crm.user.id);
log(user.profile.name);
  if (user.profile.name != "Salesperson")&&(user.profile.name != "Administrator") {
      ZDK.Page.getField("Status").setReadOnly(true);
  }



Using ZDK.Apps.CRM.Users.fetchById(), you will be able to fetch the details of  the current user. The current user ID is captured using the Client Script Constant $Crm.user.id. So the above script will make the field "Status" a read-only field for all profiles other than Salesperson and Administrator. This ZDK CRM API calls the Get Records API to get the user information.
Here is how the Client Script works for Salesperson Profile users.



Here is how the Client Script works for other Profile users.



2. Client script for Detail Page (Canvas) onChange of field Status (for requirements 2 and 3)

  • Go to Setup > Developer Space > Client Script. Click +New Script.
  • Specify the details to create a script and click Next.


  • Enter the following script and click Save.


var user = ZDK.Apps.CRM.Users.fetchById($Crm.user.id);
var record = $Page.record_id;
// send email when the order status is "Dispatched"
if (value == "Dispatched") {
  var mail = new ZDK.Apps.CRM.__Actions.Models.Mail();
  mail.from = { "user_name": "ABC Industries", "email": "ABCIndustries@ABC.com" };
  mail.to = [{ "user_name": user.first_name + " " + user.last_name, "email": user.email }];
  mail.subject = "You order has been " + value;
  mail.content = "Hello" + " " + user.first_name + " " + user.last_name + ",   " + "We are glad to let you know that your order has been dispatched";
  mail.mail_format = "text";
  var response = ZDK.Apps.CRM.Orders.sendMail(mail, recordrecord);
ZDK.Client.showMessage("Sent mail to notify that the order dispatch is done.", { type: 'success' });
}
// Add tag when the order status is "Delivered"
if (value == "Delivered") {
  var Order = ZDK.Apps.CRM.Orders.fetchById(record);
  var response = Order.__addTags(["Delivered"]);
}


  • Here, sendMail(mail_object, record_id) is the ZDK CRM API that internally calls the Send Mail API and  __addTags(arrayOfTagNames) is the ZDK CRM API that internally calls the Add Tags to Records. To capture the current record id, $Page.record_id is used and to fetch the current user details, the constant $Crm.user is used.

  • Here is how the Client Script works.



  • When the status is updated as "delivered" the tag will be added as shown in the following image.


  • When the status is updated as "delivered" the tag will be added as shown in the following image.

We hope you found this post useful. We will meet you next week with another interesting topic!
If you have any questions let us know in the comment section.

Cheers!


    Access your files securely from anywhere







                          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 #197: Frequently Asked Questions on GraphQL APIs

                                                            🎊 Nearing 200th Kaizen Post – We want to hear from you! 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 #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.
                                                          • Celebrating 200 posts of Kaizen! Share your ideas for the milestone post

                                                            Hello Developers, We launched the Kaizen series in 2019 to share helpful content to support your Zoho CRM development journey. Staying true to its spirit—Kaizen Series: Continuous Improvement for Developer Experience—we've shared everything from FAQs
                                                          • Kaizen #193: Creating different fields in Zoho CRM through API

                                                            🎊 Nearing 200th Kaizen Post – We want to hear from you! 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.
                                                          • Client Script | Update - Introducing Commands in Client Script!

                                                            Have you ever wished you could trigger Client Script from contexts other than just the supported pages and events? Have you ever wanted to leverage the advantage of Client Script at your finger tip? Discover the power of Client Script - Commands! Commands


                                                          Manage your brands on social media



                                                                Zoho TeamInbox Resources



                                                                    Zoho CRM Plus Resources

                                                                      Zoho Books Resources


                                                                        Zoho Subscriptions Resources

                                                                          Zoho Projects Resources


                                                                            Zoho Sprints Resources


                                                                              Qntrl Resources


                                                                                Zoho Creator Resources



                                                                                    Zoho CRM Resources

                                                                                    • CRM Community Learning Series

                                                                                      CRM Community Learning Series


                                                                                    • Kaizen

                                                                                      Kaizen

                                                                                    • Functions

                                                                                      Functions

                                                                                    • Meetups

                                                                                      Meetups

                                                                                    • Kbase

                                                                                      Kbase

                                                                                    • Resources

                                                                                      Resources

                                                                                    • Digest

                                                                                      Digest

                                                                                    • CRM Marketplace

                                                                                      CRM Marketplace

                                                                                    • MVP Corner

                                                                                      MVP Corner







                                                                                        Design. Discuss. Deliver.

                                                                                        Create visually engaging stories with Zoho Show.

                                                                                        Get Started Now


                                                                                          Zoho Show Resources


                                                                                            Zoho Writer Writer

                                                                                            Get Started. Write Away!

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

                                                                                              Zoho CRM コンテンツ




                                                                                                Nederlandse Hulpbronnen


                                                                                                    ご検討中の方




                                                                                                          • Recent Topics

                                                                                                          • Zoho Live Chat/Support

                                                                                                            What is going on with Zoho support lately? I've tried to use the live chat feature 4 different times and it refuses to connect to any (despite waiting over 30 minutes one of the tries). I finally gave up and emailed my question nearly a week ago and still
                                                                                                          • Can we have a module to records Certificate No and TDS rates for Lower TDS Certificates by the vendors ?

                                                                                                            Can we have a module to records Certificate No and TDS rates for Lower TDS Certificates by the vendors ?
                                                                                                          • Tip #38- Track Organizational Changes: A Guide to Using Action Log Viewer- 'Insider Insights'

                                                                                                            Hello Zoho Assist Community! Ever needed to trace who did what and when within your remote support operations? Let’s say your support team is growing, and you want to monitor key activities like settings updates, user invites, module changes, or permission
                                                                                                          • Tip of the Week #67– Avoid confusion – Mark duplicate threads.

                                                                                                            When customers send the same message to multiple email addresses, such as support@ and sales@, your team may end up seeing the same message in different inboxes. This creates confusion, risks double replies, and clutters your workspace. Use the Mark as
                                                                                                          • Tax in Quote

                                                                                                            Each row item in a quote has a tax value.  At the total numbers at the bottom, there is also a Tax entry. If you select tax in both of the (line item, and the total), the tax doubles. My assumption is that the Tax total should be totalling the tax from
                                                                                                          • Final Reminder: Discontinuation of Older ASAP Widgets and Mobile SDK Support

                                                                                                            We launched the new ASAP Help Widget last year, introducing a unified and enhanced experience. Since then, older configurations have been placed in read-only mode, with all major updates and improvements built exclusively on the new version. As part of
                                                                                                          • Zoho Subscriptions -- Zoho Commerce integration

                                                                                                            Is there integration between Zoho Subscriptions and Zoho Commerce? I would like to create subscription plans in Zoho Subscritpions and list them for on my Zoho Commerce store.
                                                                                                          • Website show Blank white screen

                                                                                                            Customer called me to tell me my website is currently down upon review it shows a white screen however I can access everything via editor. JITCADCAM.com
                                                                                                          • How manufacturing analytics can transform your enterprise with Zoho Projects Plus

                                                                                                            Did you know that every single car is made up of 30,000 to 40,000 individual parts? All of these are manufactured meticulously in various facilities before being assembled into one. The global manufacturing industry spans a wide range from delivering
                                                                                                          • Projects custom colors replaced by default orange

                                                                                                            Since yesterday, projects uploaded to Zoho, to which I had assigned a custom color, have lost the customization and reverted to the default color (orange). Has anyone else had the same problem? If so, how did you resolve it?
                                                                                                          • Customize your SalesIQ live chat with Custom CSS and blend it with your website design

                                                                                                            Hi everyone. Hope you all are having a great day! SalesIQ offers various inbuilt customization choices for your chat widget and window like changes in colour, theme, font etc. Although these choices are many, sometimes they may not match with the design
                                                                                                          • From Email Address When Replaying to Missed Chats

                                                                                                            One of the most common things we do is follow up on every missed chat.  Missed chats are like money in the bank, people just waiting for your response and to start a relationship with our companies. However, SalesIQ only lets you respond from 1 email address from your entire account?! We have happily paid for 4 subscriptions, but our users cannot reply from their own email address?  How are we supposed to build customer relationships? The fix to this issue is so simple, just load in the logged in
                                                                                                          • how to treat a same person as customer and vendor in zoho

                                                                                                            hi team, in my company, few persons acting as creditors as well as debtors (which means sometimes we pay them... some times we paid by them). in that case i would like to maintain a same ledger for that person.in zoho books it is treating creditor and
                                                                                                          • Narrative 6 - The impact of rebranding

                                                                                                            Behind the scenes of a successful ticketing system - BTS Series Narrative 6 - The impact of rebranding Every organization has invested in branding to set itself apart, and that should be reflected in the help desk. Zoho Desk enables organizations to apply
                                                                                                          • custom color palette for picklist in Sheet

                                                                                                            Migrating over from Google Sheets and missing the ability to customize the individual item colors of my picklist/dropdown menus. Is this something that is possible? A search showed me creating a custom color palette in Analytics is possible but I am not
                                                                                                          • What's New - July 2025 | Zoho Backstage

                                                                                                            Start smart, end strong. From knowing who’s coming to celebrating who showed up, July’s updates help you run events that feel organized from the first invite to the final thank you. Planning an event used to be like writing a choose-your-own-adventure
                                                                                                          • Image Upload Field API get encrypted ID and sequence number

                                                                                                            Hello is there a way to extract the encrypted id and sequence number from image upload fields through the Zoho CRM API? I created a custom script with javascript within Zoho CRM, but I want to extract the encrypted id and sequence number for all my images
                                                                                                          • Attention: Changes to 10DLC TCR pricing and new authentication requirements

                                                                                                            Hi everyone, Starting August 1, 2025, The Campaign Registry (TCR) is introducing new pricing changes and a mandatory brand verification process called Authentication+ 2.0, which will affect how you register and manage your 10DLC messaging services. These
                                                                                                          • Better Time Tracking

                                                                                                            We need better time tracking customization for IT MSPs. We also need reporting that is built in, rather than having to try and fumble with creating custom reports. We also need to be able to mark whether a ticket has been billed or not, I don't think
                                                                                                          • Scheduled Tickets Need Updated

                                                                                                            There is a very clunky manual way to create reoccurring scheduled tickets. This should be created to be easy for the administrator to create. We create several (10 to 12) reoccurring tickets per account for biweekly and monthly auditing purposes.. The
                                                                                                          • Team Feeds Improvements

                                                                                                            Team Feeds needs to show a feed of every action within the department. Currently it seems that the feed will only show a ticket that I've personally commented on or interacted with/followed. A feed should be that, a feed. As a manager I would like to
                                                                                                          • Better Security, Better User Experience | Help Center Update | June'25

                                                                                                            As part of our commitment to enhancing user experience and security, we are happy to announce updates to our authentication mechanism. This update introduces several key enhancements designed to improve the password recovery process and streamline the
                                                                                                          • Upload Logo to Account Page

                                                                                                            It would be nice to set a logo for an Account
                                                                                                          • View Agent Collision on Ticket List Page

                                                                                                            It would be nice from the ticket listing page (views) to see what agents are working on what tickets rather than having to click into each ticket throughout the day to see what agents are working on what tickets. This functionality would also be desired
                                                                                                          • Restrict user from viewing the detail standard view

                                                                                                            Is there any way to restrict a user(it can be user-field-based) from viewing the detail standard view? Basically, I have created a canvas detailed view so that on some conditions I can hide some data from the users but the standard view client script
                                                                                                          • Upload Picture to Contact

                                                                                                            It would be nice to upload a profile picture to a contact.
                                                                                                          • Ticket Status Colors

                                                                                                            Can i change the colors of Ticket Status in the admin panel? Or even change the background of the entire cell of a Critical ticket? This way its easy for my agents to see a urgent ticket when it comes in. Right now everything is black text. Here Right
                                                                                                          • Allowing Pictures for Client Contacts

                                                                                                            Do you have any plans to allow us to add pictures of our client contacts? There is a silhouette of a person there now, but no way that I can see where I can actually add a picture of the individual.
                                                                                                          • Paid Support Plans with Automated Billing

                                                                                                            We (like many others, I'm sure) are designing or have paid support plans. Our design involves a given number of support hours in each plan. Here are my questions: 1) Are there any plans to add time-based plans in the Zoho Desk Support Plans feature? The
                                                                                                          • Agent name Alias

                                                                                                            I am seeing that Full name of my staffs are written on every ticket response which is not good for some reasons. It is possible to user like this: Manny P. (First Name with Last Name's First Letter) or  Manny (First Name) This is want we want to show
                                                                                                          • Unable to add attachments to tickets through Desk API

                                                                                                            I able to use the Desk API to generate tickets. However when I try to use the tickets/{ticketId}/attachments endpoint, I always get an Unauthorized error. My app has Desk.Tickets.ALL included in its scope so this should not be an issue
                                                                                                          • What's wrong with this COQL?

                                                                                                            What's wrong with this COQL? Code returns "invalid operator found". SELECT id, Name, Stage, Account, Created_Time, Tag FROM Production_Orders WHERE (Account = '4356038000072566002' AND Stage NOT LIKE '%customer%') ORDER BY Created_Time DESC LIMIT 200
                                                                                                          • [Feature Request] Add support for internationalized top-level domains mail hosting

                                                                                                            This is an important request to add support for internationalized domains mail hosting to https://www.zoho.com/mail/ In this case, that is only limited to domain name/mail address however currently it's already possible for us send mails etc using below
                                                                                                          • Add Enable/Disable to Field Rules and other Rules

                                                                                                            Hi, Sometimes I have rules setup for fields, and until I want to enable them for use, I can set the fields to Hidden but rules still show them, today you have to delete rules and then recreate them again, would be nice to have a toggle for Enabled/Disabled
                                                                                                          • Syncing stuck for days

                                                                                                            Hello when I made an account a few days ago and synced all my notes to it, it is still syncing. My app is only 400mb so I do not know why it is taking so long. Please help
                                                                                                          • Workflow runs on every edit despite not ticking the field repeat this workflow whenever a parent is edited.....

                                                                                                            Hi, It is my understanding that this workflow should only trigger once. Why is this triggering on every edit of the field? Based on another support query - directly from Zoho, If i tick the box 'repeat this workflow whenever a parent is edited' it should
                                                                                                          • How do you add or update tags on Zoho CRM records via n8n? (Workarounds or best practices?)

                                                                                                            Hi all, I’m running into some limitations with the Zoho CRM node in n8n and was wondering how others have handled this: From what I see, the standard Zoho CRM node in n8n doesn’t allow you to add or update tags when creating or updating contacts/leads.
                                                                                                          • API PARAMETER FOR TICKET CLOSED TIME

                                                                                                            Hi, Is there a parameter for filtering tickets by closed time in zoho api, i can see closed time in the API response i get, but can't get tickets by that field while calling. Regards, Anvin Alias
                                                                                                          • Reply to email addresses wrong.

                                                                                                            I have setup my Zoho mail account using my main domain and I also have an Alias setup from a different domain. In Settings - Mail - Compose I have selected to the option "For replies, send using The same email address to which the email was sent to".
                                                                                                          • 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
                                                                                                          • Next Page