Stop the Workarounds: We Need Native Multi-Step Forms

Stop the Workarounds: We Need Native Multi-Step Forms

After over 17 years of community requests, I'm hoping the Zoho team can finally address the lack of native multi-page form support in Zoho Creator. This has been one of the longest-standing feature requests in the community, with threads spanning nearly two decades:
The Issue
Zoho Creator currently has no native support for multi-page forms (also known as wizard forms, step forms, or tabbed forms). When building applications with complex data entry requirements—employee onboarding, loan applications, patient intake, vendor registration—developers have no built-in way to break a single form into logical, digestible steps.
Meanwhile, Zoho Forms has had robust multi-page form support for years, including page breaks, progress indicators, conditional page navigation, and page rules. This creates an inconsistency within Zoho's own product ecosystem.
The Product Asymmetry
The disparity between Zoho Forms and Zoho Creator is striking:
Capability Zoho Forms Zoho Creator
Page Break field type ✓ Native support
Drag-and-drop page breaks
✗ Not available
Progress indicator / Step bar ✓ Built-in
Shows respondent progress
✗ Not available
Page navigation (Next/Previous) ✓ Automatic
Customizable button labels
✗ Not available
Conditional page skipping ✓ Page Rules
Skip pages based on answers
✗ Not available
Page-level validation ✓ Validates before advancing ✗ Not available
Single form, single record ✓ Yes ✗ Requires multiple forms
The irony: Zoho Forms—a standalone form builder—has more sophisticated form UX capabilities than Zoho Creator—a full application development platform. Developers building enterprise applications in Creator are stuck with inferior form experiences compared to a simple survey tool.
Example Use Case
Consider an Employee Onboarding Form with 40+ fields across these logical sections:
  • Step 1: Personal Information (name, contact, emergency contacts)
  • Step 2: Employment Details (position, department, start date, manager)
  • Step 3: Payroll & Banking (bank account, tax forms, direct deposit)
  • Step 4: Benefits Selection (health insurance, retirement plans)
  • Step 5: IT & Equipment (laptop preference, software access, badge photo)
  • Step 6: Policies & Acknowledgments (handbook, NDA, consent forms)
Desired behavior: User completes each step, sees their progress, and can navigate back to review previous sections—all within a single form that creates a single record.

Current reality: User is presented with a massive scrolling form with 40+ fields, or developers must implement complex workarounds using multiple forms, lookups, and Deluge scripts.
The Current Workarounds (All Suboptimal)
To achieve multi-page form behavior, developers are forced into one of these suboptimal approaches:
Workaround 1: Multiple Related Forms ("Form Chain")
Create separate forms for each "step" and link them via lookups. Use Deluge scripts to pass record IDs between forms and auto-populate fields.
// Step 1 form On Success:
step2_url = "#Form:Step_2_Employment?Employee_Lookup=" + input.ID;
openUrl(step2_url, "same window");

// Step 2 form On Load:
if(input.Employee_Lookup != null)
{
emp = Employee[ID == input.Employee_Lookup];
input.Name = emp.Name;
input.Email = emp.Email;
// ... populate all fields from Step 1
}
  • Problem: Data is scattered across multiple tables
  • Problem: Complex lookup relationships and Deluge scripting required
  • Problem: No "go back" functionality—user must start over if they need to edit Step 1
  • Problem: Reporting requires joining multiple forms
  • Problem: Breaks the single-record-per-entity principle
Workaround 2: Stateless Form Daisy Chain
To avoid creating "junk" records when users abandon the form mid-process, advanced developers use Stateless Forms for intermediate steps, passing all field values via URL parameters, and only writing to the database on final submit.
// Step 1 Stateless Form - "Next" button:
step2_url = "#Form:Step_2_Stateless?"
+ "Name=" + encodeUrl(input.Name)
+ "&Email=" + encodeUrl(input.Email)
+ "&Phone=" + encodeUrl(input.Phone)
+ "&Address=" + encodeUrl(input.Address)
+ "&City=" + encodeUrl(input.City)
+ "&State=" + encodeUrl(input.State)
+ "&Zip=" + encodeUrl(input.Zip);
// ... repeat for EVERY field
openUrl(step2_url, "same window");

// Step 2 Stateless Form - "Next" button:
step3_url = "#Form:Step_3_Stateless?"
// Pass ALL fields from Step 1 again...
+ "Name=" + encodeUrl(input.Name)
+ "&Email=" + encodeUrl(input.Email)
// ... plus all Step 2 fields
+ "&Department=" + encodeUrl(input.Department)
+ "&Manager=" + encodeUrl(input.Manager);
openUrl(step3_url, "same window");

// Final Form - actually saves the record
  • Problem: Stateless forms cannot use advanced field types including Subforms, File Upload, Signature, Image, and Audio—severely limiting data collection capabilities
  • Problem: Every single field must be manually mapped in URL strings
  • Problem: Adding one field to the schema requires updating scripts on every "Next" button
  • Problem: URL length limits restrict how many fields can be passed
  • Problem: No "go back" functionality—previous values are lost unless passed forward
  • Problem: Extremely brittle—maintenance nightmare for forms with 30+ fields
Workaround 3: CSS Hacks ("Fake Tabs")
Use Notes fields with custom HTML/CSS to create tab-like visual navigation, combined with hide/show field rules triggered by a radio button "step selector." This can work with individual fields or Section fields (to hide/show groups at once).
// Radio field "Current_Step" with options: Step 1, Step 2, Step 3...

// On User Input of Current_Step:
if(input.Current_Step == "Step 1")
{
show Section_Personal_Info;
hide Section_Employment;
hide Section_Banking;
}
else if(input.Current_Step == "Step 2")
{
hide Section_Personal_Info;
show Section_Employment;
hide Section_Banking;
}
// ... repeat for each step
  • Problem: Requires hiding/showing every field or section individually—maintenance overhead
  • Problem: CSS styling is fragile and may break with Creator UI updates
  • Problem: No native progress indicator—must build custom UI in Notes fields
  • Problem: Validation doesn't prevent "next step" navigation if current step has errors
  • Problem: All fields still load in DOM regardless of visibility, impacting performance
  • Problem: Collapsible sections are all visible simultaneously—not a true wizard experience with enforced linear progression
Workaround 4: Zoho Forms Integration
Build the multi-step form in Zoho Forms (which has native support), then push data to Creator via webhooks or integrations.
  • Problem: Requires additional Zoho Forms subscription
  • Problem: For in-app forms, users must leave the Creator application entirely, complete the form in Zoho Forms, then return to Creator—a jarring, disconnected experience
  • Problem: Data synchronization is not instantaneous—there can be delays before records appear in Creator
  • Problem: Loses Creator-specific field types (lookups to existing data, formulas, subforms)
  • Problem: Integration complexity and potential sync failures
  • Problem: Cannot use Creator's built-in workflows on form submit—must rely on integrations
Workaround 5: Custom JavaScript Widget
Build a completely custom multi-step form interface using a JavaScript Widget that handles the UI, then submits data to Creator via API.
  • Problem: Requires JavaScript development expertise—completely inaccessible to citizen developers and new users who chose Creator specifically for its low-code promise
  • Problem: Must build and maintain custom form validation, navigation, progress indicators from scratch
  • Problem: Loses all native Creator field types and behaviors—must recreate lookups, dropdowns, validations in JavaScript
  • Problem: API authentication and connection management adds complexity
  • Problem: Widget UI doesn't automatically match Creator's styling or theme changes
  • Problem: Significant development time for what should be a basic platform feature
What Should Happen Instead
Proposed Solution 1: Page Break Field Type
Add a "Page Break" field type to the Form Builder (matching Zoho Forms functionality):
Form Builder → Field Types → Page Elements → Page Break

Drag the Page Break field between sections to create multi-page forms.
Each page displays with Next/Previous navigation buttons automatically.
Proposed Solution 2: Progress Indicator Configuration
Allow developers to configure a progress bar or step indicator:
Form Properties → Multi-Page Settings:
☑ Enable progress indicator
○ Progress bar style
○ Numbered steps style
○ Named steps style

Step Labels:
Page 1: "Personal Info"
Page 2: "Employment"
Page 3: "Payroll"
...
Proposed Solution 3: Page-Level Validation
Validate required fields on the current page before allowing navigation to the next page:
// Deluge: On Page Change (new event)
if(input.Current_Page == 1 && input.Email == null)
{
alert "Please enter your email address before continuing.";
cancel page change;
}
Proposed Solution 4: Conditional Page Navigation (Page Rules)
Allow pages to be skipped based on field values (matching Zoho Forms' Page Rules):
Page Rules:
IF Employment_Type == "Contractor" THEN skip "Benefits Selection" page
IF Country != "USA" THEN skip "US Tax Forms" page
Real-World Impact
This limitation affects any application requiring:
  • Employee onboarding — HR systems with 30-50+ fields across multiple categories
  • Customer applications — Loan applications, insurance quotes, account opening
  • Patient intake — Medical history, insurance, consent forms, symptoms
  • Vendor registration — Company info, compliance documents, banking details
  • Event registration — Attendee info, session selection, dietary requirements, payment
  • Grant applications — Project details, budget, team info, supporting documents
  • Any complex data collection — Where form abandonment due to length is a concern

User Experience Impact: Research consistently shows that multi-step forms have significantly higher completion rates than single long forms. This is due to the "Goal Gradient Effect"—users are psychologically more motivated to complete a task as they see progress toward the finish line. A progress bar creates momentum; an endless scroll creates cognitive overload and abandonment.

Database Architecture Impact:
The workarounds described above force developers to fragment a single logical entity (e.g., "Employee") into multiple physical tables (Personal_Info, Employment_Details, Banking_Info, IT_Equipment) just to achieve visual pagination.
  • Reporting nightmare: Every report requires complex joins across multiple forms
  • Integration complexity: External systems expect a single record, not fragments across tables
  • Data integrity risk: Orphaned records when users abandon mid-process
  • API overhead: Multiple API calls required to fetch what should be one record
The desired state is simple: one logical entity = one database table, with the UI handling pagination visually—not structurally.
The Business Case for Zoho
Why this benefits Zoho:
  • Product consistency: Aligns Creator with Forms and other Zoho products that already support multi-step data entry
  • Competitive positioning: Platforms like Salesforce, Microsoft Power Apps, and OutSystems offer native wizard/multi-step form capabilities
  • Reduced support burden: Eliminates community posts and support requests for workarounds for this basic functionality
  • Enterprise readiness: Complex enterprise applications require sophisticated form UX—this is table stakes for enterprise adoption
  • Developer productivity: Native wizard capabilities remove the overhead of building UI workarounds from scratch, cutting development cycles by hours. Instead of troubleshooting custom flow-control scripts, developers can focus on optimizing user experience and accelerating time-to-market for core business features.
Request to Zoho Team

Can this finally be addressed?

After over 17 years of community requests, the need is clear and well-documented. The current implementation forces developers to choose between:

1. Poor User Experience
Present users with overwhelming, scroll-heavy single-page forms that increase abandonment rates
2. Excessive Complexity
Spend days implementing fragile workarounds using multiple forms, CSS hacks, or external integrations

We shouldn't have to make this choice—especially when Zoho Forms already has this capability built-in.

Community Input Requested: What workaround have you used in the absence of native support? Please add your voice to this long-standing request.




        • Recent Topics

        • Kaizen #196 - Zoho CRM Queries - Best Practices

          Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone. Got
        • Best way to account for shipping charges to customer

          I have been allocating all our shipping expenses to the "postage" account, but I realise that is probably incorrect, as for the most part, we pass on shipping charges to our customers. So I should probably add the shipping charges into the "shipping charges"
        • Zoho Flow s’enrichit avec les subflows et les actions Webhook

          Nous sommes ravis d’annoncer deux ajouts importantsà Zoho Flow : les subflows et les webhooks sortants. Ces nouvelles fonctionnalités ont été conçues pour vous aider à créer des workflows plus facilement et à automatiser davantage de tâches répétitives.
        • How to assign canvas view for portal user

          Hi , as a portal user, I can switch to another canvas view, however, I cannot find any field to configure a default canvas view for portal user. May I ask how to set it up in CRM? And if I can view list by sheet view as a portal user?
        • Restrict Leave Application Based on Attendance Cycle (24th to 23rd)

          Hi Zoho Team, Our organization follows a custom attendance cycle from 24th of the current month to 23rd of the next month. I would like to configure the system so that: Employees should not be able to apply backdated leave for any date after the attendance
        • How do I assign a parent to an existing campaign?

          I created a campaign but now I'd like to make that existing campaign a child of another.  How can I do this?
        • Categorize Tickets Through The App

          I used to be able to categorize and assign tickets through the app without any issues. However, for the past year, whenever I try to edit a ticket, select a category, and click save, it doesn’t actually save the changes. As a result, I haven’t been able
        • Can't add picture to email template. Says I'm over the character limit.

          I tried creating an email template with a picture and it says I'm over the character limit. The picture is pretty small. What can I do?
        • Allow breakdown of per diem for meals provided

          Would it be possible to break the per diem down into what you get for each meal. The reason for this is we want to offer per diem but if a meal is provided by a customer or sales we need to remove this from the per diem bucket for that day. We break down
        • Automatically moving Leads into their corresponding buckets

          Hi, I have developed a lead pipeline and created different cadences for various lead segments. After enrolling leads into their respective cadences, each lead goes through a series of follow-ups (in my case, three emails). If a lead does not respond after
        • Tracking Email Template usage

          I'd like to be able to track how many times agents/users send an email from Templates. This is so we can track their activity in relation to Campaigns in CRM. Thanks
        • Get employee id of authenticated user via API

          Hi, For adding timetracking records an employee id is required. Is there an API Route available to get the employee ID of the current authenticated user? or something like /users/me Currently using https://people.zoho.com/people/api/forms/employee/getRecords
        • Collect in-app feedback with richer context and granular insights

          Hello, Apptics community! From GenAI chatbots to one-tap checkouts, user experience standards keep rising—yet 96% of unhappy users never explain what went wrong; they simply leave. Introducing in-app feedback 2.0 banner In-app feedback 2.0 is here to
        • Temporary restiction

          My account says You have been temporarily restricted from publishing jobs from Zoho Recruit.Click here to request a one-time approval to publish your jobs and when I go to click it shows error. Kindly assist.
        • Help with Quote template for peer review

          We are wanting to do peer review of quotes/proposals, however the quote templates dont have product cost, profit margins, etc. It is difficult for a manager to approve a quote without ensuring nothing is going out at improper margins, etc. I have not
        • How many AR fields We can add in a form?

          I want to add at least 10-15 AR fields in a form. I just want to know is there any limit on the AR fields or do I need to pay extra money for using 10-15 AR fields. Thanks in advance.
        • Agent working hours

          Hi, I know it is possible to set company business hours but is it possible so that agents can have different ones? I.e. some agents cover later hours on specific weeks - can these be set so those agents that are "working" get notified about tickets etc. 
        • Disallow CLOSE if tags field is empty

          I want to introduce a mandatory condition that NEW tickets (not prior closed tickets) cannot enter the CLOSED state without first having an entry in the tags field. Is there a way I can do this?
        • Central de Ajuda - Restringir visualização de tickets

          Estou tentando configurar o Zoho Desk para que determinados usuários dentro de uma mesma conta consigam visualizar apenas os tickets criados por usuários específicos dessa conta — e não todos os tickets ou apenas os seus próprios. Até onde sei, existe
        • Business Hours with lunch break

          Our business hours are: mon - fri 08:30 - 13:00, 15:00 - 18:30. How can I handle the lunch break? If I use 8:30 - 18:30 it obviously breaks SLA. Thanks
        • Ask the Experts 21: Power up your support game with Zoho Desk Automation

          " In every business, there are tasks to automate, Zoho Desk helps with features that integrate Assignments to manage tickets and teams to align,Macros for quick actions and workflows to streamline Contracts and schedules to hold things tight, Plans run
        • If leads are assigned to a person before 4:00 PM and the stage is "Fresh Lead", then an email should be triggered at 4:00 PM to all assigned users. If leads are assigned after 4:00 PM and the stage is

          If leads are assigned to a person before 4:00 PM and the stage is "Fresh Lead", then an email should be triggered at 4:00 PM to all assigned users. If leads are assigned after 4:00 PM and the stage is "Fresh Lead", then the email should be triggered the
        • Multiselect lookup in subform

          It would be SO SO useful if subforms could support a multiselect look up field! Is this in the works??
        • Tasks as calendar events? What about a way to verify a meeting actually happened?

          I'm not sure how to best ask this, but i'm looking to add some guard-rails into zoho for the end-user. However for guardrails to be effective they can't really add extra steps for the end-user. i.e. every step that's added for the user, is another place
        • Attachments should sync between Zoho Finance in CRM and Zoho Books

          It would EXTREMELY helpful and practical if the attachments added to an invoice via Zoho Finance in CRM synced with the invoice updates in Zoho Books. Currently, attachments to an invoice updated in CRM DO NOT appear as attachments when viewing the same
        • Introducing a new home page view and UI enhancements for Dashboards

          Hello everyone,  In CRM, the home pages provide a quick view of the various happenings in a business with the help of dashboards. The home pages also help to organize one's and the team's day's work. There are three views in the home tab: Classic User's
        • Data Template Amending

          Hi, is it possible to remove data templates once you have applied them in Workdrive? Also, once I have added a new field to a data template can I mass update multiple files who have already been allocated that template and amend just that one added
        • Zoho Flow y subformularios de Zoho CRM

          Buenas tardes, En mi empresa vamos a empezar a usar los subformularios de zoho crm pero estos los voy a tener que rellenar con zoho flow ya que va a ser el encargado de rellenar dichos campos del subformulario. El problema es que a la hora de intentar
        • Recurring Invoices

          We are looking at moving our invoices to ZOHO Billing, I have started the trial period and like that I can et up for four different companies. The one feature we need which is mentioned in the documentation is Recurring Invoices so we can send our Rent
        • Zoho Projects App update: Arabic and Hebrew language support

          Hello everyone! In the latest version(v3.10) of the Zoho Projects iOS app update, we have brought in support to access the app in RTL(Right to Left) languages (Arabic and Hebrew). Note: RTL is yet to be supported on the Calendar and Gantt charts modules
        • I want to cancel @mention group in the notes in Zoho CRM

          Hi Everybody, I want to prevent people from mentioning a specific group in notes in Zoho CRM. We have one group called Team Sales, and although we've asked users not to mention groups, they still mention the group name. My workaround is to change the
        • Kaizen #193: Creating different fields in Zoho CRM through API

          🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
        • How to install node packages in Zoho Creator cloud functions

          I wanted to create some functions which requires node packages like axios, fetch, multer etc., How and where can i install the node packages in Zoho creator to use it in Zoho creator Nodejs function.
        • Session "Ask Me Anything" Zoho France - Le 26 Juin 2025 14h à 17h (en Français

          Chers Utilisateurs, Vous cherchez à mieux comprendre Zoho CRM ou Zoho Desk ? Nos experts seront disponibles pour répondre à toutes vos questions lors de notre session Ask Me Anything. Rejoignez-nous ici pour en discuter en ligne. Pendant trois heures,
        • Option to Crop Existing Agent Image in Zoho One Directory

          Hello Zoho Team, We hope you're all doing well. We would like to request a small but useful enhancement to the Zoho One Directory. 🎯 Current Limitation At present, the system allows cropping an agent image only during the initial upload of an agent's
        • Introducing Sub-Accounts in Zoho Books!

          Hello Everyone, Sub-Accounts is LIVE! Yes, you read it right. The much needed and most requested feature is now live in Zoho Books. The sub-accounts feature in Zoho Books will help you to classify your accounts further which will give you a more detailed view of your accounts while running reports. You can create sub-accounts for the below Accounts: Asset Cost of Goods Sold Expense Liability Fixed Asset Other Asset Other Current Asset Long Term Liability Other Current Liability Other Liability Other
        • Sesión "Ask me anything" Zoho en Español - 26 de junio de 2025, de 14:00 a 17:00 (en español)

          ¡Hola Comunidad! ¿Quieres entender mejor Zoho CRM o Zoho Desk? Nuestros expertos estarán disponibles para responder a todas tus preguntas durante nuestra sesión "Ask me anything". Puedes comentar este artículo y durante tres horas, nuestro equipo estará
        • UI Update: We've Reorganized Invoice Settings

          Dear users, We’ve reorganized invoice settings to offer you a streamlined and intuitive experience when managing your subscriptions. Starting from 2 July 2025, subscription-related invoice settings will be accessible from a new page called Billing Preferences
        • Zoho CRM & Eventbrite Integration Not Working

          I have integrated Zoho CRM to Eventbrite via Zoho Flow. This flow is for when an attendee is added in eventbrite it creates a lead in Zoho CRM. I have correctly placed all values but still getting this issues "Zoho CRM says "Invalid input for Email. The
        • Marketer’s Space – Automate Subscription Management for CRM Contacts Using Workflows in Zoho Campaigns

          Hello, marketers! Welcome back to Marketer’s Space. In this week’s post, we’ll look at how to simplify subscription management using Workflows for contacts synced from Zoho CRM in Zoho Campaigns. There are multiple ways to assign topics to your contacts:
        • Next Page