Performance and Scale Overview

The following information aims to help organizations improve the efficiency and scalability of Services Estimator in managing large volumes of data.

We recommend you or your administrator review the feature configuration options listed in the table below to optimize the speed, stability, and reliability of Services Estimator to suit your organization's business needs.

General Recommendations

We recommend adjusting batch sizes to minimize the impact on system performance and reduce the risk of reaching or exceeding Salesforce platform limits.

You can set the schedule, day, time, and frequency for bulk jobs such as recalculating schedules, processing actuals, or updating project variance values. Adjusting batch sizes and carefully planning job schedules can significantly enhance performance.

Using Estimate Products

Estimate products are preconfigured collections of line sets, tasks, and role requests designed to accelerate and standardize estimate creation. They function as reusable bundles of commonly sold services, particularly beneficial for large or complex estimates. Instead of adding individual line items, you can insert entire product packages.

Key Benefits:

  • Efficiency: Significantly reduces the time required to build estimates, especially complex ones.
  • Standardization: Ensures consistency across estimates by using predefined service packages, minimizing errors and promoting data integrity.
  • Scalability: Simplifies the management of high volumes of estimates, crucial for organizations with substantial workloads.

Estimate products use estimate templates, which are added as estimate product items, further enhancing their efficiency and consistency.

For more information, see Estimate Products Overview.

Using Estimate Templates

You can use estimate templates to reduce the time it takes to create estimates. Reusing templates that contain collections of line sets, tasks and role requests can be more efficient when similar services are sold frequently, rather than adding each item individually. You can modify a template at any time. Any estimates that include the original template will remain unchanged.

For more information, see Adding from Estimate Templates.

Batch Processing for Refreshing Rates

If you use the Refresh Rates action on large estimates, you can specify the number of role requests to process per batch by setting the Refresh Rates Batch Size custom setting. The default is 200 role requests per batch. This enables you to manage large volumes of records efficiently by processing data in smaller, predefined batches.

For more information, see Services Estimator Process Settings.

Asynchronous Processing for Refreshing Rates

To efficiently manage large volumes of records by processing data asynchronously, use the Synchronous Refresh Rates Threshold field in the Services Estimator Process Settings custom setting to determine that if the number of role requests exceeds the specified threshold, the refresh rates process automatically run asynchronously.

For more information, see Services Estimator Process Settings.

Custom Actions

Asynchronous processing significantly enhances performance particularly when dealing with large datasets. By performing operations like adding estimates to opportunities or projects in the background, you can avoid being blocked by lengthy processes and can continue working uninterrupted. The following are the available asynchronous actions:

  • ActionAddToProjectFromEstimateAsync: Adds estimate records to projects asynchronously.
  • ActionMoveEstimateDatesAsync: Asynchronously moves the dates of multiple estimates and their associated child records.
  • ActionCloneEstimateAsync: Asynchronously clones an estimate and all its related records.

For more information, see Custom Actions.

Disabling Schedules

If you don't plan to use schedules during the estimating stage, we recommend turning them off by enabling the Disable Hours Breakdown and Schedules field in the Services Estimator custom setting. This will significantly improve processing efficiency.

For more information, see Hours Breakdown Overview.

Consolidating Role Requests

When adding an estimate to an opportunity, or creating a project from an estimate, you can consolidate role requests. This aims to reduce the number of records created, and is configurable using the grouping criteria and field sets.

For more information, see Adding an Estimate to an Opportunity and Creating a Project from an Estimate.

Process Locking

We use process locks to prevent simultaneous actions that could lead to conflicts. Administrators can troubleshoot issues using the Services Estimator Process Lock record. This improves concurrency and helps maintain data consistency, particularly when multiple users are working with large datasets.

For more information, see Services Estimator Process Lock Fields.

Displayed Records

To optimize performance, there are limits on the number of records displayed in a single request. For example, when adding records from an estimate template, the list is limited to a maximum of 200 estimates.

You can use filtering to reduce the amount of data that needs to be processed in the user interface.