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

        • Emails Disappearing From Inbox

          I am experiencing the unnerving problem of having some of the messages in my inbox just disappear.  It seems to happen to messages that have been in there for longer than a certain amount of time (not sure how long exactly). They are usually messages that I have flagged and know I need to act on, but have not gotten around to doing so yet.  I leave them in my inbox so I will see them and be reminded that I still need to do something about them, but at least twice now I have opened my inbox and found
        • Power of Automation :: Automatic removal of project users once the project status is changed.

          A custom function is a software code that can be used to automate a process and this allows you to automate a notification, call a webhook, or perform logic immediately after a workflow rule is triggered. This feature helps to automate complex tasks and
        • Customizing Form Questions per Recipient Group in Zoho Campaigns/Forms

          Hello everyone, I would like to ask if it’s possible in Zoho Campaigns or Zoho Forms to send out a campaign where the form questions can be customized based on the group of recipients. Use case example: I have prepared 20 questionnaire questions. For
        • Forms - Notification When Response Submitted

          How do I set it up to generate an email notification when a response (class request) is submitted?
        • How to disable user entry on Answer Bot in Zobot

          Hi, I have an Answer Bot in my Zobot, here is the configuration: I only want the user to choose 1 of the 4 the options I have provided: When no answer found, user chooses 'I'll rephrase the question' or 'Ask a different question When answer is found,
        • More admin control over user profiles

          It's important for our company, and I'm sure many others, to keep our users inline with our branding and professional appearance. It would be useful for administrators to have more control over profile aspects such as: Profile image User names Email signatures
        • Please Make Zoho CRM Cadences Flexible: Allow Inserting and Reordering Follow-Up Steps

          Sales processes are not static. We test, learn, and adapt as customers respond differently than expected. Right now, Zoho Cadences do not support inserting a new step between existing follow-ups or changing the type of an existing primary step. If I realize
        • Clear Tag & Linking Between Quotes and Sales Orders

          Hi Zoho Team, In Zoho Books, when a quote is converted into a sales order, it would be extremely useful to have: A clear tag/indicator on the quote showing that it has been converted into a sales order. A direct link in the sales order back to the originating
        • Add Direct Ticket Link to Zoho Help Center Portal in Email Replies

          Hi Zoho Support Team, We hope you're doing well. We’d like to request a small but valuable improvement to enhance the usability of the Zoho Help Center portal (https://help.zoho.com/portal/en/myarea). Currently, when someone from Zoho replies to a support
        • [Webinar] Deluge Learning Series - AI-Powered Automation using Zoho Deluge and Gemini

          We’re excited to invite you to an exclusive 1-hour webinar where we’ll demonstrate how to bring the power of Google’s Gemini AI into your Zoho ecosystem using Deluge scripting. Whether you're looking to automate data extraction from PDFs or dynamically
        • New in Cadences: Option to Resume or Restart follow-ups when re-enrolling records into a Cadence, and specify custom un-enrollment criteria

          Managing follow-ups effectively involves understanding the appropriate timing for reaching out, as well as knowing when to take a break and resume later, or deciding if it's necessary to start the follow-up process anew. With two significant enhancements
        • Im Stuck in an EDIT ONLY WITH WIZARD issue

          So I found Wizards to be a really helpful tool in minimizing the exposure of redundant, superfluous fields to staff that would never otherwise have to edit those fields. My issue is, that when the record (in this case a lead) is created with a wizard,
        • Account upgrade

          Good evening, I upgraded my account and paid for it. From standard to professional. Unfortunately after the paiment my account was not upgraded. Please your advise. Best Regards Erik van Staverden
        • How to set ALL default dates of my organization to DD-MM-YYYY format?

          All replies to this question comes from a time where the UI was different. It's extremely frustrating not being able to find how to do this simple setting change. I want everything and everyone in my organizations to have DD-MM-YYYY date format by default.
        • How can I sync from Zoho Projects into an existing Zoho Sprints project?

          Hi I have managed to integrate Zoho Projects with Zoho Sprints and I can see that the integration works as a project was created in Zoho Sprints. But, what I would like to do is to sync into an existing Zoho Sprints project. Is there a way to make that
        • Can we generate APK and IOS app?

          Dears, I want to know the availability to develop the app on zoho and after that .. generate the APK or IOS app  and after that I added them to play store or IOS store.. Is it possible to do this .. I want not to use zoho app or let my customers use it. thanks 
        • Zoho Subform Workflows onAdd of Row

          Suppose I have a form with attached workflows onLoad. If I use the form as a subform, will it inherit the workflows or do I need to create new ones onAdd of row?
        • Super Admin removal

          I brought a sub, and I gave the Super admin rights to a person who is no longer with us, so I need to change, and I need to make myself the Super admin
        • Better Notes Commenting

          Hi, I'd like to suggest better collaboration tools for NOTES. The current notes section for Accounts, Contacts and Deals is not ideally suitable for any degree of communication or collaboration. When responding to a note, there is no ability to leave
        • Exporting Templates

          I have just spent 2 hours creating a project template for a Netsuite configuration, and want to share it with other Zoho Projects users - who have a different account. Is there any way to do this?
        • Power of Automation:: Streamline Associated Teams based on the Task Owner update.

          Hello Everyone, A Custom function is a user-written set of code to achieve a specific requirement. Set the required conditions needed as when to trigger using the Workflow rules (be it Tasks / Project) and associate the custom function to it. Requirement:
        • No Response from Zoho Support in 8 Days - Typical?

          I have a couple of issues I'm trying to work through. Initially, I was getting support from support@zohofsm.com, but I have not received a response in 8 days (11 on another question). Is this typical? Can I pay for support? For context, I am not spamming
        • Add QUOTE OWNER profile image to a Quote Template

          I can add their email address.. phone number, DOB. I need to add a users profile picture so when they assign a template to a quote they own it adds their picture to the cover page. I've tried hacking a solution together but there has to be an easier way.
        • Zoho Connections Desk API relative URL PATTERN_NOT_MATCHED

          While i am trying to do this: async function fetchTicketsFromDesk(timeFilter = 'current_month') { try { const response = await ZOHO.CRM.CONNECTION.invoke("desk_connection", { url: "/api/v1/tickets", method: "GET", }); const data = response.details ? JSON.parse(response.details)
        • Zoho CRM - Custom Views for Portal Users

          I'm looking for an option to customise custom views for portal users in CRM. It would be great if "portal user" was a permission on custom views.
        • 【参加無料】10/17(金) 東京 ユーザ交流会 Vol.3 参加登録 受付開始!

          ユーザーの皆さま、こんにちは。コミュニティチームの藤澤です。 10/17(金)に、東京・新橋で「東京 ユーザー交流会 Vol.3」を開催します! 今回のユーザー事例セッションのテーマは、「Zoho Flowを活用した他社の決済サービスとの連携事例」です。 さらに、Zoho Flowに限らず、Analytics や Campaigns などの多彩なZohoサービスの活用方法について、豊富なご経験をもとにご紹介いただきます。 また、Zoho社員セッションでは、Zoho CRMを活用して日々の営業業務を効率化する具体的な事例をお話しします。業界を問わず、幅広い方にご参考いただける内容となっています!
        • Zoho Meeting Plug compatibility with newer versions of Outlook

          Documentation states that the zoho meeting plug in for outlook is only compatible with versions up to Outlook 2019 What is available to users of more up to date versions of outlook/office 365?
        • Introducing Zoho's own SMS gateway

          We're thrilled to announce the launch of our own SMS gateway feature within Zoho Marketing Automation! This new feature enables seamless SMS campaign management alongside your email marketing initiatives, providing a more integrated and efficient way
        • Embedding in Desk articles

          We would like to embed documents in our Desk articles. When we use an iframe for the embed, we get scrollbars and a frame border. Neither of those is acceptable. I've spoken with the Desk Support team about what we want and they tell me that it cannot
        • Zoho CRM button to download images from image upload field

          Hello, I am trying to create a button in Zoho CRM that I can place in my record details view for each record and use it to download all images in the image upload fields. I tried deluge, client scripts and even with a widget, but feel lost, could not
        • Mass Update Contacts In Zoho Campaigns

          Is there a way to mass update contacts in zoho campaigns? I want to be able to change the content of a field for a few hundred contacts, and can't go through all of them individually.
        • report showing assignment type

          Hi, We've created a number of workflows to allow us to auto assign tickets to agents based on keywords and other criteria. I'm struggling to create a report that would show me what is the percentage of tickets that are assigned automatically via workflows
        • Option to Disable Knowledge Base Section in Feedback Widget Popup Hello Zoho Desk Team

          Hello Zoho Desk Team, How are you? We are actively using Zoho Desk and would like to make more use of the Feedback Widget. One of the ways we implement it is through the popup option. At the moment, the popup always displays the Knowledge Base section,
        • Placeholders in Ticket Templates

          We should be able to use placeholders in ticket templates. When we create a new ticket, our description field is shown to the client in the email they receive.  It would be very handy to be able to personalize that description field in our ticket templates to pull in the name of the client that the ticket is for. Using them in the subject field as well, so we can auto populate Account Names, etc. 
        • when the record is created the tag want to Show as Opportunity how i achive this using Deluge Script

          In the quotation i have the work flow schedule for create opportunity record in the module , on that time the quotation tag select as opportunity created. How i achive this using Deluge Script . this like i want to Do tag1 = Map(); tag1.put("name","Nurturing
        • Delete a channel

          I need delete a channel in tickets.
        • Subtasks don't update parent task's times

          Hi there: I've recently upgraded to premium and check that subtasks completion % don't update the proportional completion of the parent tasks related to it.  We've been challenging with the problem of having to update twice or sometimes 3 times the completion of the related tasks. I've seen posts similar to this, of 3 years old.  Is there any roadmap for making this happen in a future release? Thanx César Ratto Lima, Perú.
        • IMAP Server not responding.

          Trying to connect a phone via IMAP and getting "imap.zoho.com not responding." Is the server down, for maintenance or otherwise? I've tried this on two different devices and got the same error on both.
        • Tip #44 – Get Deeper Insights with Zoho Assist’s Custom Reports – ‘Insider Insights’

          In today’s fast-paced IT environment, having a clear view of your remote support activities is more important than ever. Zoho Assist’s Custom Reports feature gives IT teams the ability to generate tailored reports that provide actionable insights and
        • Issue with SalesIQ Visitor Identification on WordPress

          Hi Zoho Support Team, I need some help with an issue on my WordPress website. My goal is to automatically identify logged-in WordPress users in Zoho SalesIQ, so I can see their name and email in the visitor list. Currently, my logged-in users are still
        • Next Page