---
schema_version: "1"
id: 754ce6e43167fec02ee8a8958e4ca11c10be82c1d3facff8d6cb31b3649c0e30
title: Consumer Goods Cloud Batch Processes
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/ind/264-0-0/cg_reference_admin_batch_process_list.md
canonical_url: https://help.salesforce.com/s/articleView?id=ind.cg_reference_admin_batch_process_list.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: cb202f8e4ca428ca64c79d373915510fee1518b55828c453c3c4cad06d3941ae
description: Batch processes condense data for faster consumption within the mobile app, sync engine, or database.
products:
  - Consumer Goods
release: "264"
---
# Consumer Goods Cloud Batch Processes

Batch processes condense data for faster consumption within the mobile app, sync engine, or database.

### Required Editions

Before you run the Apex batch processes, load master data.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: Lightning Experience</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Enterprise</strong> and <strong>Unlimited</strong> Editions that have Consumer Goods Cloud enabled</td></tr></tbody></table>

Here’s the list of Consumer Goods Cloud batch processes. To schedule an Apex batch process by using the UI, see [Schedule an Apex Batch Process](https://help.salesforce.com/s/articleView?id=ind.cg_task_schedule_server_processes.htm&release=264.0.0&type=5 "Use the Salesforce Org to schedule Apex batch processes at intervals that work for your business.").

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:20%">
          <col style="width:20%">
          <col style="width:20%">
          <col style="width:20%">
          <col style="width:20%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38491e61">To</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38491e63">Run Apex Class</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38491e65">Batch Process Configuration Name</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38491e67">Schedulable Through UI</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38491e69">Comments</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="To" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e61 ">Create, update, or delete customer managers based on the definitions of org unit
              users.</td>
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">AccountManagerOrgUnitBased</td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">AccountManager</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">Yes</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">—</td>
          </tr>
          <tr class="">
            <td data-label="To" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e61 ">Provide customer managers access to the account. This process adds the current
              customer managers to the Salesforce Account Team table.</td>
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">EffectiveAccountManagerSyncBatch</td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">EffectiveAccountManagerSyncBatch</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">Yes</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">
              <p>Starting Winter ‘25, the system runs the enhanced version of this batch by
                default.</p>
              <p>This version of the batch is more efficient as it doesn’t recreate existing
                account team members from account managers for each batch run. The batch only creates or
                updates an account team member record for changes in account managers.</p>
              <p style="margin-bottom:0;">Existing
                customers can use the enhanced version of the batch through a custom setting.</p>
            </td>
          </tr>
          <tr class="">
            <td data-label="To" class="slds-cell-wrap" rowspan="2" style="vertical-align:top;" headers="d38491e61 ">Fill or remove the ParentId field based on the current Trade organization
              of the Customer Trade organization Hierarchy table.</td>
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">EffectiveAccountParentSyncBatch</td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">—</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">Yes</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">—</td>
          </tr>
          <tr class="">
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">AccountClearEffectiveParentBatch</td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">AccountClearBatch</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">Yes</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">—</td>
          </tr>
          <tr class="">
            <td data-label="To" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e61 ">Flatten the account hierarchy for a more uniform access in several areas of the app.
              Several processes need this data.</td>
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">FlattenAccountHierarchyBatch</td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">—</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">Yes</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">The FlattenAccountHierarchyBatch Apex batch process ignores and preserves fields in Flatten
              Account Hierarchy that are outside the CGCloud namespace.</td>
          </tr>
          <tr class="">
            <td data-label="To" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e61 ">Prepare the data for the listed products to appear in surveys or during order
              creation.</td>
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">AuthorizationListSetupBatch</td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">AuthAggregation</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">Yes</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">—</td>
          </tr>
          <tr class="">
            <td data-label="To" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e61 ">Prepare the data to show promotions during a visit or to show promotion-related
              products in the Order module.</td>
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">AggregatePromotionBatch</td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">PromotionAggregation</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">Yes</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">—</td>
          </tr>
          <tr class="">
            <td data-label="To" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e61 ">Mark visits and orders as not relevant to distribution if they’re no longer
              business-critical for a mobile user. To use this batch process, deploy the metadata from the
              post installation files. Run CallOrderDistributionReOrgBatch with batch size 1.</td>
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">CallOrderDistributionReOrgBatch</td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">CallOrderDistributionReorganization</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">Yes</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">—</td>
          </tr>
          <tr class="">
            <td data-label="To" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e61 ">Update the picklist repository after you import all relevant picklist files. This
              process prepares the picklist definitions for the offline mobile app.</td>
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">
              <p>PicklistAttributesMappingBatch</p>
              <p style="margin-bottom:0;">PicklistAttributesCleanupBatch</p>
            </td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">—</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">Yes</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">—</td>
          </tr>
          <tr class="">
            <td data-label="To" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e61 ">Condense information from the product hierarchy into a single field to determine the
              associated stock-keeping units (SKU) for surveys and order taking, and to determine
              promotions planned for these products.</td>
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">KAMProductFindingBatch</td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">KAMProducts</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">Yes</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">—</td>
          </tr>
          <tr class="">
            <td data-label="To" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e61 ">Create job lists from event-driven activities.</td>
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">GenerateJobListBatch</td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">JobListGeneration</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">Yes</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">—</td>
          </tr>
          <tr class="">
            <td data-label="To" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e61 ">Mark asset audits as not relevant to distribution if they’re not business-critical for
              a mobile user.</td>
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">AssetAuditDistributionReOrgBatch</td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">AssetAuditDistributionSetting</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">Yes</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">—</td>
          </tr>
          <tr class="">
            <td data-label="To" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e61 ">Bulk transfer promotions from Trade Promotion Management to Retail Execution.</td>
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">PromotionTransferBatch</td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">PromotionTransfer</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">No</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">
              <p>You can’t schedule the promotion transfer batch via the UI because the batch is
                scheduled per sales org and you can’t specify the sales org attribute in the UI. </p>
              <p>Example:
                To schedule the promotion transfer batch for the sales org 0001 that runs every day at 5
                AM:</p>
              <p><code>String salesOrg = '0001';cgcloud.PromotionTransferBatch
         ptb = new cgcloud.PromotionTransferBatch(salesOrg);String sch = '0 0 5 * *
         ?';System.schedule('PromotionTransferBatch', sch, ptb);</code></p>
              <p style="margin-bottom:0;">To schedule a
                schedulable class, see <a href="https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_scheduler.htm" target="_blank">Apex Scheduler</a> for more details.</p>
            </td>
          </tr>
          <tr class="">
            <td data-label="To" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e61 ">Reconcile inventory transactions to get a balanced transaction for product
              inventory.</td>
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">InventoryTxBalanceCalculationBatch</td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">InventoryTxBalanceCalculationBatch</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">Yes</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">—</td>
          </tr>
          <tr class="">
            <td data-label="To" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e61 ">Use account sharing rules to give users access to supporting accounts, such as
              wholesalers, delivery recipients, and trade org hierarchies that are specific to one
              or more sales orgs and user grouping.</td>
            <td data-label="Run Apex Class" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e63 ">AccountSharingCriterionBatch</td>
            <td data-label="Batch Process Configuration Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e65 ">—</td>
            <td data-label="Schedulable Through UI" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e67 ">Yes</td>
            <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d38491e69 ">Install the account sharing add-on and make the supporting accounts visible to
              the user by creating the account sharing rules. See <a href="https://help.salesforce.com/s/articleView?id=ind.cg_concept_account_sharing.htm&amp;release=264.0.0&amp;type=5" title="Use account sharing rules to give users access to supporting accounts, such as wholesalers, delivery recipients, and trade org hierarchies that are specific to one or more sales orgs and user grouping."><u>Account Sharing</u></a>. </td>
          </tr>
        </tbody>
      </table>

- **[Consumer Goods Cloud Batch Processes Annotations](https://help.salesforce.com/s/articleView?id=ind.cg_reference_admin_batch_process_details.htm&release=264.0.0&type=5)**  
    Use these annotations to configure the Consumer Goods Cloud batch processes.

#### See Also

- [Create a Custom Setting to Run the Enhanced Effective Account Manager Sync Batch](https://help.salesforce.com/s/articleView?id=ind.cg_task_admin_custom_setting_enhanced_account_manager_batch.htm&release=264.0.0&type=5 "If you upgrade the Consumer Goods Cloud Managed package to Winter ’25 or later, to use the enhanced version of the Effective Account Manager Sync batch during the Apex batch process run, create the EffectiveAccountManagerSyncBatch custom setting. For all new customers of Consumer Goods Cloud, this setting is created and enabled by default.")
- [Inventory Reconciliation Batch](https://help.salesforce.com/s/articleView?id=ind.cg_concept_admin_inventory_reconcialiation_batch.htm&release=264.0.0&type=5 "For each product-anchor (tour, vehicle, or user) combination, reconcile the inventory transactions and know the current product quantity available in the truck. Also, define the frequency of reconciliation by scheduling the Inventory Reconciliation Batch process (InventoryTxBalanceCalculationBatch).")