Skip to main content

#Salesforce Revenue Cloud22 discutindo

VTG VTG perguntou em #Revenue Cloud

Hi All,  

 

The standard out-of-the-box Start Sync button in RCA. When a user clicks it, it:

  • Sets the Quote as the Synced Quote on the associated Opportunity
  • Populates the standard OOB Quote/Opportunity sync fields and links
  • Syncs the Quote Lines to Opportunity Products

For our cancellation process, I’d like to automate this behavior. Instead of requiring the rep to manually click Start Sync, the cancellation automation should automatically sync the cancellation Quote to its associated Opportunity and then allow the Opportunity to be closed as part of the same process.

The issue I’m running into is that the fields involved for syncing on the Quote/Opportunity sync don’t appear to be available or updateable through Flow. From what I can tell, Start Sync is invoking a standard Salesforce/RCA sync page or process rather than simply updating fields.

 

Has anyone successfully invoked the same 

Start Sync functionality programmatically?

 

Specifically, I’m wondering whether there is a supported way to:

  • Trigger the standard RCA Quote → Opportunity sync from Flow
  • Invoke it through Apex, an API, or another automation mechanism

I’d prefer to leverage the standard RCA sync functionality if possible so that the automated cancellation process behaves exactly the same way as a rep clicking Start Sync.

Any guidance on the supported approach or the underlying API/process that Start Sync

 invokes would be greatly appreciated. 

 

#Revenue Cloud  #Ask An Expert  #Salesforce Revenue Cloud @* Salesforce Revenue Cloud *

2 respostas
  1. Hoje, 11:59

    @VTG VTG

    VTG 

    What you need to do is not to update Quote but populate on Opportunity SyncedQuoteId. Field on Quote is rather formula representing if SyncedQuoteId = current Quote Id

0/9000

What I'm building

A custom Lightning Web Component that embeds inside a cloned Product Configurator Screen Flow (the standard "Save As" third-party-configurator extension pattern — lightning__FlowScreen). The component calls the Product Configurator Business APIs directly via Apex HTTP callout (Named Credential auth, OAuth 2.0 Client Credentials Flow via an External Client App — not UserInfo.getSessionId(), which is rejected for interactive-UI sessions anyway).

Environment

  • Developer Edition org with Revenue Cloud / Agentforce Revenue Management enabled (enableProductConfigurator = true)
  • API version v64.0
  • Not a scratch org, no source tracking — deployed directly
  • Native in-app configurator UI works correctly for the running user; this is only about the headless REST layer

What works

POST /services/data/v64.0/connect/cpq/configurator/actions/configure — works reliably. Returns transactionContext.SalesTransaction[].SalesTransactionItem[], prices lines correctly, runs configuration rules, surfaces rule violations in messages. This endpoint alone is not gated.

What fails

Every other documented action in the same family returns a 403:

 

POST /services/data/v64.0/connect/cpq/configurator/actions/load-instancePOST /services/data/v64.0/connect/cpq/configurator/actions/get-instancePOST /services/data/v64.0/connect/cpq/configurator/actions/add-nodesPOST /services/data/v64.0/connect/cpq/configurator/actions/save-instance

Response body:

 

{  "errorCode": "FUNCTIONALITY_NOT_ENABLED",  "message": "[IHeadlessConfiguratorFamily]"}

(403 status, same error regardless of payload shape or whether the call carries a transactionContextId.) 

 

#Revenue Cloud  #Salesforce Revenue Cloud  #Lightning Product Setup Configurator  #CPQ  #Revenue Management System @* Salesforce Revenue Cloud *

0/9000

Hi everyone! 

 

I was wondering if there is a simple way to add products by searching in the list of all products in the revenue cloud quote line item editor? 

I can add them from browse catalogue or the search whenever the product exists in a catalogue.  

But I want to be able to search all products with the revenue cloud quote line editor without necessarily having them be added to a catalogue.  

 

Is this possible? 

 

Thank you! 

 

Marie Olsen 

 

#Revenue Cloud  #Salesforce Revenue Cloud  #Product Management  #Product

3 respostas
  1. 20 de ago., 02:32

    No, natively, ARM/Revenue Cloud doesn't let you search and add from "all products" the way Salesforce CPQ does..  

    Natively, there's no way to search and add products in the Transaction Line Editor without going through Browse Catalog, and Browse Catalog is inherently catalog scoped; a product has to be catalog/category assigned to be searchable and addable there.  

    For comparison: in Salesforce CPQ, clicking Add Product on the QLE pulls up a list of products based on your price book — there's no catalog concept in CPQ, so effectively every priced product is visible and pickable.

    In ARM, Browse Catalog replaces that flow, and it's built around the catalog/category model by design — a product needs catalog assignment (plus price book entry, selling model, and indexing) to appear there.

0/9000

Hi Everyone,

I’m not able to see the product under the category when I try to add it to a Quote through Browse Catalogs, even though the product is active and assigned to an active Pricebook that is aligned with the Quote’s Pricebook.

Could someone please help me check if I’m missing any configuration or setup?

Thanks in advance! 

 

#Salesforce  #Revenue Cloud  #Salesforce Revenue Cloud

3 respostas
0/9000

When a Renewal Quote is created from a Ramp Contract, the expected Ramp Segments are not being created on the Renewal Quote. 

Is this the standard Salesforce behavior

for Ramp Renewals? If not, what configuration or process is required to automatically create the Ramp Segments on the Renewal Quote based on the original Ramp Contract?  

 

#Revenue Cloud  #Salesforce Revenue Cloud  #Salesforce Developer

0/9000

Hi everyone,

I’m facing an issue with Renewal Opportunities in Revenue Cloud.

Assets are created successfully after Order Activation, and Amendments are also working correctly. However, the Renewal Opportunity is not being created, even though the Create and Update Renewal Opportunities flow is active.

Has anyone faced a similar issue or knows what configuration needs to be checked for Renewal Opportunity creation?

Any suggestions would be really helpful. Thank you! 

 

#Revenue Cloud  #Salesforce Revenue Cloud

1 resposta
  1. 12 de ago., 12:12

    Hi Thanusha - when assets exist, amendments work, and the flow is active but no renewal opp appears, the cause is almost always timing/eligibility rather than a broken flow. Things to check, most likely first: 

     

    1) Renewal window / timing. Renewal Opportunities generate relative to the asset/subscription end date, not right after activation. If the asset's end date isn't yet inside the renewal window (e.g. a 1-year term that just started), the renewal opp isn't due to be created yet. Confirm how far ahead renewals are meant to generate and whether these assets fall in that window. 

     

    2) Is the flow actually running on schedule? 'Active' is not the same as 'scheduled/executed'. If it's a scheduled flow, verify it has a schedule and has actually run since the assets were created - check its run history / scheduled paths. A record-triggered version needs the triggering change to occur. 

     

    3) Asset/product renewability. The asset has to be renewable - the product configured with a renewal term/lifecycle so it's eligible. A non-subscription or non-lifecycle-managed asset won't spawn a renewal opp even if everything else is set. 

     

    4) Entry criteria / duplicates. Check the flow's entry conditions (asset status, lifecycle stage) and whether a renewal opp already exists for that asset - many renewal flows skip assets that already have one. 

     

    5) Errors. Check the flow's error/debug logs and Paused and Failed Flow Interviews - a silent failure (governor limit, a null on some records) would skip exactly those assets while working for others. 

     

    Since amendments already work, I'd bet on #1 or #2 (timing/schedule). If you can share the asset end date and whether the renewal flow is scheduled vs record-triggered, it's easy to narrow down.

0/9000

 

Custom Button at Row Level in Sales Transaction Line Editor – Revenue Cloud

 

Hi everyone,

I’m working with the Sales Transaction Line Editor (STLE) in Salesforce Revenue Cloud and would like to know if it is possible to add a custom button/action at the row level for each transaction line.

For example, I would like to have a custom button or action available on each individual row in the Sales Transaction Line Editor that can trigger custom logic.

Has anyone implemented something similar? If yes, could you please share the recommended approach or any documentation/examples for extending or customizing the row-level actions in STLE?

Any guidance would be greatly appreciated. Thank you! 

 

#Salesforce Revenue Cloud  #Salesforce Developer

1 resposta
  1. 11 de ago., 09:35

    @Akshita . Unfortunately, this is not supported as of now. The Sales Transaction Line Editor (STLE/TLE) supports customization of action buttons at the header level only

    , and does not provide an option to add custom actions at the individual row level.  

    Additionally, the header-level actions are currently limited to the

    standard actions supported by Salesforce

    . There is no configuration option available to define a custom action or invoke custom logic from these buttons.  

    Therefore, if the requirement specifically needs a

    custom action for each transaction line

    , it would require a separate/custom UI approach rather than extending the standard STLE.  

     

    Ref:

    https://help.salesforce.com/s/articleView?id=ind.qocal_configure_placement_of_action_buttons.htm&type=5

     

     

    Kindly mark this as best answer if it's find useful. 

     

    Thanks, 

    Anandh T

0/9000

Hi everyone, 

 

Appreciate advise on implementation of the following requirements in revenue cloud. 

 

Scenario:

 

The customer sells cloud solutions as bundled offerings. For example, a Server bundle consists of components such as a Virtual Machine, Storage Capacity, and other optional add-ons. Each component has its own set of attributes, forms an individual SKU, and is priced using attribute-based pricing. 

 

The customer wants to model these offerings as bundles where the parent bundle product serves only as a logical container and is not an actual sellable product. As such, no price should be assigned to the parent bundle. Instead, the business expects the price displayed for the parent bundle to be the aggregated total of all its child components. 

 

We have the following questions: 

 

Quote to Opportunity Synchronization:

Is there an out-of-the-box capability to synchronize quote line items to the Opportunity while excluding the parent bundle product? Since the parent is only a container, the business does not want it to be created as an Opportunity Product. 

 

TotalPrice Calculation on Quote:

Currently, the TotalPrice on Quote includes both the TotalPrice of the bundle product and all of the child components, resulting in double counting. Is there a standard or recommended approach in Revenue Cloud Advanced to ensure the quote total reflects only the aggregated value of specific line items e.g I want to exclude the aggregation on the bundle? 

 

Thank You!

4 respostas
  1. 9 de ago., 19:57

    For this kind of setup, I’d treat the parent bundle strictly as a container and keep the actual pricing at the component level. That should help avoid the parent being treated as another sellable line and causing the double-counting issue. 

    For the Opportunity sync, I’d check whether the standard quote-to-opportunity mapping can filter bundle parent lines. If it can’t, a custom mapping/automation may be needed to only create Opportunity Products from the component quote lines. 

    For the Quote TotalPrice, I’d also avoid assigning a price to the parent if the child lines already represent the complete commercial value. Otherwise the parent and components can naturally get counted twice. The exact approach may depend on how the bundle and pricing procedures are configured in Revenue Cloud Advanced. 

0/9000

Problem summary:

 

We currently use conditional billing date overrides in legacy Salesforce Billing (CPQ & Billing) to control advance billing. We need the equivalent capability in Revenue Cloud Billing (RCB), but RCB doesn't expose the same fields on the Order Product, so we're unsure of the correct approach.

Current (legacy) behavior:

 

On the Order Product, we use two fields together to control invoice timing conditionally:

  • Override Next Billing Date – overrides the system-calculated next billing date on the billing schedule. Example: system calculates next billing date as the 1st of the month; based on our condition, we override it to the 15th.
  • Bill Through Date Override (BTDO) – controls how far forward a single invoice bills, calculated with custom logic: 

    Bill Through Date = Order Start Date + Billing Frequency − 1 day

These overrides are applied conditionally (based on business rules) before invoice generation runs, letting us pull in or push out billing cycles and control exactly what period a given invoice covers.

What we need in RCB:

 

The same conditional override behavior — i.e., dynamically setting the next billing date and the bill-through period on the BillingSchedule at generation time, based on our conditions — while generating invoices in Revenue Cloud Billing ?

1 resposta
  1. 17 de jul., 21:20

    @Ganesh Aguvakasala

    - Override Next Billing Date is replaced by Next Billing Date Override.  

     

    Bill Through Date Override is not yet a feature in RCB. Please send me a private message with your customer's name and I will add them to our 'voice of the customer' for this feature.   

     

    -Frank

0/9000

 I am running into an issue where a one-time product component inside a bundle is dropping off during the contract renewal process in Agentforce Revenue Management (ARM) / Revenue Cloud.

 

Scenario

  • We create a renewal from an existing contract.
  • The bundle contains both recurring and one-time products.
  • During the renewal process, the one-time product remains part of the bundle on both the Renewal Quote and the Renewal Order, which is the expected behavior.

The Problem

  • The issue appears after the Renewal Order is activated.
  • The new Renewal Contract is created successfully, but the one-time product is missing from the contract structure. After investigating, I found that the platform does not create an AssetContractRelationship (ACR) record for the one-time asset on the new contract, even though the ACR was created correctly for the original contract.

What we have already verified/troubleshot:

  1. Asset Generation: An Asset record was successfully generated for the one-time item from the initial order.
  2. Lifecycle End Date: The Lifecycle End Date on the specific one-time Asset record is Blank (it is not expired).
  3. Asset Records: Both Asset State Periods and Asset Action Source records are fully available and populated.

 

Has anyone experienced this behavior? 

 

It looks like the contract activation process is excluding assets associated with a One-Time Product Selling Model Category when creating the Renewal Contract, even though the product is still part of the Renewal Order and bundle. 

 

Is there a known limitation, configuration, or mapping rule that controls whether an AssetContractRelationship is created during contract activation? Are there any fields on the Asset, Order Item, or Product Selling Model that I should verify? 

 

I'd really appreciate any insights or workarounds. Thanks in advance! 

 

@* Salesforce Revenue Cloud * 

2 respostas
  1. Josh Priem (Freelance) Forum Ambassador
    7 de jul., 20:02

    I'd expect you're seeing expected behavior here. Since it's a one-time product it shouldn't "renew". This was an issue in SF CPQ depending on how you looked at it. I'm unsure if there's a lever you can pull within ARM to address this but you should be able to create a flow that creates the record you're looking for.  

     

    Cheers!

0/9000