Performance Enhancement of CPQ with Sugar: Save to CRM
Performance Enhancement of CPQ with Sugar: Save to CRM
Published on Jul 16, 2026
1 minute(s) read
Current Approach
Save to CRM was taking a lot of time to sync all the line items and the fields over into Sugar Quote. This was making the quoting process time consuming for the users.
Delete QLIs and re-create QLIs again
When a Sugar quote is updated, MF was deleting all the line items and recreating them again.Service User v/s Logged In User – Save to CRM
We had to use the service user since the customer mandates that the sales rep do not have the permission to delete or edit Sugar Quote or QLIs
Service User Permissions
Solution
- Sync only the required line items. A line item is included in the sync only if the designated line-item field has a value.
- Perform a delta (diff-based) sync instead of a full sync, so only new or changed line items are synchronized.
Prop keys to include in the adl:
This approach improves CRM save performance, particularly for subsequent synchronizations after the initial Sugar Quote has been created.
Note: This functionality is available only for CPQ in Sugar CRM.
Filtering Line Items
The sugar-line-item-exclude-when ADL property accepts a JSON condition tree that is evaluated against each MF line item before it is sent to Sugar. Line items where the condition matches are excluded from the sync. This is useful for hiding header rows, adjustment lines, or items that should not appear in SugarCRM.
Condition Syntax
A condition is a JSON object in one of four forms:
Leaf (comparison):
{"field": "", "op": "eq|neq|empty|notempty", "value": " "}
op defaults to eq if omitted.Logical operators:
{"and": [, ...]}
{"or": [, ...]}
{"not":}
Malformed conditions (non-array and/or/not, missing or non-string field) fail closed (i.e., the line item is NOT excluded).
Example
Exclude line items where product_header equals "1" (i.e., header rows):
Exclude header rows OR items with no list price: