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

      • POP/SMTP access authentication failed

        I am unable to log setup outlook for my zoho mail account. I am using these settings poppro.zoho.com port 995 SSL smtp.zoho.com port 587(tls)/465(ssl) username/password works on mail.zoho.com but not with POP access. Can you help?
      • Our Review Of Zoho CRM after 60 Days

        The purpose of this is to just share with Zoho why I love their product, but ultimately why I could not choose Zoho CRM for our next CRM. About two months ago we begun a CRM exploration process for our financial planning firm, based in Texas. We already
      • 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.
      • This domain is not allowed to add. Please contact support-as@zohocorp.com for further details

        I am trying to setup the free version of Zoho Mail. When I tried to add my domain, theselfreunion.com I got the error message that is the subject of this Topic. I've read your other community forum topics, and this is NOT a free domain. So what is the
      • Allow Admin to Configure Report > More Options Button

        As an Admin, I want to configure the options of the Report > More Options button to improve UX and reduce Developer overhead. See attached screenshot. Original question posted here: https://help.zoho.com/portal/en/community/topic/modify-standard-rep
      • Generate a link for Zoho Sign we can copy and use in a separate email

        Please consider adding functionality that would all a user to copy a reminder link so that we can include it in a personalized email instead of sending a Zoho reminder. Or, allow us to customize the reminder email. Use Case: We have clients we need to
      • You cannot send this campaign as there is no contact in the selected mailing list.

        We have synced contact lists and sent campaigns just fine prior to today.  Now no matter what list I upload when I go to send the campaign it gives an error "You cannot send this campaign as there is no contact in the selected mailing list." And now it
      • Pivot Report Formula - using a today() variable

        Is it possible for me to use a value of today() in a formula on a pivot table? I'm trying to identify where the end date of a project is greater than the current date if("10. Projects (Zoho Projects).End Date" > today(), 'Yes', 'No') I get the error that
      • Cannot connect IMAP to outlook

        Hello I have followed the instructions to connect my zoho account to Outlook IMAP but get this message: Session Id: bba118fb-151c-824f-9512-3ad1e91b109d Timestamp: 1708976566964 Error code: INVALIDCREDENTIALS INTERACTIONREQUIRED I'm using the exact configeration
      • Department Overview by Modified Time

        We are trying to create visuals to show the work our agents do in Zoho Desk. Using Zoho Analytics how can we create a Department Overview per modified time and not ticket created time? In order for us to get an accurate view of the work our agents are
      • Enhance Sign CRM integration

        Hello all, I'm working on a custom Deluge script to enhance the integration between Zoho CRM and Sign by using a writer merge template for additional flexibility. I want to replicate the post-sign document integration that exists between CRM and Sign
      • Support inefficiency

        We have been asking for support for a minor adjustment for 12 days now and we haven't got a single viable resolution from support team despite there are 19 emails going between our HR team and various support emails from Zoho. 1. they do not understand
      • Zoho Workdrive download was block by security software

        Hi Team, Recently workdrive download was blocked by huorong security. Could you please advise how to put zoho workdrive as white list? every time we put "*.zohoexternal.com" or "workdrive.zohoexternal.com", the warning msg will still pop in next dow
      • Choosing a portal option and the "Unified customer portal"?

        I am trialling Zoho to replace various existing systems, one of which is a customer portal. Our portal allows clients to add and edit bookings, complete forms, manage their subscriptions and edit some CRM info. I am trying to understand how I might best
      • General feedback

        I think Zoho is at the moment (potentially) the best, or perhaps the only, real online solution, for business, and not just business. Surely the only one that has all the features that I need (and I've probably tried everything, at least all that has a cost-free option). It has still got lots of bugs and imperfect features, so I do hope it keeps developing and becomes a really professional platform. Lots of people (including me) want to use such one platform for all scheduling/mail/note-taking...
      • How to add SSL to Short URL custom domain?

        Hi, I've added a custom domain the the URL Shortener Domains. It's creating the short URL fine, but when clicking through, firstly I get an SSL warning, then a 400 Bad Request warning.
      • Single Portal for Multiple Apps

        Hello, I'm just getting started with Zoho and I'm very overwhelmed. I am currently using the free trial of Zoho One, but if I can figure it out, I intend to upgrade to the paid version. Zoho One, of course, gives me  access to an entire suite of services/applications. One of the things I'd like to do is have a single place for clients (customers?) to log in and view current projects, invoices, contact information, etc. A single login for my clients. A single portal. I've come across documentation
      • Antispam validation failed for your domain in Accounts

        I tried adding a domain to zeptomail.zoho.com, but the “add domain” operation failed. The front‑end error reads: “Domain could not be added. Please contact support@zeptomail.com.” The back‑end API returned: ``` { "error": { "code": "TM_3601", "details":
      • 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
      • Cancelled appointments still block out timeslot

        I haven't had to test this before, but I've just found a problem. I had an appointment in a certain timeslot, and that appointment was cancelled. However, Bookings won't let another appointment be booked in that slot - it makes that time unavailable until
      • Preventing Group Emails From Being Sent to Group Member Personal Mail

        We have a group setup for a public facing email address. We have streams turned on for this group. Right now when an email is sent to this group email it hits the group stream and also sends a copy of the email to all group members. We'd like to disable
      • Unusual activity detected from this IP. Please try again after some time.

        Hello Zoho admin and IT team We are a registered website in Eloctronic services and we been trying to add our users to the zoho system but this issue faced us ,, hope you unlocked us please.
      • ¿Puedo migrar mi sitio desde WordPress a Zoho? ¿Zoho admite herramientas con código personalizado?

        ¡Hola comunidad! Estoy evaluando la posibilidad de migrar mi sitio web https://calculadoradenotas.cl/ desde WordPress a una solución Zoho, y tengo algunas dudas técnicas que espero puedan aclararme. Mi sitio no es solo informativo: es una herramienta
      • How do I link my invoice to an estimate?

        There has been instances where I have created estimates, however, invoices for the same estimate were created independently. The status of these estimates hasn't converted to 'invoiced'. 
      • Zoho Books (and other finance suite apps) - Retrospective Linking of Invoice and Sales Orders to Quotes.

        In some cases, Quotes and Invoies may be created sperately instead of using the convert feature. In this feature request I am asking for the Finance Suite team to consider adding a lookup field to reference the quote on Invoices and Sales Orders, or some
      • Impossible to import Journal from Freshbooks

        I have been trying to import journals from Freshbooks since August 30th. Every time I try to import, I get an error message. I have already made sure every row has a date. First it was saying the account and notes had unexpected input and that every debit/credit
      • Peppol: Accept Bill (Belgium)

        Hi, This topic might help you if you're facing the same in Belgium. We are facing an issue while accepting a supplier bill received by Peppol in Zoho Books. There is a popup with an error message: This bill acceptance could not be completed, so it was
      • Convert invoice from zoho to xml with all details

        How to convert an Invoice to XML format with all details
      • Prevent subform editing on a module's detail's page

        Hi everyone, We would like to prevent any editing of the subform data in the : Create page Edit page Details page (as subform editing is now allowed by the recent UX update) We are able to prevent editing by making the subform fields read only in the
      • Export Invoices to XML file

        Namaste! ZOHO suite of Apps is awesome and we as Partner, would like to use and implement the app´s from the Financial suite like ZOHO Invoice, but, in Portugal, we can only use certified Invoice Software and for this reason, we need to develop/customize on top of ZOHO Invoice to create an XML file with specific information and after this, go to the government and certified the software. As soon as we have for example, ZOHO CRM integrated with ZOHO Invoice up and running, our business opportunities
      • Refresh frequency

        Dear Zoho Team, I really, truly appreciate that Zoho Books gets frequent updates. As a matter of fact this is how a good SaaS company should stay on top. However, I feel that I have to hit refresh almost every day. This was exciting at the beginning but
      • Zoho Books | Product updates | January 2026

        Hello users, We’ve rolled out new features and enhancements in Zoho Books. From e-filing Form 1099 directly with the IRS to corporation tax support, explore the updates designed to enhance your bookkeeping experience. E-File Form 1099 Directly With the
      • Weekly Tips : Save Time with Saved Search

        Let's assume your work requires you to regularly check emails from important clients that have attachments and were sent within a specific time period. Instead of entering the same conditions every time—like sender, date range, and attachments included—you
      • Bring real app analytics into Zoho Creator apps with Zoho Apptics

        We’re kicking off the year with a release we’ve been looking forward to for a long time. After being in the works for a while, Zoho Creator and Zoho Apptics are now officially integrated, bringing in-depth product analytics directly into the Zoho Creator
      • Discontinuing Zoho ShowTime service on May 30, 2026

        Hello everyone, As a follow-up to our earlier announcement, we’d like to share an important update regarding Zoho ShowTime’s discontinuation timeline. Zoho ShowTime, our online training platform, reached its end of life on December 31, 2025, and its services
      • emailing estimates

        Shows up in the customer mail logs as sent but nobody is receiving them, even when I send them to myself I don't get them ??? Something wrong with the mail server or my end ?
      • Ability to CC on a mass email

        Ability to CC someone on a mass email.
      • No background for video recordings, no playback speed, can't even playback longer recordings - have to download…

        Hi. We utilize heavily video messages on Slack, but wanted to migrate to Cliq with Zoho One, however very basic yet very frequently used feature is missing: backgrounds for video recordings and playback speed. We were not happy with Slack's 5 minute limits
      • Bookings duration - days

        Hi team, Is there any way to setup services/bookings that span multiple days? I am using Zoho Bookings for meeting room bookings. Clients may wish to book a room for more than one day, for up to a month.  If not, is there a plan to allow services to be setup with durations of Days as well as hours and minutes? Many thanks, Anna.
      • Customer address in Zoho Bookings

        Hello,  Is it possible to add customer address information to the Zoho bookings appointment screen? Or have it pull that information automatically from the CRM? We are wanting to use this as a field management software but it is difficult to pull the address from multiple sources when it would be ideal to have a clickable address on the appointment screen that opens up the user's maps.  It would also be advantageous for the "list view" to show appointment times instead of just duration and booking
      • Next Page