Cannot Access Subform Display Order in Deluge

Cannot Access Subform Display Order in Deluge

As highlighted in this community post, we still have to deal with the significant limitation of not being able to access the user-sorted order of subform rows through Deluge. This creates a major disconnect between the UI capabilities and backend automation, and I'm hoping the Zoho team can address this in a future update.

The Issue
Zoho Creator now offers two distinct subform sorting methods:
  • Drag and drop: Manual, user-controlled sorting where users reorder rows by dragging them into their preferred sequence. The sort order is arbitrary and based on user preference, not field values.
  • By predefined column: Automatic, system-controlled sorting based on a specified column that happens whenever the record is created or updated. The sort order is predictable and based on field values.
However, these sorted orders are completely invisible to Deluge scripts. When you iterate through subform rows using for each loops, you get the records in their original creation order—regardless of whether the subform uses drag-and-drop sorting or automatic column-based sorting.

The Problem
Regardless of which sorting method is configured, the display order is trapped in the UI layer—Deluge has no way to access it.
Sorting Method What User Sees What Deluge Sees Result
Drag and Drop
User drags Row 5 to position 1
Row 5 appears at the top of the subform Row 5 is still in position 5 (creation order) ✗ Custom order completely ignored
Predefined Column
Subform set to sort by "Priority" (High to Low)
Rows automatically displayed in priority order after save Original creation order (Row 1, Row 2, Row 3...) ✗ Automatic sorting not reflected
Either Method
User clicks "Generate Report" button
Expects report to match displayed order Report generated in creation order ✗ Output doesn't match user's view
Current Limitations
Regardless of which sorting method is enabled, you cannot:
  • Loop through subform rows in the display order (whether drag-and-drop or predefined column)
  • Access any "sort order" or "display position" field
  • Determine which column is used for automatic sorting
  • Detect if drag-and-drop sorting is enabled
  • Update a field (like "Sequence Number") to reflect the sorted order
  • Generate custom reports in Pages or Deluge that respect the subform's display order
Important Note: Record Templates do preserve the re-sorted order when generating PDFs or documents. This means basic reporting through record templates works correctly. However, for any advanced reporting—such as custom HTML in Deluge, Pages, or programmatic data processing—the sorted order is completely inaccessible, making it impossible to replicate what record templates can do.
Example: The Disconnect
Here's a real-world scenario that demonstrates the problem:
// SCENARIO: Task subform is configured to sort by "Priority" column (High to Low)
// This is automatic sorting - happens when record is created/updated
// User clicks a button to "Generate Prioritized Task List"

// What the developer writes:
for each task in input.Task_Subform
{
    task_list = task_list + task.Task_Name + "\n";
}

// EXPECTED OUTPUT (what user sees on screen after save):
// 1. Fix critical bug (High)
// 2. Review code (High)  
// 3. Update documentation (Medium)
// 4. Refactor old code (Low)

// ACTUAL OUTPUT (what Deluge produces):
// 1. Update documentation (Medium)     ← Created first
// 2. Fix critical bug (High)           ← Created second  
// 3. Refactor old code (Low)           ← Created third
// 4. Review code (High)                ← Created fourth

// Result: User confusion and loss of trust in the system
// Note: The same problem occurs with drag-and-drop sorting!
Impact: The generated output doesn't match what the user sees on screen, creating confusion and undermining user confidence. This affects both automatic sorting (by predefined column) and manual sorting (drag-and-drop).
Attempted Workarounds (All Inadequate)
Workaround Approach Implementation Problems Status
Manual Sequence Field Add a "Sequence" number field that users manually update - Requires users to manually type numbers
- Defeats purpose of drag-and-drop sorting
- Doesn't work with predefined column sorting
- Prone to errors and gaps
- Poor user experience
✗ Not viable for real-world use
Sort in Deluge Instead Use Deluge's .sort() function on subform collection - Only works if you know the predefined sort column
- Cannot replicate custom drag-and-drop order at all
- Assumes single-column sorting
- Doesn't help if user needs multi-column sort
- Still a workaround for what should be automatic
⚠ Partial solution for predefined column only
JavaScript Widget Build custom UI using JavaScript Widget instead of native form - Requires abandoning native form entirely
- Must rebuild entire subform interface from scratch
- Significant development and maintenance overhead
- Loses all native form features and functionality
- Defeats the purpose of using Creator's built-in forms
✗ Not viable - abandons native functionality
What Should Happen Instead
Proposed Solution 1: Display Order Field Add a system-generated field that reflects the current display order:
for each task in input.Task_Subform.sortBy("display_order")
{
    // Process tasks in the order the user sees them
    info task.Task_Name;
}
Proposed Solution 2: Sort State Information Provide access to the current sort configuration and type:
sort_info = input.Task_Subform.getSortState();
// Returns: 
// {"type": "predefined_column", "column": "Priority", "direction": "desc"}
// or {"type": "drag_and_drop"}

if(sort_info.get("type") == "drag_and_drop")
{
    // Drag-and-drop enabled, access via display_order
    sorted_tasks = input.Task_Subform.sortBy("display_order");
}
else if(sort_info.get("type") == "predefined_column")
{
    // Predefined column sorting, replicate that sort
    sorted_tasks = input.Task_Subform.sortBy(sort_info.get("column"), sort_info.get("direction"));
}
else
{
    // No sorting configured, use creation order
    sorted_tasks = input.Task_Subform;
}
Proposed Solution 3: Built-in Sort Preservation Automatically update a hidden "display_sequence" field whenever the display order changes (whether through predefined column sorting or drag-and-drop), making it accessible to Deluge:
// System automatically maintains display_sequence field for both sorting methods
for each task in input.Task_Subform.sortBy("display_sequence")
{
    // Always iterates in display order
    // Works regardless of sorting method (predefined column or drag-and-drop)
    info task.Task_Name;
}
Any of these solutions would bridge the gap between UI capabilities and backend automation for both sorting methods.
Real-World Impact
This limitation affects critical business processes:
  • Project Management (Predefined Column): Subform automatically sorts tasks by priority, but automated status reports generate in creation order, not priority order
  • Meeting Agendas (Drag and Drop): Users arrange agenda items manually via drag-and-drop, but generated PDF shows items in original entry order
  • Invoice Line Items (Drag and Drop): Users reorder line items for presentation purposes, but printed invoices ignore the arrangement
  • Course Curriculum (Predefined Column or Drag and Drop): Instructors order lessons logically (either by lesson number or manual arrangement), but student-facing materials display in database order
  • Checklist Applications (Predefined Column): Subform automatically sorts by due date or priority, but automated reminders follow original creation order
  • Product Catalogs (Drag and Drop): Users arrange products by preference or featured status, but exports and integrations ignore the curation

User Experience Impact: Whether using predefined column sorting (automatic) or drag-and-drop sorting (manual), when users see data in a particular order on screen and the system's automation ignores it, it creates frustration and erodes trust. Users expect that if they can see data in a certain order, the system should be able to work with it in that order.

Request to Zoho Team

Can this be addressed in a future update?

This is a fundamental disconnect between what users see in the UI and what developers can access in code. Both sorting methods (predefined column and drag-and-drop) suffer from this limitation. The current implementation forces developers to choose between:

1. Disable Sorting
Remove sorting capabilities (both predefined column and drag-and-drop) to avoid user confusion when automation doesn't respect display order
2. Accept Mismatch
Allow users to sort but acknowledge that automation will produce unexpected results

Neither option is acceptable for professional applications.

Community Input Requested: Has anyone else encountered this limitation or found a reliable workaround? This affects any application where subform ordering matters to end users.


      • Recent Topics

      • Zoho Books | Product updates | February 2026

        Hello users, We’ve rolled out new features and enhancements in Zoho Books. From Advanced Reporting Tags to the ability to mark projects as completed, explore the latest updates designed to improve your bookkeeping experience. Introducing Advanced Reporting
      • Update latitude & longitude address field API

        How do I update the coordinates of an address field from a widget? I can't modify the latitude and longitude of the address field. I think the problem is how I'm writing formdata variable. zoho_init.then(function (data) { var queryParams = ZOHO.CREATOR.UTIL.getQueryParams();
      • Zoho Forms - Feature Request - Past Into Scanning/OCR Field

        Hi Zoho Forms Team, You recently introduced the OCR/Scanning field which I have found great use for with one client who receives work orders as a screenshot from one customer. I want to raise a feature request here which would make that field even more
      • Zoho Forms - Feature Request - Year Field

        Hi Zoho Forms Team, You currently have the following date and time fields: Date Time Date and Time Year and Month It would be useful if you could include a "Year" field For example a recent application I completed said "What year was your house built?"
      • inability to use different primary address on invoice per location

        my company operates in two different locations with different email address. The problems then is the inability to edit the primary to suite the invoice for the second location.
      • Zoho Books - Breaking A Working App

        We've been using Zoho for many years now. Across all apps, entering phone numbers in standard formats was enabled in all apps. These formats are: xxx.yyy.zzzz xxx-yyy-zzzz (xxx) yyy-zzzz and we were able also to add extension numbers in these formats:
      • No Need To Fix Something That Is Working

        Zoho Books is a great financial tool which helps businesses to become more efficient and productive with day-to-day operations. As such, every change, upgrade, improvement needs to be carefully thought before implemented in the software and I'm sure Zoho
      • Use Zoho Creator as a source for merge templates in Zoho Writer

        Hello all! We're excited to share that we've enhanced Zoho Creator's integration with Zoho Writer to make this combination even more powerful. You can now use Zoho Creator as a data source for mail merge templates in Zoho Writer. Making more data from
      • Anyone in Australia using Zoho Books AND has their account with NAB?

        Hi I have an account with both NAB and Suncorp. Suncorp transaction come in the next day however NAB transactions take 4-5 business days to appear. eg: A deposit made today in my Suncorp will be imported into Zoho tomorrow. A deposit made today to the NAB account will be imported maybe Saturday (Friday overnight). I have contacted both Zoho and NAB but noone seems to know why. I was just wondering if anyone else in Australia uses NAB and has this issue (or doesn't) maybe we could compare notes and
      • Detailed Balance Sheet for tax preparer

        I'm using the free edition of Zoho Books. My tax preparer is asking for "detailed" Profit & Loss and Balance Sheet reports which include all the activity and transactions within the various categories. The default reports do not include these details.
      • On Edit Validation Blueprint

        Hello, I have a notes field and a signature field. When the Approve button is clicked, the Signature field will appear and must be filled in. When the Reject button is clicked, the Notes field will appear and must be filled in. Question: Blueprint will
      • Zoho Projects - Cloning a task does not trigger task workflow when created

        Hello! I have a Project where my team uses a set of tasks from a tasklist as templates, so we could simply clone it and drag it to another list in kanban view to avoid creating a new one from scratch. The process works well, but after cloning it the new
      • Host Group Appointments Online in Zoho Bookings

        Greetings from the Zoho Bookings team! We’re excited to announce a new enhancement to Group Booking that makes hosting online group events smoother and more professional than ever. You can now conduct online group events with auto-generated meeting links
      • Can't rename groups on Mac desktop app

        I'm working on an up-to-date Mac with a freshly downloaded Notebook app. I'm trying to rename a group within a notebook. Here I have, left to right, a note, a group, and a note. I select the group. On the top left, I select Action. On the dropdown, "Rename"
      • Workdrive Collaboration with an External User

        I would like to know if I can setup a collaboration space with an external user in workdrive or do I need to add them as a user on my system? If I need to add them, can I add them on Workdrive only and give limit access to our space only?
      • Delete button

        Hi, The delete button were hide into the three dot button. Can I display outside? why Zoho make this update?
      • FSM integration with Books

        Hi, I have spent a few months working with FSM and have come across a critical gap in the functionality, which I find almost shocking....either that, or I am an idiot. The lack of bi-directional sync between Books and FSM on Sales Orders/ Work Orders
      • Marketing Tip #23: Help customers with how-to guides and usage tips

        Customers don’t stop needing you after they place an order. Helping customers use your product correctly and confidently can improve satisfaction, reduce returns, and increase repeat purchases. Sharing simple how-to guides, usage tips, or care instructions
      • Powering Customer Support with our women

        In Zoho Desk support, women make up 50% of our team. We see this as one of our strengths, reflecting the spirit of this year’s theme, "Give to Gain". Our women find their balance Women carry many responsibilities — they represent frontline support, lead
      • Function #25: Automatically generate purchase orders from a sales order

        We kicked off the "Function Fridays" series with the goal of helping you automate your everyday accounting tasks. As we delve into today's post, I'm delighted to announce that we're here to present the 25th custom function in this series. While it is
      • Looking for Guidance on Building a Zoho Website

        I'm exploring the possibility of building a custom website with specific features using Zoho as an alternative platform. My goal is to create something similar to https://gtasandresapk.com , with the same kind of functionality and user experience. I'd
      • Auto-publish job openings on my Zoho Recruit Careers Website

        I have developed a script using the Zoho Recruit API that successfully inserts new jobOpening records to my Zoho Recruit website, but my goal is to auto-publish to the Careers Website. The jobOpening field data shows two possible candidates to make this
      • ZOHO Reports are taking longer time to get refresh

        Hi Team, Since last few days, I'm facing issues in getting updated reports. For eg: right after making an expense entry or even posting a journal, it is taking longer then expected for the updated reports. Refer below: "You are viewing the report that
      • Invalid scope choice: Workdrive integration in CRM

        Bug: There is an invalid option in the permission choices for Workdrive integration in CRM. If the entry "WorkDrive.teamfolder.CREATE" is selected, it will return a message indicating invalid OAuth scope scope does not exist.
      • Sales IQ chat is not working in signed android apk

        I have integrated ZOHO sales IQ support chat and i have followed each step and its working fine in my development build but when i create signed APK for it. Chat does not work in it and showing awaiting for detail. I previously asked the same query but
      • How to add line breaks in zoho.cliq.postToUser(...) message?

        In a CRM function using Deluge I'm sending this message and attempting to add some line breaks but they are ignored. Is there another way to add these breaks? My message: message: New urgent task\nDescription \nThis is a fake description.\n A new line?
      • Project Notifcatiion Emails - Milestone

        Hello: I cannot get myself, or most importantly my portal client user to recieve an email upon completion of a milestone. I have set up our 1st project. I have set up a test client user. (accepted the invitation and is listed in the system as a client
      • Enable Free External Collaboration on Notecards in Zoho Notebook

        Hi Zoho Notebook Team, I would like to suggest a feature enhancement regarding external collaboration in Zoho Notebook. Currently, we can share notes with external users, and they are able to view the content without any issue. However, when these external
      • Problem with CRM Connection not Refreshing Token

        I've setup a connection with Zoom in the CRM. I'm using this connection to automate some registrations, so my team doesn't have to manually create them in both the CRM and Zoom. Connection works great in my function until the token expires. It does not refresh and I have to manually revoke the connection and connect it again. I've chatted with Zoho about this and after emailing me that it couldn't be done I asked for specifics on why and they responded. "The connection is CRM is not a feature to
      • Update Existing Records greyed out in Free Version

        Trying to update records from an Excel sheet, and not getting the option to update. Only option is to add as new accounts. All documentation I can see says update should be an option! Accounts, Leads, Contacts, all the same.
      • 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 ?
      • Help with deluge script

        Hi Community, this is my first Deluge script. I've pieced it together from reading various articles I want to use it in a workflow to 1 Convert a lead to a contact 2. Create a record in a custom module Below is what I have got so far but it does not fire
      • How to use OR when filtering using two fields

        I want to create return a list of Account Names by filtering on Field1 = "yes" OR Field 2 = "no" I can't see how to use the OR in the filter.
      • Mobile phone version not working well

        I am working on the Zoho Site Builder. In the preview the desktop version looks okay, but in the mobile phone preview many words are cut off in the weirdest (wrong) way. How can I fix that?
      • Zoho - Please explain difference between Thread view and Conversation view on Ticket

        I have reviewed the help document here but am still not clear on the difference between the two views. As an example, I just had a back and forth on a ticket: - Customer emails support email. - I email back from Desk. - Customer responds back. - I email back from Desk. On the upper left drop down box on the ticket Zoho Desk now says this is "4 Threads" and "4 Conversations" . How is that 4 threads?? By my count it is 1 thread and 4 conversations (assuming by "conversation" Zoho means number of total
      • I need help to take Reports for tickets moved between departments.

        Hi, I need help to take Reports for tickets moved between different departments. Pls guide Shyam
      • Export to excel stored amounts as text instead of numbers or accounting

        Good Afternoon, We have a quarterly billing report that we generate from our Requests. It exports to excel. However if we need to add a formula (something as simple as a sum of the column), it doesn't read the dollar amounts because the export stores
      • Increase Round Robin Scheduler Frequency in Zoho Desk

        Dear Zoho Desk Team, We hope this message finds you well. We would like to request an enhancement to the Round Robin Scheduler in Zoho Desk to better address ticket assignment efficiency. Current Behavior At present, the Round Robin Scheduler operates
      • Automation #6 - Prevent Re-opening of Closed Tickets

        This is a monthly series where we pick some common use cases that have been either discussed or most asked about in our community and explain how they can be achieved using one of the automation capabilities in Zoho Desk. Typically when a customer submits
      • Zoho Desk EU slow/unresponsive

        Has anyone else got issues with ZohoDesk today in the EU? It takes an age to come back and if you do start typing something and try and send or save it looks like it times out. We are also getting this pic. ot I can't see anything on https://status.zoho.eu/
      • Next Page