In simple terms, a subform is a secondary form or a table, which enables you to add multiple line items to a primary form. Your CRM data are often inter-dependent. You may have the necessity to associate multiple items to a single record. In technical terms, we call these "line items". A subform allows to associate multiple line items to a single record.
For example, while ordering a mobile phone, a customer may place the order for accessories such as mobile charger, flip cover and a microphone - along with the main product. So, these become "sub-products". While customer A orders these three accessories, customer B may order another 5. Each accessory may require essential information such as amount, rate, quantity, discount and so on.
This Accessories section in itself becomes a form - where you ask for details such as name of the accessory, price, quantity, vendor and so on. So essentially you have two forms:
A primary product form, which contains details about the main order: mobile phone.
A sub product form, which contains details about the associated accessories. This is nothing but a subform in CRM.
On a more technical perspective, subforms easily solve the need for you to establish a one-to-many relationship with data in your CRM, in which many secondary items are associated to a single primary record. The following "Scenarios" section offers examples from many industries to illustrate the purpose of a subform.
Scenarios
Subforms can be used in various scenarios. Some of them are outlined below:
Sales Sector: A subform to associate contact details to accounts
If you have many contacts that you are working with in a specific company, create a subform to jot down the details of the contacts.
Education Sector: A subform to associate academic details to a student
A Student application form may require the applicant to fill a complete section on Academic Details and Previous employment details, if any. This may contain details about the employer, job title, description and so on. While the primary form is still all about the student, the subform is a table with details about previous companies and associated information.
Insurance Sector: A subform to associate dependent details to an applicant
A life insurance form may ask an applicant to fill dependent details - this section would be a form in itself with details required such as Dependent Name, Age, Sex and other identity related information. While the primary form is still about the insurance policy holder, the subform is a table with details about his/her dependents.
Real Estate Sector: A subform to associate References details in a rental application form
A house rental or lease form could contain a section on Floor Plans. These could require details such as apartments, description, area etc. While the primary form is still about a property, the sub form could be about details about the houses under this property.
Retail Sector: A subform to associate products in invoices and orders
A manufacturing company can customize the invoice and orders to include fields like sale price, product recommended retail price, buying price, formula field to calculate profit or discounts, etc. in the product line item in the Inventory modules.
Building a subform
A subform is created using the layout editor. You will insert the required types of fields as "Columns" in a subform and add aggregate fields if required. The following sections break down the process of creating a subform in Zoho CRM.
To create a subform
Go to Setup > Customization > Modules and Fields.
From the list of modules, click the required module and layout. Example: Products module, Standard layout.
In the layout editor, drag and drop the Subform block from the New Fields section on the left.
Name the subform: Example: Sub Products. Note that subforms are layout-specific. You can have entirely different subforms for Layout A and Layout B of the same module.
Inserting columns in a subform
In the subform, you must next insert the columns required. These columns are nothing but the different types of fields such as single line, number, currency, formula, pick-list field, file upload field, lookup, user field, and so on.
Association of fields from a lookup module
When you add a lookup field to a subform, you can also include fields of the lookup module. For example, when you add Vendors as the lookup module, you will be able to add fields from this module - "Vendor Email" and the like. As you fill line items in this subform, you will see that the Vendor Email field is automatically populated as you look up a vendor. You can edit this field in the subform any time.
Similarly, you can have a user field Product Engineer for the different tent models available. Along with it, you can have other related fields like Email, Country, etc. from the users module listed, and add them further as columns in the subform. Updating the Product Engineer field will automatically update the following fields.
Note that while you can associate fields from the lookup module to a subform, they are not in sync with the subform. That is, when you change a Vendor Email field, it is modified in the subform but not in the original Vendor module. This is because, you only make an association here, but not synchronization.
Note:
Fields of lookup module will not be populated upon lead conversion, Quote conversion, updating through API, Data Migration, Import, etc.
User Lookup field is not supported for inventory modules.
Allow Record Accessibility (Associated users will get access to the records) is not supported on subform user fields.
To insert columns in a subform
In your subform, click Add Field.
From the Field Type drop-down list, click the required type of field.
Name the field and set field properties. In case you insert a lookup field, you can add specific fields from the related lookup module.
Following are the type of fields you can include in a subform as the form's "Columns".
Single Line
Pick List
Decimal
Multi-Line
Multi-Select Pick List
Percent
Email
Date
Long Integer
Phone
Date/Time
Checkbox
Number
Currency
URL
Lookup
Formula
User
File Upload
Here is a sample subform for a company that sells mobile phones. While a phone is their primary order, there could be sub products that include accessories. This subform includes columns such as the following:
Name of the accessory
Vendor (Lookup field)
Vendor Email (Field from Lookup module)
Rate
Quantity
Price
Discount
Amount.
Inserting an aggregate field
An aggregate field allows for a mathematical function to be performed on a set of data. After the necessary columns are included in your form, an aggregate field can be integrated. This is particularly useful in situations like tracking mobile sales, where accessory details are listed in a subform labeled "Sub-Products", which might encompass data fields like quantity, price, description, discount, and more.
Types of Aggregate fields
Predefined aggregate functions These functions, such as SUM, AVERAGE, MAXIMUM, and MINIMUM, are readily available in the system. If you want to sum the price column of all items, an aggregate field named "Total Amount" can be introduced and SUM applied as its function to the Price column. As line items are entered into the "Sub-Products" subform, prices are automatically summed.
Condition-Based aggregate fields: You can also set conditions for the predefined aggregate field such that the aggregation of field values will happen based on specific criteria. You will have the option to aggregate values from all rows or only from those that meet a specified condition. For example, a quote containing rows for mobile devices sold and accessories sold along with it, you can set conditions such that the aggregate field will show the aggregate only for mobile devices.
Formula Functions For any other function apart from the predefined aggregate functions, you can define your own Formula Expression using the Formula Tab. For example, your Total Amount field is not a Sum of the total prices but Sum of Total Prices - Discount + Tax. This expression can be defined in the Formula Section appropriately. When line items are entered in the Subproducts subform, the entered function will be executed automatically.
Manual entries (New Fields) In cases where you don't want the system to make these aggregate calculations, you can add a New Field. This new field can be a Currency Field, Number or Decimal Field. For example, you want to have an aggregate field called Adjustments, where entries are made on an ad-hoc basis manually. In this case, you can choose New Field, choose the type of field- say currency and add it as an aggregate field.
To insert a predefined aggregate field
Click + Add Aggregate Field within the subform.
On the Aggregate Fields popup, go to Aggregate.
Field Label: Enter the name of the field.
Aggregate Function: From the dropdown, select the function to be used (SUM, AVG, MAX, MIN)
CRM will automatically calculate the aggregate values based on the settings made here.
Select the numeric field from the subform based on which the aggregate is to be made.
Choose the decimal places.
Check Aggregate specific rows only if you want only specific rows to be considered, and specify the conditions.
Click Done.
To insert an Formula based aggregate field
Click + Add Aggregate Field within the subform.
On the Aggregate Fields popup, go to Formula.
Field Label: Enter the name of the field.
Formula Return Type: Choose from Decimal, Currency, String, Date, DateTime, Boolean.
In case of Decimal, or Currency: Choose the number of decimal places.
If predefined functions are not adequate, design an Aggregate Function within the formula section.
Click Done.
To insert a new field
Click + Add Aggregate Field within the subform.
On the AggregateFields popup, go to New Field.
Select the type of new field: Number, Currency, Decimal.
Note
Aggregate field limitations are consistent with the field limitations of the parent module.
When specifying criteria for aggregate fields, only the subform fields will be included in the options.
Multi-line fields with large characters types, and file upload fields are not supported on for criteria selection.
Manage Preferences
The options to set subform permissions, and bulk addition are being released in a phased manner.
Once you have entered all the columns and aggregate fields, it's time to set the permissions and properties for the subform and fields in the subform.
Updating subform properties
Based on your business requirements, the properties of an individual subform can be updated. Click on the gear icon on the subform and choose from the following options.
1. Mark as required: When you want the subform to carry any data before you save the record, you can mark the subform as required.
For instance, you can mandate your bank tellers to fill in the KYC details to open a bank account.
Note:
If there is a mandatory field inside a mandatory subform, then that field cannot be empty.
If a subform is not marked as required, you can save the record with or without values in it.
If you have not marked a subform as required, but there are fields within the form that are marked mandatory, you can still save the record without any values filled in them.
If you have a non-mandatory subform, mandatory fields will be applied only when the users provide any value to the subform.
2. Set permissions: Enable user access for subforms by setting permissions for each profile. Choose from view, create, edit, and delete options. Check the boxes to give specific permissions to users based on their profiles. For example, you can provide Compliance Officers with view access for subforms while granting Sales Associates full access, per their needs.
Note:
Users can clone subform rows only if they're given the create permission.
Users with edit permissions can reorder rows.
To delete rows, users must also have edit access.
For mandatory subforms, the view and create permission cannot be changed.
3. Edit properties: You can update your preferences by editing the subform's properties.
Update the name of the subform.
Limit the maximum row entries allowed in the subform.
Allow multiple rows simultaneously—Bulk additions via lookup.
Mark or unmark the subform as required.
Allow or restrict the option to re-order row entries.
Update the tooltip to guide users as they fill out the form.
To add multiple rows at one time to your subform:
In the subform preferences, click on edit properties, and check the Allow bulk addition box.
Select the lookup field based on which you want to select the records for bulk entry.
Select the columns in the subform whose values you want to be updated during the bulk entry.
Once bulk addition is enabled, in the record create/edit page you can add bulk entries in the following steps.
Click on the dropdown beside the Add row button, and click Add multiple rows.
On the pop-up to assign records to the subform, choose records in bulk by checking the boxes.
Click Assign. Additionally, you can click Add values for selection to set the values of the subform columns before adding the bulk entries.
For example, in case of the Quantity column, you can add or edit the values for that column. After confirming, the chosen entries and entered values will fill the rows, simplifying data entry and management.
Here's a video for reference on configuring and adding bulk entries to a subform.
4. Unused Fields: It lists all the fields that are removed from a subform and moved to the list of unused fields. You can click on them to add to this subform or delete it permanently from the unused fields.
5. Subform Fields Left: This option lists the number fields you have consumed and number of fields you can still avail, for each field type.
6. Remove Subform: If you no longer require a subform inside the record, you can remove and the same will be stored in the unused items of the layout editor.
If you would like to permanently delete it, you can do so by hovering over the subform and click the trash icon , under the unused items section in the layout editor.
Notes:
You cannot delete a subform, if the form and the fields are marked as required.
Setting field permissions in a subform
Each column (field) in a subform can be granted access rights just like any other field in the layout. Simply click the More icon on the field and choose among the following options.
Mark as required: Mark this field as mandatory so that a record cannot be saved without a value for this field.
Set Permissions: For each profile with access to this field, you can set the permissions of Read and Write, Read Only or Don't Show. For instance, Deal Amount should be a Read Only Field for Sales Reps but can be a Read and Write field for Managers.
Edit Properties: Edit the settings of each field based on the field type. Example, Number of characters for String fields, Maximum digits allowed for Number fields and so on. You can also include Tool Tips to explain what is required for each field.
Remove Field: When you don't require a field, you can either delete it permanently or just remove it from this subform.
When you only remove it from the subform, these are moved to the Unused Fields list of the form. To restore a removed field, go to the Subform Settings and select Unused Fields. From the list of fields, simply click the field once to restore it to the subform.
Actions supported in the Subforms
Some of these features are being released in a phased manner, and are currently accessible only to selected users.
Add Rows: Quickly add additional rows and items to the form when you need to expand the order list with more products/items.
Edit: You can update details on the form, such as product details even directly on the details page.
Note: On the details page;
Cscript will not be triggered during the subform AJAX edit.
For aggregate Tax or Discount, the layout rule will not be executed if the subform row is edited.
For aggregate Tax or Discount, the validation rule will not be executed. Instead, an 'internal error occurred' message will be shown.
Clone Rows: You can duplicate entries for similar values, reducing repetitive data entry.
Note:
Clone row is not supported in BluePrint transition popup.
Delete Rows: Easily remove unnecessary entries, keeping your data clean and organized with minimal effort.
Filter Subform Records: You can filter subform records directly in the record detail page. This allows you to easily find specific records within the subform.
Sort Subform Records: You can sort subform records in the details page. This helps you organize the records based on your preferred criteria.
Note: Filters and sorting will not be persistent; they are intended for instant actions based on the results only.
Add Subforms in Mail Merge Templates
You can add subforms that were created in a module, in mail merge template and send it to your customers. For example, information such as details of accessories purchased, life insurance dependency details, history of educational details, etc. which are captured using subforms can be added to your mail merge template.
Create reports and dashboards based on subforms
While creating a report for a module, you can base it out of subforms present in the module. For example, when you create report for Products, where you have Sub-products as a subform, this Sub-products subform will be listed under Related Modules section.
If you want to pull up a report of each product and the Sum Total of its sub-products, you can easily get this information by creating a subforms-based report.
To create a report based on subforms
Go to the Reports module.
Click Create Report.
Select the primary module. Example, Products.
In the Related Modules section, select the required subform. Example, Sub-Products.
Click Continue.
Choose the type of report. Example: Summary Report.
Click Continue.
In the Reports Representation section, choose the columns required from the Available Columns section and add them to the Selected Columns. Example, Amount, Discount, Quantity, Rate etc.
Click Continue.
Add any filters if required. Otherwise, RUN the report. You can also create dashboards from the reports thus created.
Points to remember
A subform is available in the Enterprise Edition and above.
You can create 2 subforms per module in the Enterprise edition and 5 subforms per module in Ultimate edition.
The maximum number of subform fields you can add in a layout is 25.
The maximum number of entries across all subforms on an aggregate is 200.
The number of aggregate fields you can create falls within the field limits of the parent module.
Subforms are layout-specific. You can have entirely different subforms for Layout A and Layout B of the same module. This includes the subform fields as well as the aggregate fields.
Subforms are not available for Tasks, Calls, Meetings (Activities), Pricebooks.
Fields used in subforms will show up in reports when subforms are selected as secondary modules.
The fields used in subforms will not show up in the following places.
Custom view columns.
Advanced filters
Layout rules
Blueprint validation
Webforms
Import
Global Search
Template merge fields
Validation rules
Workflow field update and criteria
However, a subform's aggregate fields will be available in the above-mentioned places.
Access your files securely from anywhere
Zoho CRM Training Programs
Learn how to use the best tools for sales force automation and better customer engagement from Zoho's implementation specialists.
If you'd like a personalized walk-through of our data preparation tool, please request a demo and we'll be happy to show you how to get the best out of Zoho DataPrep.
Install the PageSense code snippet on your site in a matter of minutes and start collecting in-depth data about the website visitors to grow your business.
Set up goals in PageSense to measure every single action performed by visitors on your website like button or link clicks, form submissions, and page engagements.
Create funnels in PageSense to quickly see which pages visitors use to enter your website, where they navigate to next, and which pages they decide to leave without converting.
Visualize your visitor's behavior with color codes
Set up heatmaps in PageSense to see where users have clicked more, how far they've scrolled, and on which parts of a page they've spent the most time using color-coded patterns in reports.
Use form analytics in PageSense to see how people interact with different fields in your form, whether they complete the form successfully or not, and where exactly they drop out on your form.
Use session recordings in PageSense to watch a video of all the visitor actions performed on your website including the pages they navigate, the buttons they click, the UX issues they face, and more.
Run A/B or Split URL tests in PageSense to figure out which version of your web page works best for your business and results in the best conversion rate.
Use personalization in PageSense to deliver customized versions of your website for every individual customer based on their demographics, local weather, browsing history, and more.
Run polls on your website using PageSense to understand what your customers think about your products/services and what needs improvement on your site.
Use web push notifications in PageSense to schedule and notify your customers about an upcoming flash sale, product releases, promotional coupons, and a lot more that can spark conversions on your website.
Use pop-ups in PageSense to instantly grab the attention of visitors by showing attractive signup offers, coupon code discounts, or email newsletters that can eventually convert them into subscribers.
Use PageSense's advanced features like creating mutually exclusive groups, enabling cross-domain tracking, configuring customized project JS, and more to get deeper insights about your website.
Download the PageSense extension app available for your web browser with a few clicks and start collecting all of your required website metrics in real time.
Discover your favorite integrations with PageSense
Get a deeper look at your website's data by seamlessly integrating PageSense with a host of popular third-party apps like Google Analytics, Mixpanel, Intercom, and more.
In Zoho CRM, you can create different types of groups (set of users) to manage a set of common records. Groups can be used for setting up team selling, team support, event management by a group of marketing users, etc. Users associated with a ...
Modules in Zoho CRM, let you categorize and track various aspects of your business such as Sales, Marketing, Customers, Products, Meetings and the like. Modules in Zoho CRM are represented in the form of tabs such as Leads, Contacts, Deals, Tasks ...
Understanding Territory Management Using Territory Management, you can segment accounts, contacts and deals into territories. You can build a territory hierarchy by creating territories and sub territories. You can define criteria for each of these ...
Zoho CRM for Everyone is available on the Early Access mode for customers upon request. Request access to gain hands-on experience with this new version. Folders help organize modules better in a Teamspace. This makes it easier for users to find and ...