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

        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

                                                                                                                • 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
                                                                                                                • Anyone worked out how to export or screengrab a full heatmap?

                                                                                                                  I'd love to be able to include a copy of a heatmap in a report but can't work out how to grab the whole thing as there doesn't appear to be an export function? Thanks in advance.
                                                                                                                • Establishing Relationships among contacts/leads with Reciprocal

                                                                                                                  Is there any way to create a relationship between contacts and leads and be able to go into just one of the files and have it reciprocate the entry in the other file? For example, if I have two people say John and Jane Smith who are husband and wife.
                                                                                                                • Placeholder for Agent Signature in Email Templates

                                                                                                                  Dear Zoho Team, I hope this message finds you well. We currently face a limitation when designing email templates in Zoho Desk. While we can create email templates and include a footer at the end, the agent signature is always appended by default at the
                                                                                                                • Cannot give public access to Html Snippet in Zoho Creator Page

                                                                                                                  Hi, I created a form in Zoho Creator and published it. The permalink works but I want to override the css of the form. (style based URL parameters is not good enough) So I created a page and added an Html snippet. I can now override the css, which is
                                                                                                                • Print a document from Zoho Writer via Zoho Creator

                                                                                                                  If i use the code below i can get writer to create a new document or email it to me but i want to be able to print it directly from the browser and not have to send it via email and then print. Below is the code im using. Attached options form zoho writer
                                                                                                                • Custom View and Custom Fields on Zoho Books

                                                                                                                  Hi, I have some custom fields on Estimates and Invoices. I also use Custom Views so I can have a lot of information at a glance. I want to include my custom fields as columns in my custom views of estimates / invoice, but it looks like is not possible.
                                                                                                                • %PaymentLink%

                                                                                                                  Does not work. Software creates a BAD link. ....and yes payment options are turned on. Link on the invoice pdf once opened will work but this template is a joke.
                                                                                                                • World date & time format

                                                                                                                  Hello, Is there a timeline to get the worldwide used date and time format ? I mean not the american one... I mean day month year, and 24 hours clock. Regards
                                                                                                                • Allow Global Admin to access/edit all forms without changing owners

                                                                                                                  Hi there, Please consider adding a feature where the Global Admin of the account an automatically access/edit any form in the Company Account. I'm the Global Admin on our Zoho One plan, and we have multiple users that use/create forms. But for me to access
                                                                                                                • Actual vs Minimum

                                                                                                                  Hi all, I am sure I am not the only one having this need. We are implementing billing on a 30-minute increment, with a minimum of 30 minutes per ticket. My question is, is there a way to create a formula or function to track both the minimum bill vs the
                                                                                                                • Dont want to list inactive items.

                                                                                                                  If an item is made inactive, there is no point in showing it in the item list. Please provide an option to hide all inactive items in 'Preferences'. 
                                                                                                                • Can Zoho Marketing Automation send OTP codes via WhatsApp during user registration?

                                                                                                                  The flow I would like to implement is: A user signs up in the mobile app and enters their phone number. The system generates a one-time verification code (OTP). The OTP is sent to the user via WhatsApp message. The user enters the code in the app to confirm
                                                                                                                • Related lists New option in missing

                                                                                                                  hi I have created quite a few modules and added as related lists to my main module. Some have new, some dont I can not see why?
                                                                                                                • Where to show Customization Field ?

                                                                                                                  Dear Sir, I have made some New Field in Item Field Customisation. Now I don't require that field in Estimate, Sales Orders etc. I just wants that field in Sales Invoice to Show/Hide... Is that possible ?
                                                                                                                • What's New in Zoho Analytics - February 2026

                                                                                                                  Hello Users! We're back with another round of updates for Zoho Analytics. This month's release focuses on giving you greater flexibility in how you visualize, manage, and act on your data - with new features like custom visualizations, remote MCP server,
                                                                                                                • Zoho Books (and other Finance Suite Apps) - Clickable Item Name on Invoices and Reports

                                                                                                                  Hi Zoho Books team, It would be really helpful if the Item Name on Reports were clicable to take me to the item. The same on Invoices, often I am looking at an invoice and I want to look at the deails of a product. A link here would be helpful to jump
                                                                                                                • ZOHO Reports are taking longer time to get refresh

                                                                                                                  Hi Team, Since last few days, I'm facing issues in getting updated reports. For eg: right after making an expense entry or even posting a journal, it is taking longer then expected for the updated reports. Refer below: "You are viewing the report that
                                                                                                                • Display actual mileage on an invoice

                                                                                                                  My users are creating expenses in Zoho expense. For example, they expense 10 miles and get paid 7 dollars (10 miles * IRS rate of .70). If I look at the expenses in Zoho Books, it does show them at 10 miles at .70 cent When I add these expense to an invoice
                                                                                                                • Can't change form's original name in URL

                                                                                                                  Hi all, I have been duplicating + editing forms for jobs regarding the same department to maintain formatting + styling. The issue I've not run into is because I've duplicated it from an existing form, the URL doesn't seem to want to update with the new
                                                                                                                • Can you create relationships BETWEEN contacts within the same module

                                                                                                                  I am setting up my CRM, and I want to have a way to connect contacts within the same module.  Is there a way to do this?  If not - how do I decide how to split up contacts to make connections?  What are best practices for this? We have clients who need
                                                                                                                • Zoho Projects - Cloning a task does not trigger task workflow when created

                                                                                                                  Hello! I have a Project where my team uses a set of tasks from a tasklist as templates, so we could simply clone it and drag it to another list in kanban view to avoid creating a new one from scratch. The process works well, but after cloning it the new
                                                                                                                • Function and workflow to create customer payment and send receipt

                                                                                                                   I am attempting to set up a workflow/custom function for the automatic creation of a customer payment and sending the email receipt, but am receiving the error "Improper Statement Error might be due to missing ';' at end of the line or incomplete expression" I've been over everything several times and cannot see where the error is (code is copied into the attached document).  I haven't used custom functions before with Deluge, so it's very likely something very simple, or I've completely mucked
                                                                                                                • Disable Sign Up option in Zoho Creator Portal and show only Sign In page

                                                                                                                  Is it possible to disable the Sign Up option in a Zoho Creator portal? The requirement is to show only the Sign In page and completely remove or hide the Sign Up page, so users cannot create accounts directly from the portal login page. Is there any setting
                                                                                                                • Restrict Payment Methods

                                                                                                                  Allow us to restrict certain payment methods specific for each customer.
                                                                                                                • How to install Widget in inventory module

                                                                                                                  Hi, I am trying to install a app into Sales Order Module related list, however there is no button allow me to do that. May I ask how to install widget to inventory module related list?
                                                                                                                • Introducing Formula Fields for performing dynamic calculations

                                                                                                                  Greetings, With the Formula Field, you can generate numerical calculations using provided functions and available fields, enabling you to derive dynamic data. You can utilize mathematical formulas to populate results based on the provided inputs. This
                                                                                                                • Can I view the KB in the same way as a customer logged in as my Agent?

                                                                                                                  Sorry if this seems a mad question.  I have some Articles that I want to be seen by my Agents and the status of these is set to Agents only.  We also have some that are set to Public. When I sign in with my private email address (as a customer) I can
                                                                                                                • What’s New in Zoho Inventory — Latest Features, Integrations & Updates | December 2025

                                                                                                                  Zoho Inventory has evolved significantly over the past months, bringing you smarter, faster, and more connected tools to streamline your operations. Whether you’re managing multichannel sales, complex fulfillment workflows, or fast-moving stock, our newest
                                                                                                                • Push Notification for New Bookings in Zoho Bookings App

                                                                                                                  when a someone schedules an appointment through the booking page, is there any option to receive a push notification in the mobile app?
                                                                                                                • Which user's capacity is used for Shared Mailbox storage?

                                                                                                                  We use shared mailboxes at our company, and their size is increasing daily. Which user(s)'s total mailbox limit is being used up by this space?
                                                                                                                • Incorrect Functioning of Time Logs API (Version 3)

                                                                                                                  We need to fetch the list of time logs for each task for our company internal usage. We are trying to achieve it by using the next endpoint: https://projects.zoho.com/api-docs#bulk-time-logs#get-all-project-time-logs Firstly, in the documentation the
                                                                                                                • Evernote (ENEX) import limitations

                                                                                                                  I have been with Evernote since 2010, but the latest price increase is ridiculous. I am currently testing Zoho Notebook as a replacement. I am impressed so far - if it were not for critical need to import legacy Evernote notes, I would 100% migrate to
                                                                                                                • Can I create a CODE 128 custom field for my items in Zoho Inventory and then use it for generating Sales Orders?

                                                                                                                  Can anyone helps me, I don't want to use the SKU code for scanning my products.  ​Because all my products have a CODE-128 label attached.
                                                                                                                • Prevent duplicate with custom fields?

                                                                                                                  I was wondering something about custom field/custom modules in Zoho Desk. For some reason you can make a custom field mandatory but not unique? For example, if I create a custom module to manage equipment and renewal and make a field serial number no
                                                                                                                • Multiple Vendor SKUs

                                                                                                                  One of the big concerns we have with ZOHO Inventory is lack of Vendor Skus like many other inventory software packages offer. Being able to have multiple vendor skus for the same product would be HUGE! It would populate the appropriate vendor Sku for
                                                                                                                • Create Invoice automated with Package

                                                                                                                  Does anyone knows how to create an invoice from a SO when we have created the package? We do these manually. and validate that the product packed is the product invoiced (if the order is partially packed) Regards, JS
                                                                                                                • Unable to integrate Zoho Projects and Zoho Workdrive

                                                                                                                  I'm a Zoho One subscriber. When I go to Zoho Projects > Settings > Marketplace > Zoho Apps I do not see an option for Zoho Workdrive but I do see one for Zoho Docs that does nothing. How do I get the option to integrate Zoho WorkDrive and Zoho Proje
                                                                                                                • Disable payment thank-you emails

                                                                                                                  Hello, can someone please tell me how to disable sending of the "Payment Thank-You" emails? 
                                                                                                                • Internal Fillable Contract with Zoho Writer (Before Sending to Client)

                                                                                                                  Hi everyone, I’m trying to automate the following process in Zoho CRM and would appreciate some guidance. Process: When a Deal moves to a specific stage, CRM triggers an automation. CRM sends a contract template to an internal team member so they can
                                                                                                                • Next Page