This article shows how to auto-create Zoho Projects projects when a record in a custom module is approved, using a connection and a Deluge custom function created in Developer Space by Beam Help — independent expert support for Zoho, not official Zoho support.[1]
Why this matters
When proposals or site assessments are approved, manually creating projects duplicates work and causes delays; automating project creation moves teams straight to planning and execution.[1] The flow is useful when you keep proposal details (site, capacity, location, requirements) in a custom module and want a project created with those details after approval.[1]
Step-by-step
Step 1. Create a custom module to store project requests (for example, Site Assessments) by using the Create Custom Module/Web Tab option beside Overview in the left navigation and add the fields you need for the request record.[1]
Step 2. Open Developer Space and create a Connection: go to the upper-right corner, select Developer Space, then Connections, and click Create Connection to add a Zoho Projects connection that the custom function will use.[1]
Step 3. In Developer Space navigate to Custom Functions, choose the tab for your custom module (for example, Site Assessment), and click Create a new custom function to start a Deluge script.[8]
Step 4. Use the provided Deluge template that lists modules, finds your custom module and related Projects module IDs, and creates a project by calling the projects endpoint with a POST request; the script uses invokeurl with your connection name (for example, projectintake) and requires scopes ZohoProjects.custom_fields.READ and ZohoProjects.projects.CREATE.[8]
Step 5. Replace the connection name placeholder in the script with your actual Zoho Projects connection name and confirm the script builds params including the project name from the incoming record before calling the POST /portal/{portalId}/projects endpoint on the v3 API URL.[8]
Step 6. Add the custom function arguments when you save the function: entityId (Entity Id), entityName (Title), moduleName (the custom module name such as Site Assessment), portalId (Portal System ID), projectsEndpointV3 (https://projects.zoho.com/api/v3), and relatedModuleName (Projects).[^^8][1]
Step 7. Save the custom function after configuration and then attach it to an automation rule: go to Automation → Workflow Rules and trigger the custom function when the custom module’s status field changes to Approved so a project is created automatically on approval.[1]
Step 8. Test the automation by creating a sample custom module record, changing its status to Approved, and verifying that the custom function runs and a project appears in Zoho Projects with the expected name and fields.[1]
Common pitfalls
- If the script cannot find the module IDs, confirm the moduleName and relatedModuleName match the plural or singular names returned by the settings modules API and that the script checks both keys before comparing.[8]
- Make sure the connection name in invokeurl matches the connection you created in Developer Space; otherwise the API calls will fail.[8]
- Ensure the function has the listed API scopes (ZohoProjects.custom_fields.READ and ZohoProjects.projects.CREATE) so the script can read module metadata and create projects.[8]
What to check
- Confirm the custom function uses your correct connection name and has the required Zoho Projects scopes.[8]
- Verify the moduleName and relatedModuleName values exactly match the module names in your portal so the function finds their IDs.[8]
- Test the workflow by approving a record and checking that a new project is created under your portalId using the v3 projects endpoint.[8]