---
sourceDocument: Australia Field Service Management
sourceDocumentLink: https://www.servicenow.com/docs/r/field-service-management

 Release :

    - australia

ft:locale :

    - en-US

ft:publication_title :

    - Australia Field Service Management

ft:clusterId :

    - fsm

bundleId :

    - fsm

workflow :

    - Customer and Industry


---

# Task Bundling components

# Field Service Task Bundling components {#ariaid-title1}

Release version: Australia  
Updated March 12, 2026  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 7 minutes to read  
Several types of components are installed with the activation of the Field Service Task Bundling feature including business rules, task filters and task grouping rules.

## Business Rules {#task-bundling-components__section_hjn_xb5_sxb}

Field Service Task Bundling adds the following business rules.{#task-bundling-components__table_q15_cc5_sxb__entry__3}

| Business Rule | Table | Description |
|-|-|-|
| Bundle Actual Time Field Update | Work Order Task \[wm_task\] | Updates the Actual travel start and Actual onsite arrival fields of the bundle. |
| Bundle Assignment | Work Order Task \[wm_task\] | Updates bundled subtask assignment. |
| Bundle Assignment Before | Work Order Task \[wm_task\] | Prevents bundling when bundle Window start is before the subtask Window start. Prevents bundling when bundle Expected Start is before bundle Window start. |
| Bundle Change After | Work Order Task \[wm_task\] | Validates and updates bundles based on bundled subtasks, or validates and updates unbundled subtasks based on their previous bundle. |
| Bundle Change Before | Work Order Task \[wm_task\] | Validates and updates bundles when subtasks are added to or removed from the bundle. |
| Bundle Scheduled Start Change | Work Order Task \[wm_task\] | Initiates the scheduling of bundled subtasks. |
| Bundle Siblings Prevention | Work Order Task \[wm_task\] | Prevents duplicate task bundles from being created for the same work order. |
| Bundle state change | Work Order Task \[wm_task\] | Updates the bundle state. |
| Bundle subtask assignment changes | Work Order Task \[wm_task\] | Prevents bundled subtask assignment based on subtask state or current agent assignment. |
| Bundle Subtasks Changes Info Message | Work Order Task \[wm_task\] | Informs the user when no changes have occurred. |
| Bundle Task SubState Update | Work Order Task \[wm_task\] | Updates the substate of the bundle based on the bundle state and action taken by the agent. |
| Cancel Task Bundle | Work Order Task \[wm_task\] | Unbundles all subtasks in a bundle. |
| Confirm Assignment on Bundle Task | Work Order Task \[wm_task\] | Updates and syncs subtask state to the bundle state upon assignment by a dispatcher. |
| Enforce bundle mandatory fields | Task Grouping Qualifier \[sn_task_grouping_qualifier\] | Prevents dynamic bundling when mandatory fields are empty. |
| Grouping rule info message for wm_task | Task Grouping Rule \[sn_task_grouping_rule\] |   |
| Lock and Unlock Subtasks | Work Order Task \[wm_task\] | Updates subtasks schedule lock state to match bundle when bundle schedule lock is changed. |
| On bundle state change from Draft to PD | Work Order Task \[wm_task\] | Updates subtasks state to match bundle state when bundle is set to Pending Dispatch. Validates subtask state and provides error message when a subtask failed to update. |
| On change bundle Assignment Group | Work Order Task \[wm_task\] | Updates subtasks assignment group to match bundle when bundle assignment group is changed. |
| Prevent bundle location changes | Work Order Task \[wm_task\] | Validates that the bundle location equals the location of the first subtask in the bundle. Prevents bundle location from being different from the location of the first subtask in the bundle. |
| Prevent duplicate/multiple qualifiers | Task Grouping Qualifier \[sn_task_grouping_qualifier\] | Prevents bundling when both or neither Assignment group or Territory qualifiers are active. Prevents bundling when identical qualifier exists. |
| Prevent schedule lock update on subtasks | Work Order Task \[wm_task\] | Prevents subtask schedule lock from being different from parent bundle schedule lock. |
| Push initial subtask location to bundle | Work Order Task \[wm_task\] | Updates bundle location to the location of the first subtask in the bundle. |
| Remove subtasks they are in diff state | Work Order Task \[wm_task\] | Removes subtasks from bundle when subtask state is different from the bundle state. |
| Reschedule after Subtask Order Change | Work Order Task \[wm_task\] | Reschedules the bundle when order of subtasks is changed. |
| Set name for territory | Task Grouping Qualifier \[sn_task_grouping_qualifier\] | Sets the Name value of the Territory qualifier. |
| Subtask Order Validation | Work Order Task \[wm_task\] | Validates that the Order value of subtasks are unique and not empty. |
| SubTask Schedule State Change | Work Order Task \[wm_task\] | Updates the bundle and subtask states from Assigned to Scheduled when a dispatcher schedules the bundle. |
| Subtasks field change - not supported | Work Order Task \[wm_task\] | Prevents subtask estimated work duration from being manually updated based on subtask state. |
| Sync bundle with subtasks | Work Order Task \[wm_task\] | Syncs bundle with subtask values. |
| Sync Bundle Work Duration to subtasks | Work Order Task \[wm_task\] | Syncs bundle duration to the total estimated work duration of its subtasks. |
| Validate Min \& Max Tasks | Task Grouping Policy \[sn_task_grouping_policy\] | Validates that the number of subtasks in a bundle created from a policy falls between the policy minimum and maximum range. |
| Work duration change on bundle | Work Order Task \[wm_task\] | Validates that the subtask estimated work duration is less than the subtask duration of the bundle. |
[Table 1. Business rules for Task Bundling]

{#task-bundling-components__table_q15_cc5_sxb}

## Script Includes for Task Bundling {#task-bundling-components__section_nq2_jyx_l3c}

The following script includes contain reusable code that supports the task bundling process, making scripts easier to maintain and update. To customize these script includes, see, [Advanced configurations](https://www.servicenow.com/docs/A1h1o7IEGGTLwcKj766N~w "Describes the customization extension model for separating default functionality from custom scripts using read-only SNC and exposed includes.").  
{#task-bundling-components__table_fh4_kyx_l3c__entry__2}

| Script Includes | Description |
|-|-|
| BundleMatchingDimensionParts | Matches agents with parts for subtasks on a bundle. |
| BundleMatchingDimensionSkillAdvanced | Advanced skill matching dimension for bundle tasks. |
| BundleTaskFlowUtil | Utility functions for managing bundle task flows. |
| BundleTaskSLA | Contains APIs for handling Bundle Task SLA functionality. |
| DynamicBundlingAdvancedRuleScripts | Contains APIs used in advanced Task Grouping rules for use with Dynamic Bundling. |
| FSMDynamicBundling | Main API for FSM Dynamic Bundling functionality. |
| FSMDynamicBundlingAJAX | AJAX functions for FSM Dynamic Bundling. |
| FSMDynamicBundlingAssignments | Contains APIs used to handle processing Dynamic Bundling during Dynamic Scheduling and Auto Assign flows. |
| FSMDynamicBundlingUtil | Contains APIs used to handle various Dynamic Bundling functionality. |
| FSMMobileBulkActionsConstants | Contains constant values used throughout the Task Bundling Mobile Bulk Actions APIs. |
| FSMMobileBulkActionsUtil | Functions called from Mobile Bulk Actions configurations. |
| FSMTaskBundle | Facilitates the creation and functionality of a Task Bundle. |
| FSMTaskBundleAJAX | AJAX functions for FSM Task Bundle functionality. |
| FSMTaskBundleCapacityUtil | Task Bundle capacity utility functions. |
| FSMTaskBundleStateFlows | Contains APIs used to handle Task Bundle state changes and subtask state changes. |
| MatchingDimensionRejectedTechnicianForBundle | Prevents selection of a technician who has rejected a subtask on a bundle. |
| TaskBundlingConstants | Contains constant values used throughout the Task Bundling APIs. |
| TaskGroupingFSMEP | Implements extension point sn_task_grouping.TaskGroupingEP. |
[Table 2. Task Bundling script includes]

{#task-bundling-components__table_fh4_kyx_l3c}

## Task Grouping Policies {#task-bundling-components__section_zvt_5pd_5xb}

Field Service Task Bundling adds the following task grouping policy.{#task-bundling-components__table_qpt_vpd_5xb__entry__2}

| Task Grouping Policy | Description |
|-|-|
| Default Policy | * Minimum records: 2 * Maximum records: 10 * * WOT's in Same Location Within Next 30 Days * WOT's In Same Territory With Required Skill Set Within Next 30 Days * WOT's In Same Territory Within Next 30 Days * WOT's That Need Same Asset Within Next 30 Days * WOT's With Similar Required Parts * WOT's With Similar Task Skills {#task-bundling-components__ul_j15_bqd_5xb} {#task-bundling-components__ul_nrr_zpd_5xb} |
[Table 3. Grouping policies for Task Bundling]

{#task-bundling-components__table_qpt_vpd_5xb}

## Task Grouping Rules {#task-bundling-components__section_tkp_1r5_sxb}

Field Service Task Bundling adds the following task grouping rules.{#task-bundling-components__table_wdw_gr5_sxb__entry__3}

| Task Grouping Rule | Policy | Description |
|-|-|-|
| WOT's in Same Location Within Next 30 Days | Default Policy | Bundles tasks that are in the same Location within the next 30 days. |
| WOT's In Same Territory With Required Skill Set Within Next 30 Days | Default Policy | Bundles tasks that are in the same Territory and require specific skills within the next 30 days. |
| WOT's In Same Territory Within Next 30 Days | Default Policy | Bundles tasks that are in the same Territory within the next 30 days. |
| WOT's That Need Same Asset Within Next 30 Days | Default Policy | Bundles tasks that require the same Asset within the next 30 days. |
| WOT's With Similar Required Parts | Default Policy | Bundles tasks that require similar parts. |
| WOT's With Similar Task Skills | Default Policy | Bundles tasks that require similar skills. |
[Table 4. Grouping rules for Task Bundling]

{#task-bundling-components__table_wdw_gr5_sxb}

## Script includes for Task Grouping {#task-bundling-components__section_cjp_wxx_l3c}

The following script includes contain reusable code that supports the task grouping process, making scripts easier to maintain and update. To customize these script includes, see, [Advanced configurations](https://www.servicenow.com/docs/A1h1o7IEGGTLwcKj766N~w "Describes the customization extension model for separating default functionality from custom scripts using read-only SNC and exposed includes.").  
{#task-bundling-components__table_fmx_yxx_l3c__entry__2}

| Script include | Description |
|-|-|
| TaskGroupingAJAX | Client callable utilities for Task Grouping. |
| TaskGroupingConstants | Contains all constant values used by the Task Grouping APIs. |
| TaskGroupingDefaultEP | Implements extension point sn_task_grouping.TaskGroupingEP. This is the default implementation. |
| TaskGroupingDurationFields | Gets valid field choices for the duration field on Task Grouping Policies. |
| TaskGroupingGroup | Creates a logical representation of a Task Grouping Group. The group object handles the grouping of items while honoring the group boundaries. |
| TaskGroupingInitiator | Handles the initiation of the Task Grouping engine. Use initiateProcessing() to create the events that start the task grouping engine. |
| TaskGroupingLoggerUtil | Logger utility used to log the task grouping process. |
| TaskGroupingPacker | Handles the packing of tasks into groups based on a set of boundaries. |
| TaskGroupingProcessor | Handles the processing of Task Grouping Policies and Rules. Returns groups of tasks to be handled by other applications. |
| TaskGroupingUtil | Utility functions used throughout the Task Grouping engine. |
[Table 5. Task Grouping script includes]

{#task-bundling-components__table_fmx_yxx_l3c}

## Task Filters {#task-bundling-components__section_iq4_bxg_5xb}

Field Service Task Bundling adds the following task filters, task filter criteria, to Dynamic Scheduling.{#task-bundling-components__table_ahq_zrg_5xb__entry__4}

| Task Filter | Conditions | Criterion | Function |
|-|-|-|-|
| Assignment : Assign Pending Dispatch Task Bundle | * IsBundle = true * State = Pending Dispatch * Substate is not auto-assigned or empty. {#task-bundling-components__ul_xdy_lbh_5xb} | * Bundle: Ignore Rejected Technician * Bundle: Matching Skills for Dynamic Scheduling * Current Distance From Task {#task-bundling-components__ul_z4w_t1h_5xb} | Assigns bundles that are in the Pending Dispatch state. |
| Bundle Reassignment : reassign unassigned task bundles | * IsBundle = true * Schedule lock = false * State is one of scheduled, assigned, accepted {#task-bundling-components__ul_uhw_cbh_5xb} | * Bundle: Ignore Rejected Technician * Bundle: Matching Skills for Dynamic Scheduling * Current Distance From Task {#task-bundling-components__ul_ryn_w1h_5xb} | Reassigns unassigned task bundles. |
[Table 6. Configuration Task Filters]

{#task-bundling-components__table_ahq_zrg_5xb}{#task-bundling-components__table_n43_tbh_5xb__entry__2}

| Criterion | Function |
|-|-|
| Bundle: Ignore Rejected Technician | Ignores agents who have rejected a task from the bundle previously. Prevents bundles with rejected tasks from being assigned to the rejecting agent. |
| Bundle: Matching Skills For Dynamic Scheduling | Matches bundles that have skill requirements with agents who have those skills. |
| Bundle: Matching Mandatory Parts for Dynamic Scheduling | Matches bundles that have part requirements with agents who have those parts. |
[Table 7. Task Filter Criteria]

{#task-bundling-components__table_n43_tbh_5xb}
* **[Field Service Task Bundling fields](https://www.servicenow.com/docs/GDNckZqKMUlhRNSXKnp1lA)**   
  The fields that are included in the details section of work order task bundles.

**Related concepts**   

* [Configuring Task Bundling](https://www.servicenow.com/docs/v~tXkJRzyTl8xxs3HRakEA "Bundle work order tasks to keep similar tasks together.")  
**Related tasks**   

* [Activate Field Service Task Bundling](https://www.servicenow.com/docs/SAGmhH1DpyfLLUaAYHizng "Activate the Task Bundling plugin (com.snc.fsm_task_bundle) for Field Service Management if you have the admin role.")

