Workflow rules for subforms in Zoho CRM are a set of actions (field updates, email notifications, SMS notifications, and webhooks) that execute when specified conditions on a subform row, or its parent record, are met. These rules let you automate actions at the row level, not just the parent record level.
For example, in the Deals module, sales reps list every product line item tied to a deal in the Product Details subform. You can configure a workflow rule to trigger the moment the Discount (%) field on a product row exceeds 50%, instantly notifying the sales manager and updating the Approval status field on the parent Deal record to "Pending review."
A subform-based workflow rule comprises the following elements:
- Basic Details - Specify whether the rule applies to a module or a subform, along with the rule name and description.
- Rule Trigger - Specify when the rule should be triggered, and based on what. There are two options:
- A subform row's action - Rules can be triggered when a row is added, modified, added or modified, or deleted.
- A date/time field's value - The rule is triggered based on the value of a created time, modified time, or custom date/time field on the subform, with a defined execution time and recurrence.
- Workflow Condition - You can build conditions at two levels for a subform-based rule:
- Subform-level conditions - Apply conditions directly on the subform's fields, so the rule fires only for rows that meet your criteria.
- Parent module-level conditions - Apply conditions on the parent record's fields (all records, or records matching certain criteria) to control which parent records the rule considers.
- Actions - Specify the action to be automated for rows (and their parent records) that meet the set criteria.
- Instant Actions - Add field updates, email notifications, SMS notifications, webhooks, and functions that trigger immediately when the rule executes.
- Scheduled Actions - Add field updates, email notifications, SMS notifications, webhooks, and functions that will be scheduled and triggered based on a specified time.
- Navigate to Setup > Automation > Workflow Rules.
- On the Workflow Rules page, click Create Rule.
- In the Create New Rule pop-up, click the Module drop-down, then scroll to the Subforms section, or search for the subform by name.

- Choose the subform you want to build the rule on. Subforms are listed with their module name in brackets, for example Product Details (Deals).
- Enter a rule name (for example, "High Discount Approval for Products") and an optional description explaining the purpose of the rule.
- Click Next to configure the trigger, conditions, and actions.
Define the trigger (WHEN)
- Row added: Executes the rule when a new row is added to the subform.
- Row modified: Executes the rule when an existing row is modified. Choose one of the following:
- Any field gets modified: Executes the rule when any field in the row is modified.
- Specific field(s) get modified: Executes the rule when the values of the specified fields are modified in a row.
- Choose the field name from the drop-down.
- Choose the criteria for the updated field's value, for example Discount (%).
- Choose the value of the updated field, for example Discount (%) is modified to a value greater than 50.
- Choose from all or any to toggle between matching all or any of the specified fields.

- Row added or modified: Executes the rule when a row is either added or modified.
Check the Repeat this workflow whenever a product details is edited option if required. - Row deleted: Executes the rule when a row is deleted from the subform.
- Date/time field: Executes the rule based on the value of a created time, modified time, or custom date/time field on the subform, with a defined execution time and recurrence.
Define conditions (CONDITION)
- Subform-level conditions - Under Would you like to set conditions for <subform> fields?, apply conditions directly on subform fields.
- Choose Yes if the rule should only fire for rows that meet your criteria (for example, only rows where Discount (%) is greater than 50). Add your field criteria one by one, and choose from all or any to toggle between matching all or any of the specified fields.
- Choose No if you don't want to set conditions for subform fields. The rule will then apply to all rows, regardless of field values.
- Parent module-level conditions - Under Which <module> records would you like to apply this rule to?, apply conditions on the parent module's fields.
- Choose All <module> records if you don't want to set conditions for the parent record's fields. The rule will then apply to all records, regardless of field values.
- Choose <Module> records matching certain condition to filter which parent records the rule should consider, based on fields on the main module such as order status, customer type, or priority. Add your field criteria one by one, and choose from all or any to toggle between matching all or any of the specified fields.
Combining both lets you precisely control which parent records, and which specific subform rows within them, your automation applies to.
Once a trigger and its conditions are met, you can associate a range of instant actions at the subform level: Field Update, notifications (Email Notification, SMS Notification, and other integrated channels), Webhook, and Function, all of which trigger the moment the rule executes.
There are two ways to associate these actions with the rule:
- Create new field updates, notifications, webhooks, or functions and, associate them with the rule.
- Select existing field updates, notifications, webhooks, or functions and, associate them with the rule.
Field Update
You can update fields on:
- The subform - The specific row that triggered the rule
- The parent module - The record the subform belongs to
- A lookup module - A related record linked to the parent
For example, in the Deals module, when a Products subform row is modified and Discount (%) exceeds 50%, a single rule can trigger multiple field updates at once:
- Subform field: Update Approval required on that same product row to "Yes," marking the specific line item that triggered the review.
- Main module field: Update Discount approval status on the parent Deal record to "Pending Review," fast-tracking the deal for approval.
- Lookup module field: Update Last high-discount flagged date on the linked Products module record to the execution day.
Notifications
You can add sending a notification as an action. Hover over Notify and choose the channel you want to send the notification through, from the channels you've integrated with your CRM. You can either create a new notification or select an existing one, such as an email notification, SMS notification, or another integrated channel.
Actions you create through the workflow rule are saved and listed under the relevant tab in Actions.
Webhook
You can either create a new webhook or select an existing one to associate with the rule. Webhook actions let you configure HTTP URLs that automate the process when the rule executes. Learn more about creating webhooks.
Function
You can either create a new function or select an existing one to associate with the rule. Functions let you update data in related CRM modules or third-party applications by executing custom program scripts using Deluge, Java, NodeJS, and Python. When the trigger and conditions are met, the workflow engine automatically runs the function to update CRM records.
Scheduled Actions
You can also schedule these actions to happen at a specified time once the rule is triggered. A maximum of five scheduled actions can be created.
- When associating actions with a subform workflow rule, not all existing actions are listed. Only actions created for the subform's parent module are available. For example, if the rule is for a subform of the Deals module, only actions created for Deals can be associated.
- Actions can be performed for the subform rows and parent/related records of the subform.
- You can associate a maximum of five email notifications, five field updates, one function, and one webhook with a single instant action.
- Actions execute in the following order: Field Update > Email Notification > Slack Notification, Cliq Notification, Webhook, Function.
- Rules created for the same module or subform execute in chronological order. To change the execution order, you can reorder the rules. Click here to learn about reordering.
- Notifications via Cliq, Slack, and Cisco can be triggered through both instant and scheduled actions.
On the Workflow Rules home page, you can filter the rule list by module or subform. Search for the name, or scroll through the list, to narrow results down to rules built on a specific module or subform.

Timeline
Any action made to a record's subform through a workflow rule are grouped and listed under the record's Timeline tab, along with the name of the workflow rule.
For example, if a workflow rule associated with the Product Details subform makes a change to the subform, the Timeline shows an entry such as: Workflow Actions were performed for the Subform Product Details via Workflow Rule High Discount Escalation. Click View Details to expand and see the full set of actions. The parent-module-level actions are listed separately below them.
The lookup-module-level actions are recorded in the lookup record's Timeline tab.
Limitations
- Subform workflow emails aren't listed in the Related List.
- Parent record triggers don't trigger subform workflows.
- Email templates for subform notification actions:
- Are stored in the Public Email Templates folder by default
- Aren't listed on the Email Templates list view page
- Can't be created directly from the Templates page
- Subform workflows aren't supported for CPQ subforms.
- Subform workflow rules don't apply to serial number changes.