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! 😄





    • 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
      • Recent Topics

      • How do I delete all my leads so I can start again?

        How do I delete all my leads at one time so I can start again?
      • Le cauchemar de PEPPOL avec Zoho Books

        Après de longues hésitations — car je défends toujours les produits Zoho malgré leurs imperfections —, je me suis décidé à poster cet avis sur ce forum. En effet, depuis plus de 5 mois, les nombreux soucis relatifs à la facturation par PEPPOL semblent
      • What is a realistic turnaround time for account review for ZeptoMail?

        On signing up it said 2-3 business days. I am on business-day 6 and have had zero contact of any kind. No follow-up questions, no approval or decline. Attempts to "leave a message" or use the "Contact Us" form have just vanished without a trace. It still
      • number auto generate

        There is a basic need for a function to auto generate numbers. Presently the help pages layout several confusing and non-working ideas. You will not get my subscription without a simple auto number function.
      • Mailbox delegation - A secure way to enable collaboration

        Admins often encounter scenarios where a user needs another team member to access and manage their mailbox during extended leave, role transitions, or while handling high email volumes. In such situations, ensuring business continuity without sharing
      • Service currently unavailable

        The Zoho Mail Webmail is working, the Mail Admin Console is not: "Our service is temporarily unavailable, please try after sometime." How long must I wait to retry? edit: To add to this, the Webmail is not working 100% - I can open mail in the inbox,
      • Email Opt Out Question

        Has the problem where if a customer is emailed opt out prevents you sending standard emails? For me this feature is simply to stop any email marketing and should not block people from receiving emails via Zoho mobile, which makes no sense.
      • Rich-text fields in Zoho CRM

        Moderation Update: During the initial release of Rich Text fields, it was supported only in the Enterprise and Ultimate editions. We have gradually extended Rich Text fields to all the paid editions of Zoho CRM. Hello everyone, We're thrilled to announce
      • incoming mails not received

        incoming mails not received
      • Power up your Kiosk Studio with Real-Time Data Capture, Client Scripts & More!

        Hello Everyone, We’re thrilled to announce a powerful set of enhancements to Kiosk Studio in Zoho CRM. These new updates give you more flexibility, faster record handling, and real-time data capture, making your Kiosk flows smarter and more efficient
      • FSM- are we getting there

        We have now tried the FSM a couple of times. We have been defeated on the offline access. As you can imagine the enginner needs to know the customers details, the job and the equipment. This needs to be cache. Is it yet? Plus Our engineers do multiple
      • Agents in Homepage

        Hello all, Your agents do useful work. They find things like important leads, deals, and updates for you. But until now, you could not see any of this on your Home page. To check what an agent had found, you had to open the agent on its own, away from
      • How can I get quantity number for each item from collection ?

        How can I get quantity from sub form in another form when I fetch data get it in collection  ​
      • Updates on Report Panel Selection Customization

        Zoho Dev Team, I would like to check if we have updates on Search Panel selection list. And if we can finally select a few instead of going to the list.
      • Global search

        Hi! I think it would be great to have a global search that would give you results from all records of a database, no only for a single field of a single form as we have now. Thanks!
      • Lightbox Pop-up form

        I would like to embed my form using the lightbox pop up. I don't want it to load automatically. I want it to load when some clicks the button. I can see this option, however when I use the "show pop-up launch button" on the website, the button automatically
      • Format print pos

        can anyone help me create a format to print in thermal pos format as epson t20ii printer
      • Getting the Record ID of a form once it is submitted - so that form can be edited later

        In Zoho Forms, where can I access the record ID of a form once the form is submitted? - Record ID is not available in webhook payloads - It is not available to form fields, including in formulas - It is not available as a parameter in a thankyou page
      • Tip#51: Use Nested Picklists for cleaner forms

        Are you looking for a dropdown field that branches out with multiple child options? Zoho Sprints supports Nested Picklist where you can create a parent-child relationship to navigate the users seamlessly with the required options. This ensures that the
      • #19 The Easier It is to Pay, the Faster You Get Paid

        In our previous post, we looked at recording offline payments to keep your books accurate. But what if you could eliminate that manual step altogether? Imagine sending an invoice where your customer doesn't have to copy your bank details, switch between
      • All new Address Field in Zoho CRM: maintain structured and accurate address inputs

        Availability Update: 29 September 2025: It's currently available for all new sign-ups and for existing Zoho CRM orgs which are in the Professional edition exclusively for IN DC users. 2 March 2026: Available to users in all DCs except US and EU DC. 24
      • Mass Email: Individual or Bulk?

        Can anyone confirm that the mass email feature sends as an individual email or as bulk? I'm curious to know what a mass email header looks like.
      • How do I add our corporate fonts to campaign template?

        We have developed a custom campaign template in Zoho Campaigns. Unfortunately there is such a small option of fonts by Zoho default. We need to add our 2 corporate fonts so that our campaigns are in line with our brand. How do we do this?
      • Export current view on timesheet bug?

        When you export current view on timesheet, which is a welcome change, it states: Only the current view with its visible columns will be exported from Zoho Books in CSV or XLS format.". However when this is done, the current view is not fully exported.
      • What's New in Zoho Invoice | April – June 2026

        Hello everyone! We're back with the latest updates and enhancements we've rolled out in Zoho Invoice from April to June 2026. Here's what's new this quarter: Connect Zoho Invoice to AI Using Zoho MCP Customize Accessibility Preferences Attach Annexure
      • Marketing Tip #38: Increase order value with free shipping thresholds

        Free shipping is one of the easiest ways to nudge customers to spend a little more. Instead of offering free shipping on every order, set a minimum order value customers need to reach. This encourages shoppers to add one more item to their cart, which
      • Integration between Zoho Creator & Zoho Projects?

        Hie , Integration between Zoho Creator & Zoho Projects? Is that possible if yes then How??
      • Zoho CRM's Old User Interface is set for EOL - Deadline and What to Expect

        Hello Everyone, We are nearing the completion of enabling the Next Gen UI for users as announced in this post. The Next Gen UI introduces CRM For everyone with an improved workspace experience housing features like Teamspaces, Team Modules, enhanced views,
      • Error AS101 when adding new email alias

        Hi, I am trying to add apple@(mydomain).com The error AS101 is shown while I try to add the alias.
      • Improved Email Management: More control over outgoing email delivery in Zoho Creator

        Hello everyone, Managing how your Zoho Creator applications send emails just got a whole lot more powerful. We've completely revamped the Email Management feature to give you greater flexibility, better deliverability, and deeper control over your outgoing
      • Send a converted Contact or Deal back to Leads using the Restore Lead extension for Zoho CRM

        Hello everyone, This comes up more than people expect: a Lead gets converted into a Contact, and sometimes a Deal along with it, because at the time it looked ready. Then the situation changes the opportunity turns out to be much further off than expected,
      • Marketer's Space: Make your emails more engaging with polls and surveys

        Hello Marketers! Welcome back to Marketer's Space. This week, we're looking at two features that can turn a one-way email blast into an actual conversation: polls and surveys. Why to use polls and surveys? Most emails go out and you hear nothing back.
      • DYK 9: Dependent Layout Rules

        Did you know that you can configure dependent fields in Task and Issue Layouts? In a project, tasks and issues vary in nature and so do the fields needed for each. Displaying relevant fields and values keeps the layout organised and ensures necessary
      • Error when connecting zoho projects mcp to Claude

        When trying to connect zoho projects mcp through cloude, I am redirected to zoho login page, and then after adding my registered email I receive this error: Error while Initiating OAuth Invalid server url. Kindly re-verify oauth url from metadata and
      • Item image on document

        I know what I am asking may not be possible, but I will ask anyway, maybe I will get lucky, and someone else is doing it. My business is based on special orders only from various online stores. When I send a quote to a client, I generate a separate quote
      • Cash Recipt

        You can not receive cash more than 10000 from one party in a day and two lakh in a year. In statement you can't differentiate cash or bank receipt. zoho does not support this
      • MCP > Creator connection failing with Claude

        I'm trying to get claude to access any of my Zoho Creator apps and it keeps failing. I have enabled all tools for creator and ensured in claude settings that everything is authorised. Here is what claude says : Unfortunately, the error messages I'm receiving
      • Zoho Analytics Aggregates

        I have the attached report that lists Jobs and I want to aggregate the totals of Total Budgets, Total Bills and Difference for each Construction Stage. Can anyone tell me how I aggregate them?
      • Customer/Vendor Portal session duration - can it be extended?

        Hi all, We'd like to know how long the login session lasts for the Customer/Vendor Portal in Zoho Books, and whether there's any way to extend it (either through settings or via support/API). Right now this is causing a pretty poor experience for our
      • is it possible to adjust the date field to show Monday as a first day

        Hi, Is it possible to adjust somewhere the date field, so the first day of the week is Monday (instead of Sunday)? Thank you! Ferenc
      • Next Page