Application Architecture in Zoho Creator: Why You Should Think About It from the Start

Application Architecture in Zoho Creator: Why You Should Think About It from the Start

Many companies begin using Zoho Creator by building simple forms to automate internal processes.

This is natural — the platform is extremely accessible and allows applications to be built very quickly.

The challenge begins to appear when the application starts to grow.

Over time, issues such as the following start to emerge:

  • difficulty in maintaining the system

  • performance degradation

  • data duplication

  • complex and hard-to-understand workflows

  • dependencies that break the system when changes are made

And then an important question arises:

Why does this happen?

The answer is simple: a lack of architectural planning from the beginning of the project.

Every application starts small.
But just like business processes evolve, applications evolve as well.

A system that initially automates a single process may eventually:

  • integrate multiple departments

  • support dozens of workflows

  • execute hundreds or thousands of functions

  • become responsible for a large part of the company's operations

When architecture is not considered from the start, application growth often leads to rework, complexity, and sometimes even the need to rebuild the system from scratch.

Throughout several projects where I developed enterprise automation solutions using Zoho Creator, I realised that many problems could be avoided by applying a few architectural best practices.

Below are some techniques that help ensure scalability, performance, governance, and maintainability.


Common Mistakes in Zoho Creator Projects

Certain patterns frequently appear in applications that have grown without architectural planning.

Some of the most common issues include:

  • A single massive app containing the entire system

  • Business logic scattered across multiple workflows

  • Data duplication

  • Large and complex subforms

  • Lack of separation between applications

  • Direct integrations without a service layer

These problems typically arise because the application was built focusing only on immediate functionality, rather than on the system architecture.


1. Modular Architecture

One of the most important strategies is to divide the system into business domains.

Instead of creating a single monolithic application, the system can be organised into independent modules.

Example structure:

Core App

  • Master data

  • Customers

  • Users

  • Companies

Sales

  • Opportunities

  • Proposals

  • Pipeline

Operations

  • Service execution

  • Operational management

Portal

  • Customer interface

  • Service tracking

Benefits

  • Clear separation of responsibilities

  • Easier maintenance

  • Reduced impact of changes

  • Reusability across applications

This approach is similar to concepts used in Domain Driven Design (DDD).


2. Event-Driven Architecture

Another common mistake is executing all logic within a single workflow.

A better approach is to use events to decouple processes.

Example:

Event: Customer Created

From this event, multiple actions can be triggered:

  • create account in Zoho CRM

  • create folder in Zoho WorkDrive

  • send welcome email

  • create supporting records

Benefits

  • process decoupling

  • greater scalability

  • easier maintenance

  • reduced impact of future changes


3. Normalised Data Model

A well-designed data model prevents duplication and inconsistency.

Common mistake

An order containing the customer name stored as a text field.

Correct approach

Order
→ Lookup: Customer

This ensures:

  • data is centralised

  • changes to the customer record are automatically reflected

  • data inconsistencies are avoided

This concept comes directly from database normalisation principles.


4. Centralised Automation

Another recurring issue is business logic spread across multiple workflows.

A recommended practice is to centralise rules within reusable functions.

Example:

calculate_invoice_total(record_id)

This function can be used in:

  • workflows

  • buttons

  • schedules

  • API integrations

Benefits

  • logic reuse

  • simpler maintenance

  • reduced code duplication


5. Integration Architecture with the Zoho Ecosystem

Zoho Creator often acts as a custom application layer within the Zoho ecosystem.

A common architectural model is:

Portal / Mobile App

Zoho Creator (Application Layer)

Zoho CRM / Zoho Desk / Other Systems

In this model:

  • CRM manages customer relationships and sales processes

  • Creator handles custom operational processes

  • other Zoho applications complement the solution

This creates a distributed architecture within the Zoho platform.


6. Document Architecture (Document Management)

In solutions that involve many documents, storing large files directly inside Zoho Creator is not recommended.

Best practice is to use:

  • Zoho WorkDrive

  • Zoho Docs

  • or external document repositories

Zoho Creator should store only:

  • metadata

  • links to the files

This improves both performance and system organisation.


7. Performance Strategies

Some best practices help prevent performance issues as the system grows.

Avoid:

  • very large forms

  • subforms with many records

  • queries without filters

Instead, use:

  • indexed fields

  • filtering criteria

  • aggregations

  • optimised queries

These practices help keep the system responsive even with a growing dataset.


8. Governance and Versioning

Zoho Creator 6 introduced important governance features with separated environments:

  • Development

  • Staging

  • Production

This allows teams to:

  • test changes before publishing

  • control versions

  • document functions and system updates

This model brings Zoho Creator development closer to modern DevOps practices.


9. Architecture with Zoho Catalyst (for Larger Applications)

In more complex scenarios, it may be necessary to use Zoho Catalyst.

Catalyst can be used for:

  • microservices

  • heavy processing

  • complex APIs

  • large-scale data processing

  • machine learning

In this architecture, Zoho Creator remains the application and interface layer, while Catalyst executes more advanced backend services.


Conclusion

Zoho Creator is one of the most powerful platforms within the Zoho ecosystem for building custom applications.

When used correctly, it enables the development of robust solutions capable of supporting complex business operations.

However, like any development platform, the quality of the architecture directly influences the scalability and sustainability of the system.

Thinking about architecture from the start helps avoid:

  • rework

  • difficult-to-maintain systems

  • performance degradation

  • future limitations

Applying architectural best practices ensures that Zoho Creator applications can evolve safely and grow alongside the business.

Zoho Creator allows applications to be built quickly — but building systems that truly scale requires something more: architecture.

The real differentiator of a Zoho Creator developer is not just the ability to build applications, but the ability to architect platforms that evolve with the business.

    • Recent Topics

    • How can I delete a user profile created ?

      I can't delete custom profiles created. Why ?
    • Zoho Books Create Invoice API

      I am creating zoho invoices via the API.  Now that zoho has released sub-accounts, i'd like to create invoices and link them to sub-accounts within "sales" account.   For example; my chart of accounts looks like this; Sales ->Website Sales    ->Campaign Sales ->Offline Sales However, when I try to pass these accounts to the API, I receive an error that only Bank accounts can be passed with the create invoice.  
    • Multiselect lookup in subform

      It would be SO SO useful if subforms could support a multiselect look up field! Is this in the works??
    • Ability to Set Text Direction for Individual Cells in Zoho Sheet

      Dear Zoho Sheet Team, We hope you are doing well. We would like to request an enhancement in Zoho Sheet that allows users to set the text direction (right-to-left or left-to-right) for individual cells, similar to what is available in Google Sheets. Use
    • Workflows being applied and the Large unwanted popup

      When a workflow is being applied do to an action, then the Agent is left with a large Window asking if they would like the see the changes this workflow did. Is there any way to disable this prompt from appearing?
    • Contact not saved after editing

      Hi. I discovered a couple of problems with Zoho contact. (1) BUG. Contact is not saved after editing. If you edit an existing contact by putting a bracket in one of the fields you get the message "Contact updated successfully" but nothing is saved. All updates (including the other fields) are lost. Steps to reproduce. Go to an existing contact and change the first name to "Robert (Bob)". (2) In the phone number fields you can only save numeric data (0 to 9). This seems an unneccessary restriction.
    • Zoho Mail Android app update: UI revamp

      Hello everyone! We are excited to share that the first phase of the Zoho Mail Android UI revamp is now live. In this update, we have redesigned navigation bar at the bottom to quickly access the Email, Calendar, Contacts, and Settings modules. Also, the
    • Opt-out from mailing list means can't email at all??

      It seems that if a contact unsubscribes from a mailing list the only way to email them is to uncheck the email opt-out box first, then re-check after the email has been sent. I've been through a chat with support and they confirmed this. This seems bizarre.
    • 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.
    • Search API filter/sort ignores comment-triggered modifiedTime updates

      Summary When a comment is added to a Call or Account, the parent record's modifiedTime is correctly bumped. This bumped value is visible in: GET /api/v1/calls/{id} ✅ GET /api/v1/calls/search without a filter ✅ — the record's response body shows the new
    • Items Landed Cost and Profit?

      Hello, we recently went live with Zoho Inventory, and I have a question about the Landed Cost feature. The FAQ reads: "Tracking the landed cost helps determine the overall cost incurred in procuring the product. This, in turn, helps you to decide the
    • Bank Feeds

      Since Friday my bank feeds wont work. I have refreshed feeds, deactivate and reactivate and nothing is working
    • Show backordered items on packing slip

      Is it possible to show a column on the Packing Slip that shows number of backordered items when a PO is only partially filled? I would also like to see the Backordered column appear on POs after you receive items if you didn't get ALL of the items or partial amounts of items. And lastly, it would be nice to have the option of turning on the Backordered column for invoices if you only invoice for a partial order. -Tom
    • Users I've shared the sheet with cannot use the Custom Functions

      Hi, I have a Zoho Sheet worksheet that I shared to 2 colleagues, giving them full access: In that worksheet, I created a button with a custom Deluge function and it works flawlessly for me: For those I shared the worksheet to, when they click the button,
    • 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
    • Newby Questions

      Q1. The top bar of Zoho Books has a "Search in Banking (/) " field. What is the proper use of this text box? - Searching for Amazon for example has no results but there are transactions. - Is the search case sensitive? - Are regular expressions allowed?
    • Add Custom Fields only in Customer module and not on supplier module!? Is not there a way to do that!?

      I am trying to create custom fields on clients module but it also gets created on suppliers module; which of course does not make sense at all as a lot of custom fields are client or supplier specific but never both. I am missing something? This seems
    • Inventory "Bulk Actions" button - add more fields to "Bulk Update > Select a field"

      Can we not get a lot more actions that are commonly used by customers into the "More Actions" button on the Inventory list? More fields listed in the Bulk Update > Select A Field? Possible Bulk update Fields Preferred Supplier ( to quickly move items
    • Using Email Triggers on Zoho Flow

      Hello, I'm sending the email to create the variables as this article says: https://help.zoho.com/portal/en/kb/flow/user-guide/create-a-flow/articles/email-trigger#How_email_trigger_works But the collection of the variables only seems to work when the
    • Zoho Bookings - Provide Appointment System ID in Zoho Flow Variable

      Hi Bookings Team, It would be great if you could provide the system record ID for appointments as a variable in Zoho Flow trigger outputs and Fetch Appointments action. This would allow us to create a dymanic URL which can be clicked by a staff user to
    • Tip #7: Customize the appointment confirmation page

      A confirmation page plays a crucial role in creating the first impression, as that's where customers land when booking with you. It shows your brand identity, engages your audience, and drives more conversions. Yet, this section is often overlooked when
    • WhatsApp Calling Integration via Zoho Desk

      Dear Zoho Desk Team, I would like to request a feature that allows users to call WhatsApp numbers directly via Zoho Desk. This integration would enable sending and receiving calls to and from WhatsApp numbers over the internet, without the need for traditional
    • Show backordered items on packing slip

      We send out a lot of large orders, and often there are one or two things backordered. How can I fix the packing slips to show quantity ordered  & quantity packed There should also be the ability to "ship" 0 of an item so the receiver knows that things
    • How do you create an event/meeting in a different time zone?

      Does anyone know how do you create an event/meeting in a different time zone? 
    • Deluge Learning Series – Mastering file handling in Deluge | April 2026

      The Deluge Learning Series is conducted on the fourth thursday of every month. In each session, we discuss built-in functions and statements in Deluge and demonstrate how they are used across different Zoho products. With practical examples and real-world
    • Multi-currency and Products

      One of the main reasons I have gone down the Zoho route is because I need multi-currency support. However, I find that products can only be priced in the home currency, We sell to the US and UK. However, we maintain different price lists for each. There
    • Editing recurring tasks

      Hi there, I use recurring annual tasks quite often but sometimes I have a contact leave an organization so I want to re-assign that annual task to a new contact. When I go into the task to change the contact it only does so for the current year. Future
    • Cross Module Filtering – Use Fields from Lookup modules in Custom Views criteria and Advanced Filters

      Hello everyone, Zoho CRM now enables you to achieve deeper filtering of records in a module, using fields of a lookup, thereby enhancing your data management experience manifold. This filtering based on lookup module fields is now available in advanced
    • On Duty Requests - Zoho People Data

      Hello Team, We are currently using the On Duty Form to record Work From Home (WFH) requests in our organization. However, we are facing an issue where pending On Duty requests are not appearing in the Attendance Module. For example, if I submit On Duty
    • Business Day Logic Update: More Accurate Scheduling for Your Workflows

      Hello everyone, We’re improving how business-day calculations work in workflows, especially when triggers happen on weekends. This update ensures that offsets like +0, +1, and +2 business days behave exactly as intended, giving you clearer and more predictable
    • Styling for Subform Fields using client script

      Currently we can add styles to list and detail page for fields using .addstyle in the Client Script But that is missing for fields of Subform We would really like the feature to addstyle for subforms in the detail page Can you please consider adding it,
    • Zoho Commerce -

      Zoho Commerce currently only allows merchants to define the United Kingdom as a single shipping zone, which creates a significant issue for businesses operating between the EU and the UK. Under the Northern Ireland Protocol, Northern Ireland follows EU
    • Add a way to connect Log360 Cloud logs with Zoho analytics

      Hi, Several month ago Log360 Cloud was added to zoho one - and this is great. But as far as I see there is no prebuilt way to connect Zoho analytics to the logs we have in Log360 Cloud. Please add a prebuilt connection like we have for so many other zoho
    • IP flagged as abusive

      I'm getting the error that 136.143.188.15 is listed as abusive. I've checked with mxtoolbox.com and it is indeed in the list
    • date & datetime client script getInput types

      Please add date & datetime as available types for the getInput client script function. https://www.zohocrm.dev/explore/client-script/clientapi/Client#getInput
    • Approval Workflow Not Triggering When Status Updated via Custom Button

      Hi Team, I’m facing an issue with an approval workflow in my application. I have a workflow that updates a record’s Status field from “Pending” to “Waiting for Approval.” I have configured an Approval Workflow with the condition: Status = "Waiting for
    • Automate the file import step

      Hello everyone, I have a Sales - 'Account' category, and currently import the file to update it as follows: Import Accounts - From File - Update existing Accounts only - select and match the field the CRM. Since we have been using Microsoft 365 SharePoint.
    • Data Import

      Hello Latha, Is there any option to enable data import option in Equipment module? Best regards, Chethiya.
    • Unable to Access /crm/v7/taxes – OAuth Scope Mismatch in Zoho CRM API

      I am currently integrating Zoho CRM (v7 API) with our system and I need clarification regarding the Taxes API and OAuth scopes. Context: We are creating Quotes via the API (/crm/v7/Quotes) Each quote contains line items with taxes (e.g., TVA 19%, 10%,
    • Email from CRM being Blocked or Marked as Spam by Google (and maybe more)

      In the past 24 hours we’ve noticed that emails sent via Zoho CRM are being blocked or flagged as phishing, particularly by Google. The issue seems to occur specifically when emails contain links. URLs like www.domain.com or www.example.com are automatically
    • Next Page