Beam Help
Get help now

How-to · Zoho CRM

How to Get a Subform in Zoho CRM

Retrieve subform data to access related records within your modules.

Subforms in Zoho CRM let you capture and display multiple line-item rows of related data directly inside a parent record — think product line items on a deal, or multiple contacts on an account. Here's what you need to know to work with them effectively.


Why this matters


Subforms are essential whenever a single CRM record needs to hold a repeating set of structured data without creating separate child records. They're commonly used for order line items, attendee lists, or any scenario where one parent record has many related rows. Understanding how to query, customise, and extend subforms saves significant manual data-entry time and unlocks richer reporting.


Step-by-step


Step 1. Understand what a subform is and where to find it.

A subform appears as a table-like section inside a Zoho CRM module layout. Each row in the table represents one entry, and you can add, edit, clone, or delete individual rows directly on the record detail page. Recent platform updates also allow you to sort and filter rows based on criteria, and perform these actions via Ajax/spot edit without a full page reload. [2]


Step 2. Pin key columns and adjust column widths for easier navigation.

If your subform has many columns, admins can now pin multiple columns so they stay visible as users scroll horizontally. Admins can also adjust individual column widths to reduce unnecessary horizontal scrolling and give the team a cleaner interface. Both settings are managed by a Zoho CRM account admin. [2]


Step 3. Query subform data using the Developer Hub.

When you need to retrieve subform records programmatically, navigate to Setup → Developer Hub → Queries and click Add Query. In the "Create Query" dialog, enter a Query Name and API Name, then click Next. Under Configuration, choose your target module — the query builder explicitly supports subforms as a source type. From there, select the fields you want returned (up to 50 fields per query) and apply any criteria, including dynamic values that are resolved at runtime. [6]


Step 4. Apply criteria to filter subform rows.

Within the query builder's Criteria section, you can choose None to return all rows, filter by record ID, or build conditional logic using AND/OR operators with various comparators. Dynamic criteria let the value be supplied at the point the query is executed, making queries reusable across different records. [6]


Step 5. Aggregate subform data into parent-record fields.

Zoho CRM provides up to five Aggregated Sum fields natively on a subform, which roll up numeric column totals into the parent record. If you need more than five aggregations, standard formula fields on the parent record cannot directly read subform data without additional scripting. [1] For teams that need a no-code workaround, consider restructuring which columns use the five available aggregation slots, or explore Deluge-based automation to push calculated values into a regular currency or number field on the parent record. [1]


Step 6. Add subform rows via the Zoho CRM mobile app or Zoho Forms.

If your team captures data on the go, subform rows can be added through the Zoho CRM mobile app. Separately, if you collect data via web forms, Zoho Forms supports a Subform field type that allows respondents to submit multiple line-item entries, which can then be pushed into Zoho CRM records through the Forms–CRM integration. [4] [3]


Step 7. Manage subform access for portal users.

Subform permissions can be extended to portal users, allowing external parties — such as customers or partners — to view or manage subform rows without needing a full CRM licence. This permission is configured at the subform level within your CRM layout settings. [2]


Common pitfalls


  • Formula fields can't natively read subform columns. Standard formula fields on the parent module do not have access to individual subform row values. You are limited to the five built-in aggregation fields for no-code roll-ups; anything beyond that requires Deluge scripting. [1]
  • Name field sub-fields in Deluge require special handling. When inserting rows into a subform via Deluge code, Name-type fields (which have sub-components like first name and last name) don't always accept dot-notation assignment straightforwardly. This is a known friction point when building automation that populates subform rows programmatically. [5]
  • Query field limits apply. When using the Developer Hub query builder to fetch subform data, you can select a maximum of 50 fields per query and a maximum of two related/lookup fields. Plan your queries accordingly to avoid hitting these ceilings. [6]

What to check


  • Verify admin permissions — column pinning, column width adjustments, and portal access settings for subforms all require CRM admin rights; confirm the right user is making these changes. [2]
  • Confirm aggregation slot usage — check how many of the five Aggregated Sum fields are already in use on your subform before designing new roll-up logic. [1]
  • Test query criteria with dynamic values — after building a Developer Hub query that targets a subform, run a test execution to confirm dynamic criteria resolve correctly against live records. [6]

---


*Beam Help is an independent Zoho consultancy and is not official Zoho support. For platform-level issues, always verify against your current Zoho CRM edition and plan.*

Sources cited

  1. [1] Adding a custom formula field from sub-forms
  2. [2] Q1 2025 Update
  3. [3] Forms | Integrations | Knowledge Base
  4. [4] What's New in Zoho Forms
  5. [5] When adding subform records, how do I access member fields of a name field
  6. [6] Hi, how can we help?
  7. [7] Introducing Intake Forms
  8. [8] Create extensions using cloud editor | Online Help | Zoho Projects