Build an approval management system with Custom Modules

Build an approval management system with Custom Modules



Dear users,

Task management is at the heart of project management. But not all tasks are created equal. You can have your tasks reviewed before any work begins, to improve transparency or stay within budget or as part of your process. Zoho Projects allows approvals for projects and timesheets by default. With custom modules, codex, workflows and custom functions, you can help them set up approvals for manual evaluations like budget approvals, contract sign-off, etc.

Custom modules

As part of
Projects Infinity, Zoho Projects allows you to extend project management capabilities using
custom modules. You can now build additional capabilities that aren't available by default, like:

  1. Inventory tracking

  2. Fleet management

  3. Approval handling

  4. Resource management

  5. And any custom business logic


Custom modules can be created for the entire organization or for a specific project. You can also choose from a gallery of pre-built modules. Each custom module supports its own set of fields and automation workflows, too.

CodeX:

Alongside blueprints, workflows, and business rules, Zoho Projects allows you to use Javascript SDKs on the project or task records before or after creating, editing, or deleting them.

With CodeX, you can:

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.

(Note: CodeX scripting is available in the free plan and all paid plans. Execution is limited by CodeX credits.)

Quote

Use case

Let's consider a multi-location consulting firm that's looking to make budget reviews more transparent for clients. For instance, tasks with a budget over INR 50,000 must be approved by a project manager before any work begins. Tasks should not be assigned to team members or allowed to change status until they are approved.


We can achieve this using a combination of
custom modules, workflows, custom functions, and CodeX.

I. A custom module to handle the approvals


First, create a custom module named
Approvals to capture task approval requests. It can contain fields for the task name and the approval status, along with other fields like Created By, Approved By, Created Time, and Approved Time. Assign the manager or portal admin as the approver.


An approval record is created in the Approvals module every time a task is created with a cost estimate of INR 50,000 or more. You can add a picklist field to approve or reject the task.



II. A
workflow to push task details


Define a workflow that triggers whenever a task is created with a budget greater than INR 50000, and place the task On Hold. You'll also need a custom function to push the task details to the Approvals module.




III. A custom function to create the record

The custom function should capture the task details and create a record in the Approvals module. The default status will be Pending or In Progress.




IV. A CodeX script to prevent task edits


Create a CodeX script to restrict edits to the task while it is
On Hold.

 

Now, when a user tries to update a task that is On Hold, CodeX restricts updates to it. (You can choose which user profiles can or cannot make the updates)



 

Finally, to lift the restriction on task edits, a workflow rule can be set up in the Approvals module to change the status of the task to Open or Approved. This will signal CodeX to allow editing the task.




We now have a custom approval management system for a simple criterion. You can build even more complex systems for your clients.

IdeaPro tipThe same process can be built using a blueprint to track all transitions to help visualize and manage various stages, all in one place. 

Not just tasks, you can build approvals for any module or flow that requires intervention and validation using custom modules, like:

a. Change request management
b. User/task assignment
c. Client consensus
d. Custom activity logs  

Have an approval management case you'd like to discuss? Share it with us and we'll help you out. Let us know if you'd like our partners to help you build custom logic for your business.

Want us to write about an aspect of Zoho Projects in detail? Let us know and we can add it to our list.


Best

The Zoho Projects Team

    • Sticky Posts

    • Introducing Version-3 APIs - Explore New APIs & Enhancements

      New Update - The end of life timeline for V2 APIs has now been extended to 30th June, 2026 Happy to announce the release of Version 3 (V3) APIs with an easy to use interface, new APIs, and more examples to help you understand and access the APIs better.
    • 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,

    Nederlandse Hulpbronnen


      • Recent Topics

      • Create formula calculations in Assemblies for scaling quantities

        Something we have been encountering with our composite items is dealing with scaling of quantity of one or more items within the composite assembly relative to the number of complete units being sold. I.e. running the equation 2(n-1) on one of the assembly
      • Lastest update

        The latest update to notepad has completely trashed all my notes. If I go to view it it just opens up a screen with a box with dotted lines around it for me to add something I can import saved nodes but you can't view them at all. Anybody else having
      • Tip #67- Exploring technician console: Disable Input Devices- 'Insider Insights'

        Hello Zoho Assist Community! Picture this: you are in the middle of a critical remote session, carefully configuring a system or running an important update, and the customer accidentally clicks somewhere or types something that undoes your progress.
      • What matters more in Zoho implementations: tools or system architecture?

        I recently worked on a full-stack migration for a catering equipment business using Zoho One with Shopify, and it raised a few interesting observations. The setup included migrating a large product catalog (around 9,700+ SKUs), integrating multiple supplier
      • Facturation électronique 2026 - obligation dès le 1er septembre 2026

        Bonjour, Je me permets de réagir à divers posts publiés ici et là concernant le projet de E-Invoicing, dans le cadre de la facturation électronique prévue très prochainement. Dans le cadre du passage à la facturation électronique pour les entreprises,
      • [Webinar] Solving business challenges: One tool for documents, forms, PDFs, e-signatures, and more

        Hi Zoho Writer users, Most businesses rely on multiple tools, such as a word processor, form builder, e-signature provider, and PDF editor, for their document workflows. Managing multiple subscriptions, switching between tools, and moving data across
      • Deposit on invoice

        I'm trying to figure out how to customize an Estimate to include a Deposit/Retainer Invoice line within the Estimate. I tried creating my own custom field called "Deposit" where I manually inputted the deposit amount, which was nice. However, my employer
      • Zoho NOTEBOOK: What are file size restrictions?

        I understand that Zoho NOTEBOOK is a free product, and what it offers is great. But I'm wondering what the file size restrictions are. When I record an audio note in Zoho Notebook, what is the maximum length of recording time/audio file size? When I wish to upload MP4 video, what is the maximum video size I can upload per Zoho Notebook restriction? Moreover, does Zoho Notebook use its own storage structure, or can I upgrade my storage for Zoho Notebook to add larger file attachments, videos and audio
      • Concern Regarding Stock Validation in Inventory Management

        Hi Zoho Team, We would like to highlight a concern regarding stock validation in the inventory system. As per standard inventory management practices, if the stock level is zero, the system should not allow users to create a shipment, packing slip, or
      • Automation Series #2: SLA vs Supervisor Rule in Zoho Desk

        SLA vs Supervisor Rule: Keeping tickets on track in Zoho Desk This post is part of the "Desk Automation Series," Chapter 1. Through this series, we will help you choose the right automation type in Zoho Desk by comparing commonly confused automations
      • Zoho Recruit - Email Relay

        Good day, Has anyone succeeded in setting up an email relay for Office 365? If I add the details from https://support.microsoft.com/en-us/office/pop-imap-and-smtp-settings-8361e398-8af4-4e97-b147-6c6c4ac95353, I get the connection error. Regards, Eka
      • Better use of contacts

        Zoho inventory has the ability to add multiple contacts to customers. However Zoho inventory doesn't currently provide a way to link a contact to objects like sales orders. This means that while you can tell what company has placed a sales order you can't
      • Notebook AI limits

        Hi folks, Working with the AI transcription tools in Notebook, on the Mac App, which I find quite handy, but the one thing I am struggling with is the inability to either edit or copy the results of the transcript: I can't click in any of the boxes, and
      • Disappointment with Zoho Payments

        Dear Gowdhaman, I am writing to inform you that I am removing Zoho Payments from my website. I cannot continue to disappoint my customers due to the lack of UPI support, as has been the case with my experience so far. Please note that the 0.5% transaction
      • Zoho Commerce B2B

        Hello, I have signed up for a Zoho Commerce B2B product demo but it's not clear to me how the B2B experience would look for my customers, in a couple of ways. 1) Some of my customers are on terms and some pay upfront with credit card. How do I hide/show
      • Rename system-defined labels in Zoho CRM

        Renaming system-defined labels is now available across all DCs. Hello everyone, Zoho CRM includes predefined system fields across modules to support essential CRM operations. Until now, the labels of these fields were fixed and could not be edited from
      • Introducing parent-child ticketing in Zoho Desk [Early access]

        Hello Zoho Desk users! We have introduced the parent-child ticketing system to help customer service teams ensure efficient resolution of issues involving multiple, related tickets. You can now combine repetitive and interconnected tickets into parent-child
      • Separate Items & Services

        Hi, please separate items and services into different categories. Thank you
      • Log a call: Call Duration for Inbound is mandatory but inbound is optional

        Hi Team Can you advise on why the call duration for the inbound call type is a mandatory field? We have a use case where we are manually logging a call but do not use the call duration field. The field does not have the option to make it non mandatory
      • Zoho Sign 2025–2026: What's new and what's next

        Hello! Every year at Zoho Sign, we work hard to make document signing and agreement execution easy for all users. This year we sat down with our head of product, Mr. Subramanian Thayumanasamy, to discuss what we delivered in 2025 and our goals for 2026.
      • New Account, Setting up Domain Question

        Hello, I recently set up a new account with a custom domain. But after paying and setting up my account, it says OpenSRS actually owns the domain, and I have to sign up with them to host my site. But OpenSRS wants to charge me $95, which is ridiculous.
      • 【開催報告】東京 Zoho ユーザー交流会 NEXUS vol.1 ~ データドリブン経営・少人数組織のCRM活用・AIエージェントの最前線 ~

        ユーザーの皆さん、こんにちは。 コミュニティグループの中野です。 2026年3月27日(金)、東京・新橋にて「東京 Zoho ユーザー交流会 NEXUS vol.1」が開催されました。 今回は「マーケティング領域のZoho 活用法 × AI」をテーマに、ユーザーさん2名による事例セッション、Zoho 社員によるAIセッションなどを実施しました。 ご参加くださったユーザーの皆さま、ありがとうございました! この投稿では、当日のセッションの様子や使用した資料を紹介しています。残念ながら当日お越しいただけなかった方も、ぜひチェックしてみてください。
      • Monthly Webinar : Getting Started with Zoho LandingPage

        Our monthly Getting Started with Zoho LandingPage webinar is back! If you're building your first page and want a little guidance, this is where to start. Learn how landing pages fit into your strategy, generate leads, and improve conversions. Here’s what
      • Mass emails - Allow preview of which emails will receive the email based on the criteria

        Feature request. Please allow us to view and confirm the exact recipients of the mass emails based on the criteria we've chosen before sending. It can be quite sensitive if you send the mass email to some wrong accounts accidently, so it would be great
      • Limitation in Dynamic Constant Sum Based on Previous Question Selections in Zoho Survey

        Zoho Survey supports the Constant Sum question type, allowing respondents to distribute a fixed total (such as 100) across a set of options. However, it does not support dynamically populating these options based on selections made in a previous question.
      • SAP Business One(B1) integration is now live in Zoho Flow

        We’re excited to share that SAP Business One (B1) is now available in Zoho Flow! This means you can now build workflows that connect SAP B1 with other apps and automate routine processes without relying on custom code. Note: SAP Business One integration
      • sync two zoho crm

        Hello everyone. Is it possible to sync 2 zoho crm? what would be the easiest way? I am thinking of Flow. I have a Custom Module that I would like to share with my client. We both use zoho crm. Regards.
      • CRM Client Script Buttons

        Hello,  Client Script ZDK list button functions, but I am not sure how to interact with them. I tried a few methods of getting the API name for a custom button, but no luck. Any ideas where the button API names are stored?  Also, custom buttons must be
      • Import MSG to Yandex Mail Account | Fast & Reliable Solution

        If you are facing problem to import MSG files to Yandex Mail account can be challenging if done manually, especially when handling multiple files. A reliable solution is using the MacGater Mac MSG Converter, which simplifies the entire process with accuracy
      • Copy all reports in a folder

        I currently have a database that I need to create multiple charts filtered by market. All of the charts are identical, I just change to of the filters and then I have the next market's set of charts. The only way I've been able to copy charts (reports)
      • OpenURL working Intermittently

        Never had this issue before, everything was working fine up to a few days ago. We have a buttons on reports to open forms with pre-filled fields. Now, there are instances where it will throw and error and gives no feedback. What is really strange is not
      • Zoho Recruit mailserver get blocked by Microsoft!

        Hi, We have experienced this issue twice now, where Zoho Recruit outbound IP addresses are being blocked by Microsoft. We are confident that Microsoft is the blocking party, as all outbound emails to candidates with @hotmail.com, @live.com, and @outlook.com
      • Serial Numbers.

        I generated serial numbers for items and there is no way to generate more serial numbers that the number of items being "sold" or created. This is annoying as how does one know what serial number they left off with when they go to receive or sell this
      • Calculate Hours Minutes Sec in Zoho Creator Using Deluge

        check_In = "8-Aug-2023 10:00:00".toDateTime().toLong(); checkout = "8-Aug-2023 18:00:00".toDateTime().toLong(); //difference = start.timeBetween(end); check_In = "8-Aug-2023 17:56:50".toDateTime().toLong(); checkout = "8-Aug-2023 18:00:00".toDateTime().toLong();
      • Build Smarter Apps with AI in Zoho Creator

        Build Smarter Apps with AI in Zoho Creator This is truly the era of AI, and businesses that adapt now will lead tomorrow. Zoho is already moving ahead in this direction, continuously evolving its platform with powerful AI capabilities. With Zoho Creator,
      • Zia Dashboard Insights : turn your dashboard into decisions

        When you look at a chart or KPI in a dashboard, you would possibly see something like: Revenue: $2.4M ↓ 18% vs last month. It can be a positive growth or a negative one, or a dip in revenue, a spike in deals, a slowdown in renewals—all you usually see
      • Tickets without registration

        Hi, would it be possible to give customers the opportunity to be able to read their tickets without registration?
      • Zoho Desk Answer Bot vs. Zia Agents – Knowledge Base & Ticket Access

        Hi everyone, I’m currently evaluating AI options in Zoho Desk and ran into some limitations with the Answer Bot: Answer Bot limitations Only uses Knowledge Base articles No access to tickets Limited control over sources: Either one Help Center or all
      • Como estruturar automações eficientes no Zoho Creator

        Como estruturar automações eficientes no Zoho Creator Introdução No contexto de aplicações empresariais, automação não é apenas uma conveniência, é um fator crítico para ganho de produtividade, redução de erros e escalabilidade operacional. O Zoho Creator
      • Changing the status of a work-order

        Is there a way to change the status of a work-order?
      • Next Page