Client Script Support for Notes Related List

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 to prevent unwanted changes to notes by specific profiles based on custom criteria. With Client Script, you can enforce rules that control edits based on user profile and deal stage, ensuring critical notes remain accurate and protected. This use case was taken from the context discussed in this post.

In this Kaizen post, 


  1. Supported Events for Notes Related List
  2.  Supported ZDKs for Notes Related List
  3. Use Case
  4. Solution
  5. Summary
  6. Related Links



1. Supported Events for Notes Related List

onBeforeAdd

This event occurs just before a new note is added to the Notes Related List. Use this event to validate the data or modify note content automatically before the note is created.

onBeforeUpdate

This event occurs just before an existing note in the Notes Related List is updated. It allows you to enforce validation or make changes to the note data before the update is saved.

Click here to know more about the supported events.

2.  Supported ZDKs for Notes Related List

The following Client Script ZDKs can be used to perform actions in Notes Related List.

Retrieves the current value of a field in Notes Related List.

Sets or updates the value of a field in Notes Related List.

3. Use Case: Stage-Based Notes Lock for Specific User Profiles based on Deal stage

Quote
At Zylker, when a Deal is in Proposal/Price Quote, Negotiation/Review, or Closed Won/Closed Lost, a Sales Representative should not edit existing notes. This ensures that critical approval comments, pricing details, and final decisions remain unaltered, maintaining clarity and audit compliance.
Preventing edits ensures critical approval comments, pricing details, and final decisions remain accurate.

4. Solution

  1. Go to Setup > Developer Hub > Client Script. Click +New Script.

  2. Specify the details to create a script and click Next.


  3. Enter the following script and click Save.
  1. var dealStage = ZDK.Page.getField("Stage").getValue();
  2. // Stages where notes should not be editable by Sales Reps
  3. var restrictedStages = [
  4.     "Proposal/Price Quote",
  5.     "Negotiation/Review",
  6.     "Closed Won",
  7.     "Closed Lost"
  8. ];
  9. // Get current user profile
  10. var currentUserProfile = $Crm.user.profile;
  11. // Profiles allowed to edit notes
  12. var allowedProfiles = ["Manager", "Admin"];
  13. // If the stage is restricted and user is not allowed
  14. if (restrictedStages.includes(dealStage) && !allowedProfiles.includes(currentUserProfile)) {
  15.     // Log original note (optional)
  16.     log("Original Note:", ZDK.Page.getComponent("notes-editor").getValue());
  17.     // Show alert
  18.     ZDK.Client.showAlert("Your profile is *not authorized* to edit notes of a deal in " + dealStage +" stage.");
  19.     // Prevent further action
  20.     return false;
  21. }
  1. Define a variable restrictedStages that contains all the deal stages where notes should not be editable.

  2. Get the current deal stage using ZDK.Page.getField("Stage").getValue(), you fetch the stage of the deal currently being viewed.

  3. Get the profile of the current user using $Crm.user.profile. This helps you to find out the profile of the person trying to edit the note.

  4. Create an array allowedProfiles for profiles that are always allowed to edit notes.

  5. If the deal is in a restricted stage and the current user is not in the allowed profiles, show an alert to the user explaining they cannot edit the note.

  6. Stop the note from getting saved using return false.

  7. This way, the script protects important notes from being edited by unauthorized users during critical deal stages.

  8. Here is how the Client Script works.


5. Summary

In this post we have discussed,
  1. The Client Script events supported in Notes
  2. The ZDKs available for use in Notes Related List
  3. How to prevent a note from being saved with custom criteria


Wishing you a joyful, successful, and inspiring New Year 2026 See you next week as we kick off an exciting New Year! 😄






      Zoho Campaigns Resources


        • 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

          Zoho CRM Plus Resources

            Zoho Books Resources


              Zoho Subscriptions Resources

                Zoho Projects Resources


                  Zoho Sprints Resources


                    Zoho Orchestly Resources


                      Zoho Creator Resources


                        Zoho WorkDrive Resources



                          Zoho CRM Resources

                          • CRM Community Learning Series

                            CRM Community Learning Series


                          • Tips

                            Tips

                          • Functions

                            Functions

                          • Meetups

                            Meetups

                          • Kbase

                            Kbase

                          • Resources

                            Resources

                          • Digest

                            Digest

                          • CRM Marketplace

                            CRM Marketplace

                          • MVP Corner

                            MVP Corner




                            Zoho Writer Writer

                            Get Started. Write Away!

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

                              Zoho CRM コンテンツ




                                ご検討中の方

                                  • Recent Topics

                                  • Issue with Creator's IF logic

                                    Hi, I found the following code produces unexpected results: if(-1.0 < 0.0000000) {       info "True"; } else {       info "False"; } if(-1.0 < 0.000000) {       info "True"; } else {       info "False"; } The output returned is: False True However, the
                                  • Need option to send Package PDF in shipment email (Shipment PDF is missing Lot info)

                                    Is there any way to automatically attach the Package PDF instead of (or alongside) the Shipment PDF in the notification emails? We really need this feature because the default Shipment PDF creates a blind spot for our customers. It does not display Batch/Lot
                                  • zoho creator view is not present in the workspace and blank reports

                                    Hi Support,  Users who have "write" permissions keep getting this error for all of our embedded reports all of a sudden. See screen shot below: Meanwhile, my developer permissions account sees a blank screen in view and edit mode as shown in the screenshots
                                  • Customize portal email template

                                    Can i fetch only first name of the user in portal email template instead of the below code Hi ${User.FULL_NAME}
                                  • Can't we let users decide which options they'd like to add at embed widget?

                                    It seems embed widget DOES NOT offer a feature, where users can choose options upon subscribing plans. What Zoho has instead, is that admins have to manually create plan with options. How come no one in Zoho dev team never raised issue about usability
                                  • Reupload and rename from one field to another field (file upload)

                                    Hi Everyone, Sorry, i have question to use invoke url for rename and reupload attachments file to another field. Tested on development mode. Zoho C6. Refer to https://www.zoho.com/creator/help/api/v2/upload-file.html look my error notification. Does anyone
                                  • Printing Multi-Page Reports (PDF Export)

                                    Hi, I am moving a report from Google's Looker Studio to Zoho Analytics and trying to reproduce the Looker page by page dashboard editing experience. With Google, what you see is what you get when you print to PDF. But I can't seem to create the same experience
                                  • I NEED TO NUMBER TO TEXT NO HERE

                                    =NUMBERTEXT NEEED
                                  • Error: View is not present in the workspace

                                    When saving a dashboard, user receives a popup with the following error. "View is not present in the workspace" What does this mean or refer to? There is no further insight given.
                                  • Dear Zoho CEO: Business Growth is about how you prioritise!

                                    All of us in business know that when you get your priorities right, your business grows. Zoho CRM and Zoho Books are excellent products, but sadly, Zoho Inventory continues to lag behind. Just this morning, I received yet another one-sided email about
                                  • Bin Locations

                                    Dear all, I am wondering if someone has the ability to develop the bin locations option for zoho inventory (integrated with zoho books) Regards, Ryan
                                  • Create and populate a record in an instant: Introducing zero-shot field prompting to Zia's ICR

                                    A couple of months ago, we upgraded our in-house AI image detection and validation tool, Zia Vision, with intelligent character recognition (ICR). By training Zia with sample images, you could create and enrich CRM records with data extracted from standard
                                  • How to Prevent Users From Skipping LMS Videos in Zoho People

                                    How to Prevent Users From Skipping LMS Videos in Zoho People Hello Zoho Developers, In this blog, we will quickly look at how you can stop users from skipping or fast-forwarding videos in Zoho People LMS. Zoho People provides a feature called Disable
                                  • [Integration Edition] Deluge Learning Series – Custom API with Deluge | November 2025

                                    We’re excited to conclude this four-month Integration Edition of the Deluge Learning Series: Session 1 – Integrating Zoho Apps with Deluge Using Built-In Integration Tasks Session 2 – Integrating Zoho Apps with Deluge Using invokeURL and invokeAPI Session
                                  • Tips for Organizing Workflows and Improving Team Coordination in Zoho

                                    Hi everyone, I’m looking for some general advice on how different teams are organizing their daily work within Zoho’s apps. Our team recently expanded, and we’re trying to streamline how tasks, discussions, and documents are shared so everything stays
                                  • Prevent user from viewing all records?

                                    I have a report that is meant to be used by vendors to view only the records that are assigned to them. All the vendor information is stored in a separate application, so I need to call a function to get the current user's ID (not the zoho user ID). The report settings criteria doesn't support using function calls, so instead I'm embedding the report in an html page like this: if (thisapp.Global.CurrentUserIs("Vendor")) {       personID = common.getLoggedInPersonID();       query = "Assigned_Vendor.ID="
                                  • Zoho Site pages not displaying in iframes

                                    I simply want to show a Zoho Site page inside an iframe on another non Zoho website. When testing this across many browsers, the iframe content simply does not appear. IE reports that the host does not allow their content to be displayed in iframes. Very disappointing. Is there a way around this please? Here is the URL of the page I would like to appear in an iframe. http://ips-properties-to-rent.zohosites.com
                                  • ZUG Meet-ups are back - Across India (December 2025)

                                    The Zoho User Group (ZUG) meet-ups are back, and this time, we’re travelling across India to reconnect with our amazing community! From Chennai to Delhi, Bengaluru to Mumbai, we can’t wait to meet you all in person and talk everything Zoho SalesIQ, automation,
                                  • Zoho Inventory as connector in Zoho Creator

                                    Hello, It doesn't appear that Zoho Inventory is one of the many built in connectors in Zoho Creator? I see that there are non-Zoho inventory applications that have built in connectors such as Cin7, which leads me to believe that I'm missing something
                                  • Send Zoho Forms Link using Zoho CRM Email Templates

                                    I have set up Zoho Forms and CRM integration to pre-populate data from Zoho CRM to Zoho Forms. The setup is working fine. I have also created an email template in the Zoho CRM deals module to send Zoho forms links. So when I send an email using that template
                                  • My go to On Load Client Script - Fast, efficient, and works for ALL profiles; Hides everything except initial fields

                                    This is my on Load client script that I use for Create pages. I use a modified version for Edit and Display pages which you can create yourself using the same basic structure that I will give you below. First up, the script. Below that will be an explanation
                                  • Custom Search using HTM+CSS Snippet

                                    Suppose I wanted to create my own list view using HTML and CSS snippets inside a Page with a custom search input at the top of the list (not the Search snippet). Without Javascript, is there a way to retrieve a user's entry from that search input and
                                  • Zoho CRM Kiosk Upload Files

                                    Hello all, We are trying out Kiosks at the moment to see where it can fit best in our business. We are still a bit off in the application but lets say we will sort this out. My question is the following - when I create a Kiosk I can add "File Upload"
                                  • Double opt-in notifications and customizable confirmation messages for your webforms

                                    Dear CRM Community, We are excited to announce a major upgrade to our Webforms feature. You can now customize the confirmation message shown to your users who double opt-in from your webform and also customize your confirmation emails when they submit
                                  • Has Anyone successfully integrated Zoho and Sage Intact?

                                    Hey all, We’re evaluating Zoho One + Sage Intacct and I’m trying to connect with anyone who has actually implemented the two together.Specifically, I’d love to know: -- Which functions you kept in Zoho vs. Intacct (e.g., Product Catalog, AR/AP, invoicing,
                                  • Introducing Image Upload Field

                                    Hello everyone, In this post we will discuss about the benefits and usage of the Image upload field. The field is available for standard and custom modules.  Usage: This field can be used to upload a gallery of images to a record and share the record with peers or customers. The record can be made accessible to users outside of Zoho CRM via Portals, where they can upload the necessary images. Preview, editing, and deleting images: The uploaded images can be directly edited and saved from the record
                                  • Free webinar alert on November 19 - Email driven strategies - Master personality based styles

                                    Hello Zoho Community! Want to make email management easier, smarter, and more you? We’ve got just the session for you! Join our interactive, game-based webinar to discover how Zoho Mail adapts to your personality and work style. Learn practical hacks,
                                  • AI generated meeting notes associated to Account or Deal

                                    As our organization works to improve efficiency we are looking for a solution to leverage AI to generate meeting notes and then add those notes to a CRM record such as an Account or Deal. I see Zoho has a Notebook AI offering that talks about the ability
                                  • due date on cheue

                                    how to handle cheque in zoho books for customers and vendors including due date
                                  • Conta META desativada. Problema no uso do CRM Zoho e SalesIQ.

                                    Olá, Habilitei um número Whatsapp no SalesIQ em Agosto/2025 com sucesso. Agora concluí a configuração do Zoho CRM e ao habilitar o Whatsapp, descobri que a conta META foi desativada: Configurar CRM -> Canais -> Mensagem de negócio -> WhatsApp Você não
                                  • 'Statement of Accounts does not exist' error received, when creating PO using api in Zoho Inventory

                                    Here is request json -- JSONString = { "date": "2019-09-24", "purchaseorder_number": "PO-6-1", "delivery_date": null, "delivery_org_address_id": 36221200000056XXX, "vendor_id": 362212000000564XXX, "attention": "Testing", "line_items": [{ "unit": "Pieces", "account_id": 36221200000003XXX, "quantity": 1, "item_id": 362212000000049XXX, "tax_type": "", "tax_name": "", "name": "One HD", "purchase_rate": 85, "tax_percentage": 0, "item_total": 85.00, "tax_id": "", "warehouse_id": 362212000000564XXX }] }
                                  • Zoho Projects API 100 requests/2 min. Limit

                                    Hi Requesting clarification on the API documentation. "You can invoke or call an API for 100 times in a span of two minutes. If you invoke more than 100 times, the particular API request will be locked for the next 30 minutes. " Does this limit apply
                                  • Integrate your Outlook/ Office 365 inbox with Zoho CRM via Graph API

                                    Hello folks, In addition to the existing IMAP and POP options, you can now integrate your Outlook/Office 365 inbox with Zoho CRM via Graph API. Why did we add this option? Microsoft Graph API offers a single endpoint to access data from across Microsoft’s
                                  • Zoho Projects - Attachments added to Task and Bug emails are not saved

                                    Hi Projects team, I have been experimenting with emails into projects to create tasks and bugs. I have noticed that attachments added to the emails are not saved to the task or bug. Is this normal behaviour? Thanks, Ashley
                                  • Zoho Inventory's latest shipping integration updates at a glance.

                                    Hello Users, We would like to share some important news about our latest improvements in the Shipping integration capabilities of Zoho Inventory that we achieved in 2024 with some of our major integration partners in key editions across APAC, North America,
                                  • Sorting a list of record acquired from the zoho.crm.searchRecords function.

                                    This is something for which I'm trying to figure out a straightforward way to do. The searchRecords does a great job fetching me the records that I want. However, in some cases, where it returns multiple records, I want it to sort the returned list by date of creation of that record, so that when I do records.get(0), I get the most recent record.  As an example, here's my sample pseudo code: records = zoho.crm.searchRecords("Clients", "Office_Number:equals:123456"); Now the "records" list above contains
                                  • Zoho Inventory Custom Field Update

                                    Hello All, In this post I am describing how can we Update the Custom Field Value in Zoho Inventory. // Get Org ID orgid = organization.get("organization_id"); // Field Value resvp = ifnull(item.get("purchase_rate"),null); // Record ID iid = item.get("item_id");
                                  • Alphabetically

                                    How can i arrange alphabetically - (Manage Manufacturer) Field in Item Master 
                                  • Can i set a default value for country and state in address field in zoho creator?

                                    Can i set a default value for country and state in address field in zoho creator?
                                  • Convert HTML to PDF & Send as Email Attachments in Zoho Creator (Deluge)

                                    This approach is useful for sending welcome letters, instructions, or promotional offers after order creation. // 1. Define the variables using the submitted input customerName = input.Customer_Name1; orderID = input.ID; customerEmail = input.Email_Address; //
                                  • Next Page