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

                                                                                                          • Request for Support - CRM Integration Issues

                                                                                                            I’m reaching out to request assistance with the following items: 1. Zoho Forms Integration with Zoho CRM We are currently using Zoho Forms to send the Global Credit Application form to our customers. The intended workflow is for the form submissions to
                                                                                                          • Knowledge Base Module

                                                                                                            How to enable the knowledge base module in zoho crm account. I saw this module in one crm account but unable to find it other zoho crm account. can anyone know about this?
                                                                                                          • Zoho sign changed Indexing of signing_order

                                                                                                            Because I missed this Announcement (is there even one?): when you work with the indexes of actions > signing_order. Previous those started with 0 now starts with 1. Changed somewhere between 15.07 and 23.07
                                                                                                          • How to Invoice Based on Timesheet Hours Logged on a Zoho FSM Work Order

                                                                                                            Hi everyone, We’re working on optimizing our invoicing process in Zoho FSM, and we’ve run into a bit of a roadblock. Here’s our goal: We want to invoice based on the actual number of hours logged by our technicians on a job, specifically using the timesheets
                                                                                                          • Zoho CRM Community Digest - June 2025 | Part 2

                                                                                                            Welcome back to the Zoho CRM Community Digest! We’re wrapping up June with more fresh updates, smart discussions, and clever workarounds shared by the community. Product Updates: Struggling to keep track of scattered customer interactions? Zoho CRM's
                                                                                                          • Allow Variable Insertion in Prebuilt "Update Record" Action in Schedules

                                                                                                            Hi Zoho Creator Team, Hope you're doing well. We’d like to submit a feature request based on our experience using Zoho Creator schedules to manage workflows integrated with Zoho Desk. We currently have an app where Zoho Desk tickets create records in
                                                                                                          • Rich Text Field Editor in Form Builder is Too Small and Not Resizable

                                                                                                            Hello, I am experiencing a significant usability issue with the rich text field in the Zoho Forms builder. The editor window for this field is fixed-size and extremely small. It does not adapt to the screen size, which makes it very difficult to manage
                                                                                                          • Publicar Formulário

                                                                                                            Obs. Não consigo publicar meus formulários, pesquisei alguns artigos, mas me deixou perdido, fala de campo sensível, não consigo entender o que significa. Segue Imagem do problema. Todo formulário que faço sempre termina assim sem o botão de publicar..
                                                                                                          • Anyone else unable to login to ZMA this weekend?

                                                                                                            Hey Is anyone else unable to log into Zoho Marketing Automation at all this weekend? I've been trying on multiple devices - despot and mobile - and multiple browser. I've reset browsing data, gone incognito. Nothing - since Friday I've been unable to
                                                                                                          • Custom Action for Subform row

                                                                                                            Dears, As for now, we only have 2 actions for each subform row: Edit and Delete. I would suggest to have custom action here, instead of create a button with Fx field within the subform. For example, I would create Duplicate button, which duplicates the
                                                                                                          • Urgent: Unable to Receive OTP Email for Portal User Registration in Zoho Creator

                                                                                                            I paid to enable the Portal User feature on 2/25, and followed the official instructions (Youtube video: Customer Portals | Zoho Creator) to set up the Portal User using my Gmail account. However, I am not receiving the OTP email and am unable to successfully
                                                                                                          • Sole Trader - Financial Advisor (Appointed Representative) - Paid via Capital Account but no Invoicing...

                                                                                                            Hi. I'm about to venture into a new business after 12 months of intensive learning/exams. A little chuffed if I may say so especially at 52! I really like the look of ZoHo Books for my modest enterprise but I'm in need of some guidance, please. My services
                                                                                                          • Display multiple fields in lookup dropdown

                                                                                                            I have a module called Technicians and a related module called submissions that registers technicians for different assignments. The lookup in Submissions to Technicians is the Technician ID (auto generated unique number). How do I display in the dropdown
                                                                                                          • Integrate with Power BI

                                                                                                            Hi, How to connect Zoho CRM dashboards & reports with POWER BI ?
                                                                                                          • No "Import Users" option in Zoho FSM

                                                                                                            I recently noticed that there is no option to import Users into Zoho FSM, and this has become a serious challenge for us. When migrating data, especially technicians or other user profiles, we often have hundreds of users to bring into the system. Currently,
                                                                                                          • Finding "like" projects

                                                                                                            Hi Everyone! My team is running into several duplicating deals. I've been trying to get them all to name things the same way ex. State is 2 letters not spelled out. Things like that. What I am wondering if there is anything I can do as the superadmin
                                                                                                          • Não consigo localizar o Botão de Publicar Formulário no meu app

                                                                                                            Depois que finalizar meus formulários, não consigo localizar o botão de publicar para concluir meu aplicativo
                                                                                                          • DATEV-Export Erfahrungen?

                                                                                                            Wir würden gern den DATEV-Export in Books nutzen, jedoch ist dieser nicht wirklich nutzbar. Gibt es positive Erfahrungen von Alternativ-Lösungen?
                                                                                                          • Kaizen #191: Implementing "Login with Zoho" using Python SDK

                                                                                                            Welcome back to another week of Kaizen!! This week, we are diving into how to implement secure user authentication using Login with Zoho and integrate it with Zoho CRM through our Python SDK. To ground this in a real-world scenario, we will look at how
                                                                                                          • WhatsApp Business Calling API

                                                                                                            Dear Zoho SalesIQ Team, I would like to request a feature that allows users to call WhatsApp numbers directly via Zoho SalesIQ. This integration would enable sending and receiving calls to and from WhatsApp numbers over the internet, without the need
                                                                                                          • Custom modules not showing in developer console

                                                                                                            I'm trying to create a custom summing function for a custom module I made in my CRM. When I go to create the function, my module isnt showing up. Do I need to share the custom moldule with my developer console or something of the like?
                                                                                                          • Following retainer invoice for partial payment of a sales order

                                                                                                            HI, We issue sales orders when a client buy a product from us. We also issue multiple retainer invoices for partial payment (2 to 4 depending of the client). Team wants to follow payment of these retainer invoices for this Sales Order. If they are paid
                                                                                                          • Zoho CommunitySpacesとzoho CRM連携について

                                                                                                            お世話になっております。 いつもご質問に丁寧に回答いただき大変助かっております。 今、当団体ではZoho CommunitySpacesを利用しており、利用ユーザ一覧をzoho CRMに自動登録(連携)したいと考えております。 そもそも可能なのか、もしあれば具体的な手順や方法はあるのかをご教授いただきたいです。 上記がないのなら、ユーザ一覧のエクスポート方法(メールアドレスと姓を含む)でもよいです。 お手数となりますが、お願いいたします。
                                                                                                          • Zoho Wiki or new Zoho Learn

                                                                                                            We are currently evaluating if we should move off confluence. At present in Confluence we have multiple levels within our documentation but with learn it looks like you can only have Space       - Manual             - Chapter Is it possible to have levels below Chapter? Also the same question for the existing wiki, can I have more sub-levels?
                                                                                                          • New user After moving over from QBO

                                                                                                            New user observations/suggestions. QBO took away a lot of features I was used to with the desktop version. Chaos ensued. Zoho Books has a lot of what I was used to and a bit more. Good deal Some things I have run into and suggest some upgrades. 1: The
                                                                                                          • Sales without an invoice

                                                                                                            Sales without an invoice is not included on the “payments received” report. Also, sales without an invoice is not listed in the transactions under the customer’s profile, also making it easy to do a double entry. Is there a way for me to see my sales
                                                                                                          • Zoho Sign API - Create a document from template.

                                                                                                            1. I would like to create a document from a template and send the document to the customer for signing. Is this possible using the Zoho Sign API? If so, please share the api reference link. 2. Is there sand box for Zoho Sign to test the APIs without using
                                                                                                          • Zoho Sign embedded iframe

                                                                                                            Hello, we are looking for any of these options: a) some iframe that we can paste into our website for every signer, for onpage signing document. b) or get direct link for signers from Zoho sign API which we can redirect manually. Is any of these options
                                                                                                          • Goods in transit

                                                                                                            When creating a purchase order in Zoho Books, how can I properly reflect the inventory as "Goods in Transit" until it reaches its final destination?
                                                                                                          • how to coming soon, holding site, or "under construction"

                                                                                                            Hi! I was wandering if was possible to create a website with the simple sign of "Under construction or coming soon" while i work on the site. if possible, how? Cheers
                                                                                                          • Announcing Agentic AI - Ask Zia!

                                                                                                            We are delighted to roll out the new agentic AI capabilities in Ask Zia, where every stage of the BI workflow is assisted by AI. With a human-in-the-loop approach, Ask Zia ensures that you’re in command of the decision, while AI handles the complexity.
                                                                                                          • Zoho People LMS VS Zoho Connect Manuals VS Zoho Learn

                                                                                                            in the past I came accross Zoho WIKI but did not like the platform because it could use a lot of upgrade. Over the time I have noticed Zoho People come out with a LMS module which allows us to created a shared knowledge for our internal team I also came across Zoho Connect which as a knowledge-based for internal team referred to as Manual Now I am seeing Zoho Learn which is a new and fine-tuned version of Zoho Wiki. All of these platforms are very similar but I am wondering what are the differences
                                                                                                          • Marketing Automation Activities in Zoho CRM

                                                                                                            Hello, I've connected Zoho CRM and Marketing Automation, sent a campaign, but no data are displayed in CRM, neither in "campaigns" section inside contact profile. It is possible to display Marketing Automation activities in CRM? Also in CRM Timelines?
                                                                                                          • How do we get a follow up to Experts 22: Scale up your customer support with integrations & extensibility

                                                                                                            Hi, How do we get a followup and answers to the questions we have asked during 'Experts 22: Scale up your customer support with integrations & extensibility'. I have repsonded to the answers but have no way of following up. Thanks Brett
                                                                                                          • Frustrating Email Duplication and Timeline Issues Between Zoho Mail and CRM

                                                                                                            Hi Zoho team, Can someone please help clarify what’s going on here? Here’s what’s happening: I initiate an email to a lead using Zoho Mail. The lead is created in Zoho CRM via the integration, and the email is correctly associated with that lead. Sometimes,
                                                                                                          • Best Strategy to import contacts and when to create leads

                                                                                                            Hi, I'm new to Bigin and looking for a "best" strategy. I had and have the following idea for an use case: 1. Search for websites which I want to contact 2. Create a contact in Bigin with all the required information based on this website (via API if
                                                                                                          • Better implementation of Item Category on Invoices and Estimates

                                                                                                            1) I have added Item Category as a custom field. Honestly, this should be a native part of the item itself, and either required, optional, or not used.  2) When entering an item on an invoice, you have to enter the first character(s) of the item, otherwise
                                                                                                          • Bulk Update (via the 'Accountant' menu)

                                                                                                            Why can't we bulk update Expenses to Owner's Drawings? It always ends in failure with the error "Involved account types are not applicable". If such conversion isn't possible, why make the option available? Better to allow it though.
                                                                                                          • Set Reply_to parameter for "Email an Invoice" API Endpoint

                                                                                                            Is there a way to set "Reply To" email address when using the Email an invoice API endpoint? It doesn't seem to be in documentation, but sometimes there are undocumented parameters. If it doesn't exist, please consider adding it as parameter since all
                                                                                                          • Zoho Books adaptado a la legislación española. ¿Sustitutos?

                                                                                                            Buenas a tod@s No tenemos información sobre la adaptación de Zoho Books a la nueva ley de facturación en España. Me preguntan usuarios de zoho que deberían hacer. Propongo una lista de alternativas, si al final se opta por no desarrollar la funcionalidad
                                                                                                          • Next Page