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

    • Adjusting Physical Inventory

      Not getting very far with support on this one, they say they are going to fix it but nothings happened since November. Please give this a thumbs up if you would like to see this feature or comment if you have some insight. Use Case: Inventory set to be
    • I need to Record Vatable amount and non vatable amount separately in zoho books in a single line

      I need to Record Vatable amount and non vatable amount separately in zoho books in a single line give me the customisation option and in invoice copy to customer the total amount should be inclusive 5%vat and no need to show the vatable and non vatable
    • sync views to sheet

      Im looking to sync my views aka reports in analytics to zoho sheets, when data is updated in analytics it also should be updated in sheets, till now zoho sheets only offer raw data connection and it is not enough as these reports are difficult to re-do
    • How to update the Status in a custom module?

      Hi, I have a custom module "cm_payment_registry" in Billing, I am trying to change the status which is "Draft" with: array = {"custom_status":"Approved"}; zoho.billing.update("cm_payment_registry",organization.get("organization_id"), XXXXXXXXXXXXXX, array,"connectionname");
    • Opening balances - Accounts Receivable and Payable

      Our accounting year starts on 1st August 2013 and I have a Trial Balance as at that date, including Accounts Receivableand Accounts Payable balances, broken down by each customer and supplier. Q1 - do I show my opening balance date as 31st July 2013 or
    • Replace Zoho Invoice with QuickBooks

      We are implementing Zoho FSM for a cleaning business in the US with 50+ field workers. This business has been using Quickbooks for accounting for decades and will not migrate to Zoho Books. A major issue in the integration is the US sales tax calculation.
    • 2025 Highlights: A Year of Steady Progress and Significant Developments

      As we come to the end of 2025, let's take a moment to reflect on the significant progress and developments we've made to improve your travel and expense management. In the Spotlight Introducing Online Booking (US edition only - Early access) Enable online
    • Function #42: Show the actual rate of items on invoices

      Hello everyone, and welcome back to our series! In Zoho Books, you have the ability to create Price Lists, wherein you can mark up and mark down the item rates by a specific percentage or set custom rates. Generally, when you apply a price list to an
    • 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
    • Warehouse fast processing

      Hey guys, would anyone be interested in something like the attached image ? If there's any interest I'd be willing to develop it further for others to use, it's much faster than using Zohos native solutions, it can part pack, pack in full, part ship,
    • Can I create a CODE 128 custom field for my items in Zoho Inventory and then use it for generating Sales Orders?

      Can anyone helps me, I don't want to use the SKU code for scanning my products.  ​Because all my products have a CODE-128 label attached.
    • Start/Stop Timmer in Chrome Extension

      The chrome extension is great and allows you to do allot however one of the most common things employees working on projects need to do is track their time. Having an easy start/stop timer to track time would be great.
    • Invalid collection string

      I haven't changed anything in one of my functions. I'm trying to run it manually and suddenly "Invalid collection string" appears. My code has 6 lines and the error says that the error is on 7th line. Why? What does this error mean? Nothing has been changed
    • Zoho Directory 2025: New Features | Security Enhancements | Enriched UI

      Hello everyone, Greetings from the Zoho Directory team! 2025 has been a highly successful year for Zoho Directory. We are delighted to introduce a fresh set of features, an enriched UI, and major product enhancements. These updates aim to deliver a smoother
    • zoho people 5 report

      How do I customize my report in Zoho People Report? I understand that I can get the results of multi-table queries through SQL join statements, but I don't know the relationship between each table. I tried to create a report using Attendance User Report
    • Leave Report Emailed Weekly

      I am wondering if someone knows how to have a report generated either weekly or monthly or both for department heads and ownership of upcoming employee leave. For instance, it would be nice to get an emailed report on Friday for the upcoming week of who
    • Zoho Flow Decision Continuing Despite Not Meeting Conditions

      I have a picklist field called Lead Status in the leads module, with the following lead Statuses: New Lead Attempted Contact - 1 Attempted Contact - 2 Attempted Contact - 3 Attempted Contact - 4 Attempted Contact - 5 Attempted Contact - 6 Attempted Contact
    • Tip #55- Accessibility Controls in Zoho Assist: Exploring Vision Settings- 'Insider Insights'

      As we approach the end of the year, it’s a good moment to reflect on how we can make our tools more inclusive and easier to use for everyone. Remote support often involves long hours in front of screens, varied lighting conditions, and users with different
    • Zoho Recruit Slow and Freezing on all screens

      We have had an issue with Zoho Recruit for weeks being extremely slow and at times freezing.  We have 100 mega internet, and I went into each computer and updated the virtual memory so there is more available.  Also restarted all computers daily.  Still having the issues.  Almost unable to work.
    • Credit Management: #2 Configuring Right Payment Terms for Credit Control

      Think about the last time you ordered something online and saw that little note at the checkout, "Pay on Delivery" or "Pay later". It's simple, but it actually sets the tone. As a business owner, you know exactly when payment is expected. Now, imagine
    • Dependent (Conditional) Fields in Zoho Bookings Forms

      Hello Zoho Bookings Team, Greetings, We would like to request the ability to create dependent (conditional) fields in Zoho Bookings registration forms. Current Limitation: There is currently no way to make one field’s available options depend on the value
    • Bug Report: Search fails to find existing notes after Evernote import

      Hello, I recently migrated from Evernote (~2600 notes across 23 notebooks), but the search functionality is currently broken. The Issue: I can manually browse to a specific note and see it exists. However, when I type the exact or partial title of that
    • Marketing Tip #13: Win repeat customers with post-purchase emails

      The relationship with your customer doesn’t end after the sale; that’s when it begins. A thoughtful post-purchase message shows customers you appreciate them, keeps your brand top of mind, and can even lead to another sale. You can thank them, ask for
    • Zoho Form

      I have problem with Zoho Form. One of form i don't received the PDF version. Others okay except this one. W904533
    • Create & Update Zoho Vault Passwords via Zoho Flow

      Hi Zoho Flow / Zoho Vault Team, We’d like to request an enhancement to the Zoho Vault integration in Zoho Flow. Current Limitation: At the moment, Zoho Flow supports only the following selected Zoho Vault actions, such as: Fetch passwords, Share passwords
    • Custom Related List Inside Zoho Books

      Hello, We can create the Related list inside the zoho books by the deluge code, I am sharing the reference code Please have a look may be it will help you. //..........Get Org Details organizationID = organization.get("organization_id"); Recordid = cm_g_a_data.get("module_record_id");
    • Migrate different zoho subscription to zoho one

      Dear We have different zoho subscription we need to migrate it to zoho one. Currently we are paying for zoho email, zoho expense, zoho payroll etc under different admin We need to move it too zoho one flexlible plan for all my employees
    • Features, Feedback and Votes

      We’re launching the Feedback Forum for our customers. This is 'THE' place where you can add everything you’d like to see in Zoho Books. If you don't find the specific feature you need, simply add it so others can also vote for it. While we cannot promise
    • Payment system for donations management

      I manage an organization where we receive donations from payers. Hence, there is no need to first create invoices and then create payments received against the invoices. What are the recommended best practices to do this in ZohoBooks?
    • There Might Be A Glitch in Determining If A String Represents A URL

      I suspect there might be a glitch in determining if a string represents a URL or not. For example, I cannot embed the following URL. Perhaps the exclamation mark or parentheses are the culprit? https://en.wikipedia.org/wiki/How_the_Grinch_Stole_Chri
    • Customer Management: #4 Enhance Customer Journey

      When Neha started DefineOps, a growing IT support and consulting firm, most of her work was straightforward. A client would sign up for a free version, decide whether the service works for them, and then either continue or discontinue. Billing was simple,
    • Android app sync problem - multiple devices have same problem

      Hello, I am having a problem with synchronization in the Android app. When I create a drawing, the data does not sync correctly—only a blank note is created without the drawing. I tested this on multiple devices, including phones and tablets, and the
    • Marketing Tip #1: Optimize item titles for SEO

      Your item title is the first thing both Google and shoppers notice. Instead of a generic “Leather Bag,” go for something detailed like “Handcrafted Leather Laptop Bag – Durable & Stylish.” This helps your items rank better in search results and instantly
    • Territory Assignment Issues (Lead to Account + Contact)

      1. Lead → Account & Contact Territory Assignment on Conversion A Lead is automatically assigned one or more territories using a workflow and Lead Assignment Rules. This works as expected, and we are able to assign multiple territories to a Lead automatically.
    • Marketer's Space: Proven tips to improve open rates – Part II

      Hello Marketers! Welcome back to another post in Marketer's Space! We're continuing from where we left off a fortnight ago. We ended the previous post discussing the subject line, and we'll continue from there. Let's dive right in. Pre-header Pre-header
    • SQL Table slowed to a crawl

      Hi all - I seem to have noticed an update. Now whenever I am typing in the script field for the SQL tables there is a huge delay and it is all very slow. This has never been the case for me in over 5 years of using Analytics - I really hope it's fixed
    • Deluge Events/search API works in user environment but not in sandbox – why?

      I am creating an Extension for Zoho CRM using Zoho Sigma Platform I’m using the following Deluge code to search Events in Zoho CRM based on Start_DateTime: criteria = "(Start_DateTime:greater_than:2025-12-20T00:00:00+00:00)"; url = "crm/v8/Events/search?criteria="
    • Ensure Consistent Service Delivery with Comprehensive Job Sheets

      We are elated to announce that one of the most requested features is now live: Job Sheets. They are customizable, reusable forms that serve as a checklist for the services that technicians need to carry out and as a tool for data collection. While on
    • What are Zoho Meeting capabilities included in Zoho Workplace Standard?

      I am evaluating using Zoho Meeting for my organization, but it is not clear what Zoho Meeting capabilities are already included in Zoho Workplace Standard. - Are meeting recordings included in Workplace Standard? - Can we invite external meeting participants
    • How can I get the participant list of a reoccurring meeting afterwards?

      I'm trying to use the Meeting Participant Report from the API docs but when I call it on a reoccurring meeting it returns that there are no participants because it thinks I'm talking about the meeting in the future. Is there a way to use webhooks or some
    • Next Page