Customizing form events in Zoho Projects with CodeX

Customizing form events in Zoho Projects with CodeX


Dear users,

Beyond Task Lists is a series of articles aimed at showcasing the various customization capabilities of Zoho Projects. We'll discuss real life project management scenarios, use cases, and requirements that needs combining multiple features. This article is about using CodeX to customize the tasks and projects module.

Zoho Projects offers comprehensive automation and customization for modern project management: workflows, blueprints, and business rules. But when you want to make that near impossible customization happen, CodeX is here to help.

With CodeX, you can use Javascript SDKs on the project or task records before or after creating, editing, or deleting them. (Note: CodeX scripting is available in the free plan and all paid plans. Execution is limited by CodeX credits.)

This includes special cases like:

Info
1. Applying restrictions to record updates
2. Restricting field edits unless conditions are met or until a status changes

Use case:

An Indian firm with multiple locations needs to file tasks by region. Each task layout has drop-downs for the state and city, but users often mismatch the selections, causing confusion. In this case, workflow automation doesn't solve the issue.

The solution flow:
  1. Click the Setup icon in the top right.

  2. Select Developer Space and click CodeX Scripts.

  3. Give a name for the script, choose the Task module, select a layout, and choose Before Create as the event.

  4. Paste the following script into the CodeX terminal and click Save.
    1. function main() {

      // define states and cities
      const states = [
      {
      state: "Tamil Nadu",
      cities: ["Madurai","Chennai","Trichy"]
      },
      {
      state: "Karnataka",
      cities: ["Tumkur", "Mysuru", "Bangaluru"]
      },
      {
      state: "Kerala",
      cities: ["Cochin", "Ernakulam", "Kottayam"]
      }
      ];

      // capture state selection
      let state = current.record.state;

      // capture city selection
      let city = current.record.city;

      // Find matching state
      const stateObj = states.find(s => s.state === state);

      // Validate city against district
      if (!stateObj.cities.includes(city)) {
      throw new ScriptError(` ${city} is not in $(state)`);
      }
      }
      




      This way, when a city not in the corresponding state is selected, the system throws a custom-defined error.

Idea
Pro-Tip: With CodeX, you can also:

1. Make HTTP requests to other apps.
2. Update tasks or project records based on conditions.
3. Retrieve record details and update other project records in your portal.

Take a look at our help docs for more details - CodeX in Projects.

Have questions you think might require CodeX? Reach out to us and we can help. Want us to write about an aspect of Zoho Projects in detail? Let us know and we can add it to our list.

Best,
Zoho Projects Team

    • Sticky Posts

    • CodeX Scripts for Enforcing Custom Project Logic

      Every organization has a defined way of executing projects. There are clear expectations around how tasks should move, when projects should progress, and which actions require validation. When these rules are consistently followed, projects remain structured
    • Automation Series: Auto-create Dependent Task on Status Change

      In Zoho Projects, you can automatically create and assign a dependent task when a task’s status is updated. This helps teams stay aligned, ensures reviews happen on time, and reduces manual effort. In this post, we’ll walk through an easy setup using
    • Time Log Reminder

      Tracking the time spent on tasks and issues is one of the most important functions of a timesheet. However, users may forget to update the time logs because they have their own goals to achieve. But, time logs must be updated at regular intervals to keep
    • Introducing the Zoho Projects Learning Space

      Every product has its learning curve, and sometimes having a guided path makes the learning experience smoother. With that goal, we introduce a dedicated learning space for Zoho Projects, a platform where you can explore lessons, learn at your own pace,
    • Update on V2 API End-of-Life Timeline

      Dear Users, Earlier this year, we shared the launch of the V3 APIs and requested users to migrate from the older V2 APIs by December 2025. We have received valuable feedback from our users and partners regarding their migration timelines. We are happy
    • Recent Topics

    • Customize your Booking page using Zia

      We’re excited to introduce an AI-based enhancement that automatically customizes your booking page effortlessly. By simply providing your business website URL, Zoho Bookings can automatically design a booking page that matches or complements your brand
    • Multiple header in the quote table???

      Hello, Is it possible in Zoho CRM to add multiple headers or sections within the Quote product table, so that when the quote is printed it shows separate sections (for example “Products” and “Services”)? To clarify, I’m asking because: This does not appear
    • Zoho mail to contacts and leads, but not to accounts?

      We use the accounts tab a lot for our business because they can be linked to the sales orders. Now we want to use the mail add on to link communication of our emails to our accounts. However this is only possible for contacts and leads? It would be convenient
    • API keys not showing in ZeptoMail dashboard

      Hi there, I'm hoping someone can provide some assistance as support isn't replying. I am trying to configure my transactional emails, but the dashboard doesn't show any of my API details - the `div` is there but it's emtpy. Every time I click "Generate
    • Reading from and writing to Zoho Projects Custom Module with Deluge

      Does anyone know if there is a way to read from and write to the Custom Modules that Zoho now supports. I would love to be able to loop through a set of data and create the entities I need to for this new custom module I'm looking to put together.
    • How Does Knowledge Base Search and Article Recommendation Work?

      Hello, I would like to understand how the Knowledge Base search engine works. Specifically, does it search based on: The article title only? The full article content? Both, the article and the content? Keywords? Tags? Also, how does the system determine
    • Zoho Books/Inventory - Restrict Items With Pricebook

      Hi Zoho Team, I'm trying to address as use case where a client needs to restrict which products certain customers can purchase. I have been able to find a way to do this based on the current Zoho Books or Zoho Inventory configuation. My feature request
    • Best Way to Integrate Zoho Campaigns with Amazon SES Without Third-Party Tools

      I am looking for the most seamless and efficient method to integrate Zoho Campaigns with Amazon SES. My goal is to avoid using any third-party automation tools like Zapier, Make, or Pabbly, and instead, leverage Zoho's native capabilities for this integration.
    • How to charge Convenience fee OR payment gateway charges to the end client who is paying the invoice?

      Hello, I am creating this topic after having discussions with various sets of users and have understood that with people moving more and more to digital payments, it is important for the client to enable the "Convenience fee" kind of scenario. I have
    • Card payment surcharge?

      Hi, I would like to offer my customers the ability to pay invoices by card (using the PayPal integration). However, PayPal charges me around 5% to receive a card payment, and I would like to pass on this cost to my customer by way of a card payment surcharge. Is there any way for Zoho Invoice to be set up to automatically add a defined "card processing fee", say 5% of the invoice total, if the customer elects to pay by card? I don't want to add this on to invoice manually, since most of my clients
    • Javascript Error

      I don't know how this happened but I'm constantly getting popup windows with Javascript coming from Notebook. I have no idea why this is happening. Screen shot attached. Thanks, Joe Berry
    • Zoho POS App Hanging Issue – Sales Becoming Difficult

      The Zoho POS app frequently hangs and becomes unresponsive during billing, making it very difficult to complete sales smoothly. This commonly happens while adding items, during checkout, or at payment time, especially during peak hours. These issues cause
    • Tip #62- Exploring Technician Console: Send Ctrl + Alt + Del- 'Insider Insights'

      Hello Zoho Assist Community! This week, we’ll be exploring the Send Ctrl + Alt + Del option in the Technician Console. Let’s jump right in. System administrators often rely on Ctrl + Alt + Del when managing remote devices that have unresponsive applications
    • Disappearing Mouse cursor in Zoho Mail / Windows 11 (Chrome + Edge)

      I'm seeing an issue when writing mails with the light theme with the mouse cursor being white and the document area also being white - making it nearly impossible to see the mouse cursor. I see the problem on Windows 11 under Chrome and Edge. (Yet to
    • Temporarily rate limited due to IP reputation.

      We have suddenly started receiving the following Mail Delivery Status Notification: Diagnostic-Code: 4.7.650 The mail server [136.143.184.12] has been temporarily rate limited due to IP reputation. For e-mail delivery information, see https://aka.ms/postmaster
    • SKUs for Invoices, POs, etc.

      It doesn't appear that one can enable SKU display on invoices, POs, etc. This is problematic, and I don't see a good reason why this shouldn't be an option. Some of our vendors and customers use this in their system. Every other identifier code is available
    • how to avoid duplicate customer

      How can i avoid to create a duplicate customer. I charged a same customer with two different plans and it showed up twice in my customer list and subsequently in Zoho books contacts. It creates confusion to have a same customer appears multiple times in customer or contact list. How can i avoid it.
    • Tags with spaces

      I imported notes from Evernote where tags can have spaces in them (for example "House Expenses" or "House Improvements". The import worked fine. Now I want to add a new note and assign it a tag. As soon as I type "House" followed by the space I get a
    • RSC Connectivity Linkedin Recruiter RPS

      It seems there's a bit of a push from Linkedin Talent Solutions to keep integrations moving. My Account Manager confirmed that Zoho Recruit is a Certified Linkedin Linkedin Partner but does not have RSC as of yet., (we knew that :-) She encouraged me
    • im facing issue on generate the Estimate price

      i couldn't understand what is the issue , i cant generate Estimate price where is the issue
    • cannot be able to add user

      Dear team I tried to add a new user for sales team, but after entering the OTP its showing error message cannot add now
    • Changing an existing item to different accounts & inventory-tracked

      Hi everyone, I have an item in Zoho Books that was originally set up as a non-inventory item. Over time, I associated it with different sales and purchase accounts, and I now have many invoices, bills, and reports that use this item. My business process
    • How do I edit the Calendar Invite notifications for Interviews in Recruit?

      I'm setting up the Zoho Recruit Interview Calendar system but there's some notifications I don't have any control over. I've turned off all Workflows and Automations related to the Calendar Scheduling and it seems that it's the notification that is sent
    • big 5 accounts

      how do you find what accounts are listed as Big 5 ?
    • Zoho recruit's blueprint configuration is not functioning as mapped

      Current Status: Zoho Blueprint is not functioning as configured. Issue: We are moving a Candidate status in Zoho Recruit "for active file" but we encountered: "Status cannot be changed for records involved in Blueprint." This happens to various client
    • 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
    • Delay in rendering Zoho Recruit - Careers in the ZappyWorks

      I click on the Careers link (https://zappyworks.zohorecruit.com/jobs/Careers) on the ZappyWorks website expecting to see the job openings. The site redirects me to Zoho Recruit, but after the redirect, the page just stays blank for several seconds. I'm
    • favorites no longer listed

      Hello, I can no longer navigate to my Favorites from the pulldown at the top of my grid view (see attached screenshot). I wasn't able to find it anywhere! Please help me display my Favorites. Thank you!
    • How to add interviews through API

      I'm trying to add an interview without much luck. The documentation gives examples of adding just about everything except an interview. However, the issue might be the way I'm formatting it, because the documentation is unclear to me. It seems as if the xml should be passed in the url, which seems unusual. I've tried the data as both plain and character escaped, but nothing seems to work, nor do I even get an error response. https://recruit.zoho.com/recruit/private/xml/Interviews/addRecords?authtoken=***&scope=recruitapi&version=2&xmlData=<Interviews> <row
    • Offer already made- but I withdrew it

      I made an offer letter, but made a mistake on it. I withdrew the offer but now I can't recreate the correct offer. Zoho keeps saying that "A same offer has already been made". I look in the "offers" and there are NO offers (this is the first time I've
    • Control the precision of answer bot responses

      Hello everyone, Admins can control the precision with which the Answer bot analyzes and generates a response by adjusting the threshold levels. Based on predefined threshold values, Zia analyzes how closely the query matches with the available KB articles.
    • Rebrand your CRM with the all-new custom domain mapping setup

      UPDATES TO THIS FEATURE! 19th Jan, 2024 — Custom domain mapping has been made available for portal users in Zoho One and CRM Plus. 23rd June, 2023 — Custom domain mapping has been made available for all users, in all DCs. Hello everyone! We are elated
    • Add Israel & Jewish Holidays to Zoho People Holidays Gallery

      Greetings, We hope you are doing well. We are writing to request an enhancement to the Holidays Gallery in Zoho People. Currently, there are several holidays available, but none for Israel and none for Jewish holidays (which are not necessarily the same
    • Sender Email ID is duplicate

      My sender id "automate@erplaunchpad.com" is coming as duplicate but I have not used it anywhere else please help
    • Building Toppings #6 - Install and uninstall actions

      Hello Biginners! In our previous forum post, we explored creating connections - specifically, custom service connections in the Bigin Developer Console. In this post, we'll focus on another feature that can be used in every topping: install actions. We'll
    • New UI in Zoho One CRM

      Hello, Just switched to the new UI for Zoho One CRM, do not like it, especially the search functions. What are the steps to backstep to the previous UI? UPDATE: I found it.
    • App like Miro

      Hi all, is there a way to have a interactive whiteboard like in Miro? We want to visualize our processes and workflows in an easy way.
    • Important updates to your connectors

      Hello everyone, Greeting from Zoho Creator! We're excited to announce that we'll be rolling out significant backend updates to Zoho Creator's built-in connectors to enhance security by following the latest frameworks. The existing version of some of the
    • How Do Mutliple Sales People Prospect in the "LEADS" module without calling the same leads?

      We have 4 sales reps and the Leads module does not have real time intuitive knowlodge to make the sales rteps dont call the same people at the same time. How can we crate a fluent prospecting sytem where the salres reps can go out bound without calling
    • Keeping track of project expenses

      I have talked to a few support techs and it is very hard for me to believe that Zoho's project accounting software can't keep accounts for my projects. I must not understand what they're saying. We get a contract to build something. So the project revenue
    • Next Page