---
schema_version: "1"
id: f8b31b16d108cea05f1eb8502fa1e1e58fb1137ce9e095ff413ca054d6aa706b
title: MultiServiceAppHandler
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/ind/264-0-0/comms_t_multiserviceapphandler_214137.md
canonical_url: https://help.salesforce.com/s/articleView?id=ind.comms_t_multiserviceapphandler_214137.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 1a321029966da2c7e5129e94b22f305b6e88a5e97ed6c1caf666544774dde6c2
description: MultiServiceAppHandler is a wrapper for CpqAppHandler that automatically handles scaling for processing thousands of sites and orders. Use this class and its methods when processing multiple items for multiple sites.
products:
  - Communications
  - Media
  - Energy and Utilities
release: "264"
---
# MultiServiceAppHandler

MultiServiceAppHandler is a wrapper for CpqAppHandler that automatically handles scaling for processing thousands of sites and orders. Use this class and its methods when processing multiple items for multiple sites.

You can add a pre and post hook for MultiServiceAppHandler as you would for CpqAppHandler. See [Create Hooks for MultiServiceAppHandler](https://help.salesforce.com/s/articleView?id=ind.comms_t_create_hooks_for_multiserviceapphandler_214290.htm&release=264.0.0&type=5 "The Multisite APIs provide an option to write custom pre- and post-hooks for each API to implement custom logic. A pre-hook is run before the actual API runs. A post-hook runs after the actual API runs.").

The methods are listed below in logical groups.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:50%">
          <col style="width:50%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d191412e49">
              <p style="margin-bottom:0;">Method</p>
            </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d191412e55">
              <p style="margin-bottom:0;">Description</p>
            </th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_getmastercarts_method_215293.htm&amp;release=264.0.0&amp;type=5" title="Returns a list of master carts (quotes and orders) for an opportunity.">getMasterCarts Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Returns a list of master carts (quotes and orders) for an opportunity.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_clonemastercart_method_215222.htm&amp;release=264.0.0&amp;type=5" title="Clones an existing master quote or order. It copies all groups and their members. It doesn’t copy Sub Quote/Order.">cloneMasterCart Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Clones an existing master quote or order. It copies all groups and their members. It doesn’t copy Sub Quote/Order.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_getgroups_method_214615.htm&amp;release=264.0.0&amp;type=5" title="Returns a list of groups under a Master/Enterprise (Mega) quote or order, specific for a member-type.">getGroups Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Returns a list of groups under a Master/Enterprise (Mega) quote or order, specific for a member-type.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_createnewgroup_method_214350.htm&amp;release=264.0.0&amp;type=5" title="Creates a new (Quote or Order)-group with or without the corresponding Group Quote or Group Order record.">createNewGroup Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Creates a new group (quote or order) with or without the corresponding Group Quote or Group Order record.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_updategroup_method_214716.htm&amp;release=264.0.0&amp;type=5" title="Updates the name and description of a group.">updateGroup Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Updates the name and description of a group.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_addtogroup_method_214454.htm&amp;release=264.0.0&amp;type=5" title="Adds a service point to a group.">addToGroup Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Adds a service point to a group.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_getobjectfieldsdescribe_method_215936.htm&amp;release=264.0.0&amp;type=5" title="For a given set of objects, returns all their fields and details, such as label, name, type, and others.">getObjectFieldsDescribe Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">For a given set of objects, returns all their fields and details, such as label, name, type, and others.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_runcartvalidation_method_215763.htm&amp;release=264.0.0&amp;type=5" title="Runs the Industries CPQ Validate API on a sub quote.">runCartValidation Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Runs the Industries CPQ Validate API on a sub quote.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_pricecart_method_215706.htm&amp;release=264.0.0&amp;type=5" title="Runs Industries CPQ pricing API on sub quotes.">priceCart Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Runs Industries CPQ pricing API on sub quotes.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_grouprollup_method_214928.htm&amp;release=264.0.0&amp;type=5" title="Calculates the pricing rollups (OneTime, Recurring, Usage) for a group.">groupRollup Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Calculates the pricing rollups (OneTime, Recurring, Usage) for a group.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_applytogroup_method_214803.htm&amp;release=264.0.0&amp;type=5" title="Starts the Apply to Group batch job for a group.">applyToGroup Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Starts the Apply to Group batch job for a group.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_createorderandsubmit_method_215358.htm&amp;release=264.0.0&amp;type=5" title="Starts the checkout batch job for a group.">createOrderAndSubmit Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Starts the checkout batch job for a group.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_isallgroupsvalidatedandpriced_method_215022.htm&amp;release=264.0.0&amp;type=5" title="Checks if all groups are validated and priced successfully. This runs validate VIP.">isAllGroupsValidatedAndPriced Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Checks if all groups are validated and priced successfully. This runs validate VIP.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_updateexternalpricingstatus_method_215868.htm&amp;release=264.0.0&amp;type=5" title="Updates the external pricing status of a master quote.">updateExternalPricingStatus Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Updates the external pricing status of a master quote.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_removegroups_method_214549.htm&amp;release=264.0.0&amp;type=5" title="Deletes a list of groups and their members.">removeGroups Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Deletes a list of groups and their members.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_getgroupmembers_method_215536.htm&amp;release=264.0.0&amp;type=5" title="Returns a set of paginated member-records within a group.">getGroupMembers Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Returns a set of paginated member-records within a group.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_deletemembers_method_215456.htm&amp;release=264.0.0&amp;type=5" title="Deletes the selected members from one or multiple groups.">deleteMembers Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Deletes the selected members from one or multiple groups.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_getungroupedrecords_method_215079.htm&amp;release=264.0.0&amp;type=5" title="Returns a set of paginated non-members of a specific member-type.">getUngroupedRecords Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Returns a set of paginated non-members of a specific member type.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_invokebatchserially_method_216041.htm&amp;release=264.0.0&amp;type=5" title="Performs multiple batch operations (one after another) on a set of records.">invokeBatchSerially Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Perform multiple batch operations (one after another) on a set of records.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_getfieldlist_method_215979.htm&amp;release=264.0.0&amp;type=5" title="Returns the configured fields in FieldSet__c for a specific feature name.">getFieldList Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Returns the configured fields in <code>FieldSet__c</code> for a specific feature name.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_getmembertypelist_method_215637.htm&amp;release=264.0.0&amp;type=5" title="Returns a list of CPQ Member Type custom metadata.">getMemberTypeList Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Returns a list of CPQ Member Type custom metadata.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_refreshcartmsmessage_method_215820.htm&amp;release=264.0.0&amp;type=5" title="Regenerates all the messages of a group cart.">refreshCartMSMessage Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Regenerates all the messages of a group cart.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Method" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e49 ">
              <p style="margin-bottom:0;">
                <a href="https://help.salesforce.com/s/articleView?id=ind.comms_t_refreshgroupmsmessage_method_215182.htm&amp;release=264.0.0&amp;type=5" title="Regenerates all the messages of a group.">refreshGroupMSMessage Method</a>
              </p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d191412e55 ">
              <p style="margin-bottom:0;">Regenerates all the messages of a group.</p>
            </td>

          </tr>
        </tbody>
      </table>

- **[Create Hooks for MultiServiceAppHandler](https://help.salesforce.com/s/articleView?id=ind.comms_t_create_hooks_for_multiserviceapphandler_214290.htm&release=264.0.0&type=5)**  
    The Multisite APIs provide an option to write custom pre- and post-hooks for each API to implement custom logic. A pre-hook is run before the actual API runs. A post-hook runs after the actual API runs.
- **[createNewGroup Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_createnewgroup_method_214350.htm&release=264.0.0&type=5)**  
    Creates a new (Quote or Order)-group with or without the corresponding Group Quote or Group Order record.
- **[addToGroup Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_addtogroup_method_214454.htm&release=264.0.0&type=5)**  
    Adds a service point to a group.
- **[removeGroups Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_removegroups_method_214549.htm&release=264.0.0&type=5)**  
    Deletes a list of groups and their members.
- **[getGroups Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_getgroups_method_214615.htm&release=264.0.0&type=5)**  
    Returns a list of groups under a Master/Enterprise (Mega) quote or order, specific for a member-type.
- **[updateGroup Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_updategroup_method_214716.htm&release=264.0.0&type=5)**  
    Updates the name and description of a group.
- **[applyToGroup Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_applytogroup_method_214803.htm&release=264.0.0&type=5)**  
    Starts the Apply to Group batch job for a group.
- **[groupRollup Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_grouprollup_method_214928.htm&release=264.0.0&type=5)**  
    Calculates the pricing rollups (OneTime, Recurring, Usage) for a group.
- **[isAllGroupsValidatedAndPriced Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_isallgroupsvalidatedandpriced_method_215022.htm&release=264.0.0&type=5)**  
    Checks if all groups are validated and priced successfully. This runs validate VIP.
- **[getUngroupedRecords Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_getungroupedrecords_method_215079.htm&release=264.0.0&type=5)**  
    Returns a set of paginated non-members of a specific member-type.
- **[refreshGroupMSMessage Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_refreshgroupmsmessage_method_215182.htm&release=264.0.0&type=5)**  
    Regenerates all the messages of a group.
- **[cloneMasterCart Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_clonemastercart_method_215222.htm&release=264.0.0&type=5)**  
    Clones an existing master quote or order. It copies all groups and their members. It doesn’t copy Sub Quote/Order.
- **[getMasterCarts Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_getmastercarts_method_215293.htm&release=264.0.0&type=5)**  
    Returns a list of master carts (quotes and orders) for an opportunity.
- **[createOrderAndSubmit Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_createorderandsubmit_method_215358.htm&release=264.0.0&type=5)**  
    Starts the checkout batch job for a group.
- **[deleteMembers Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_deletemembers_method_215456.htm&release=264.0.0&type=5)**  
    Deletes the selected members from one or multiple groups.
- **[getGroupMembers Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_getgroupmembers_method_215536.htm&release=264.0.0&type=5)**  
    Returns a set of paginated member-records within a group.
- **[getMemberTypeList Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_getmembertypelist_method_215637.htm&release=264.0.0&type=5)**  
    Returns a list of CPQ Member Type custom metadata.
- **[priceCart Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_pricecart_method_215706.htm&release=264.0.0&type=5)**  
    Runs Industries CPQ pricing API on sub quotes.
- **[runCartValidation Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_runcartvalidation_method_215763.htm&release=264.0.0&type=5)**  
    Runs the Industries CPQ Validate API on a sub quote.
- **[refreshCartMSMessage Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_refreshcartmsmessage_method_215820.htm&release=264.0.0&type=5)**  
    Regenerates all the messages of a group cart.
- **[updateExternalPricingStatus Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_updateexternalpricingstatus_method_215868.htm&release=264.0.0&type=5)**  
    Updates the external pricing status of a master quote.
- **[getObjectFieldsDescribe Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_getobjectfieldsdescribe_method_215936.htm&release=264.0.0&type=5)**  
    For a given set of objects, returns all their fields and details, such as label, name, type, and others.
- **[getFieldList Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_getfieldlist_method_215979.htm&release=264.0.0&type=5)**  
    Returns the configured fields in `FieldSet__c` for a specific feature name.
- **[invokeBatchSerially Method](https://help.salesforce.com/s/articleView?id=ind.comms_t_invokebatchserially_method_216041.htm&release=264.0.0&type=5)**  
    Performs multiple batch operations (one after another) on a set of records.