Sync Primary Quote to Opportunity
11 min
when creating a primary quote, nue synchronizes primary quote data to the associated opportunity you can configure header level sync, line level sync, or both in this tutorial, we’ll walk through how to control when and how primary quotes sync to opportunities it's important to understand that nue uses its own sync mechanism — not the standard salesforce quote sync this distinction matters for reporting and troubleshooting concept salesforce standard sync nue sync nue sync primary quote tracking opportunity syncedquoteid opportunity ruby primaryquote c + quote ruby isprimaryquote c sync in progress flag quote issyncing (standard) quote ruby async job id c → asyncapexjob status sync execution synchronous, platform managed asynchronous via queueable job line item link standard quotelineitem sync quotelineitem ruby opportunitylineitem c lookup nue does not use opportunity syncedquoteid or quote issyncing these are salesforce standard fields tied to the built in quote sync, which nue replaces entirely if you see issyncing = true in your org, something other than nue (a flow, manual action, or third party tool) is triggering the standard salesforce sync enabling syncedquoteid (salesforce standard sync) alongside nue's sync can cause conflicting writes to opportunity products and cascading trigger execution, which may result in unexpected data or governor limit errors what gets synced nue gives you the option to synchronize only header level fields, or both header level and line level fields when you synchronize quote line items to opportunity products, opportunity amount is automatically calculated by salesforce as the sum of all opportunity product amounts — no additional configuration is needed for this regardless of which option you choose, nue's core sync logic always sets opportunity ruby primaryquote c to link the opportunity to its primary quote option 1 header level only sync (via flow) to use header only sync, ensure the "sync primary quote line items to opportunity products" system setting is disabled the nue package includes an "update opportunity pricing fields" flow template for syncing header level pricing fields from the primary quote to the opportunity this flow is inactive by default and serves as a starting point that you can activate and customize when activated, this flow fires when a primary quote is created or updated, and copies the following fields from the quote to the opportunity quote field opportunity field total amount amount discount discount discount amount discount amount subtotal subtotal total price total price system discount system discount system discount amount system discount amount tax tax subscription start date subscription start date subscription end date subscription end date subscription term subscription term pricebook pricebook to activate, navigate to setup → flows , find "update opportunity pricing fields" , open it, and click activate since this ships as a template, your activated copy is independent of the package — future package upgrades will not overwrite your customizations option 2 header level + line level sync when the "sync primary quote line items to opportunity products" system setting is enabled, nue syncs individual quote line items to opportunity products as a background job with opportunity products in place, salesforce automatically calculates opportunity amount as the sum of all opportunity product amounts you can configure the settings from nue system settings page system settings when the "sync primary quote line items to opportunity products" system setting is enabled, nue syncs individual quote line items to opportunity products this sync runs asynchronously as a background job you can also choose to sync the primary quote line items to a closed opportunity by turning on sync primary quote line items for closed opportunity based on your business requirement which line types are synced line type line type synced to opportunity products? synced to opportunity products? line item ( lineitem ) yes ramp item ( rampitem ) yes summary item ( summaryitem ) no — excluded split item ( splititem ) no — excluded summary items are roll up lines that aggregate child line amounts — syncing them would double count values split items are billing period breakdowns of a parent line — syncing them would similarly create duplicates which fields are synced per line the following fields are copied from each quote line item to its corresponding opportunity product category fields core pricing quantity, unit price, sales price, net sales price, total price, subtotal discounts discount (%), discount amount, system discount (%), system discount amount metrics delta acv, delta arr, delta cmrr, delta tcv, delta committed arr, delta committed cmrr subscription subscription start date, subscription end date, subscription term other tax amount, service date, uom, description each synced opportunity product is linked back to its source quote line item via the ruby primaryquoteline c field on the opportunity product please observe the following behaviors under different sync context context sync behavior normal trigger context (e g , user saves a quote) sync runs as an async queueable background job already async context (e g , quote saved from within a batch, queueable, or future) sync runs inline in the same transaction (to avoid chaining async jobs) duplicate saves nue prevents concurrent duplicate sync jobs for the same quote closed opportunities sync is skipped by default enable via the "sync primary quote line items for closed opportunity" system setting you can optionally activate the flow update opportunity pricing fields (option 1) alongside this setting if you also want the other header level fields (discount, tax, subscription term, etc ) copied to the opportunity note if both the flow and line level sync are enabled, opportunity amount is set by salesforce's automatic rollup of opportunity products the flow's amount mapping is primarily useful for orgs that use header only sync without line level sync enabled monitoring sync status starting with april 2026 release, nue provides a "quote to opportunity sync job status" component that can be added to your quote record page this card displays the real time status of the most recent sync job to add it to your quote page layout navigate to any quote record click the gear icon → edit page in lightning app builder, find "async job status card" in the component list drag it onto your quote record page layout save and activate the card displays five possible statuses status icon meaning no sync run info (gray) no sync has been triggered for this quote yet in progress spinner sync is running in the background; the card auto polls for updates success green checkmark quote has been synced successfully error red error sync failed — error details are displayed below the status timed out yellow warning the sync job has been queued for over 1 hour and appears stuck when a sync is in progress, the card automatically polls for updates (starting at 3 second intervals, backing off to 30 seconds) you can also click the refresh button at any time sync failed sync in progress sync succeeded frequently asked questions q does issyncing get unchecked if an error occurs? a nue does not use the standard issyncing field this field is part of salesforce's built in quote sync mechanism, which nue replaces with its own async process if you see issyncing = true on a quote, it was set by something outside of nue (e g , a custom flow or manual use of the standard "start syncing" button) q why are summary items and split items excluded from sync? a summary items are rollup lines that aggregate child line amounts — syncing them would double count values on the opportunity split items are billing period breakdowns of a parent line and would similarly create duplicates only line items and ramp items represent the actual products and pricing that should appear as opportunity products q does sync run for closed opportunities? a by default, no sync skips opportunities in closed stages to enable sync for closed opportunities, turn on the "sync primary quote line items for closed opportunity" setting in nue system settings q what happens if the sync job fails? a the async job status card on the quote page displays the error with details from the salesforce asyncapexjob extendedstatus field the quote and its line items are unaffected — the failure only means opportunity products were not updated you can resolve the underlying issue and re save the quote to trigger a new sync attempt q can i retry a failed sync? a yes any update to a primary quote's line items will trigger a new sync attempt simply edit and save a line item on the quote (even a no op edit) to kick off a fresh sync job q is opportunity amount a rollup of the synced opportunity products? a when line level sync is enabled and opportunity products exist, opportunity amount is automatically calculated by salesforce as the sum of opportunity product amounts if line level sync is enabled, opportunity amount is automatically rolled up by salesforce from opportunity products, synchronized from quote line item of the primary quote; if only header level sync (flow) is enabled, opportunity amount is copied from quote totalamount by the flow q what happens if i save the quote multiple times quickly? a nue uses a deduplication mechanism so that only one sync job runs per quote at a time rapid successive saves will not create duplicate background jobs