Skip to main content

#Revenue Cloud84 debatiendo

Hello, 

 

I am trying to complete this

module,

and I am getting the following error: 

We can’t find the quote Office Supplies. Make sure you create the quote for the EdgeMX account. 

 

However, the quote has been created for the correct account and includes the products; I followed the content and challenge steps correctly. 

 

I am also using a special Developer Edition org with Agentforce Revenue Management. 

 

Can anyone help? 

Thanks in advance. 

 

 

#Trailhead Challenges  #Trailhead  #Revenue Cloud  #Salesforce Revenue Cloud  #Revenue Management System

1 respuesta
  1. 10 sept, 21:33

    Hi , 

     

     

    I tried everything : new orgs, follow the steps, crazy settings, nothing worked. 

     

    This is what worked for me :  

    1. Created a new org  

    2. Price Sync 

    3. Under Edge MX , create new quote "Office Supplies" linked to "Office Upgrade" opportunity 

    4. Added only the Software products mentioned in challenge 

    5. Verify the challenge, Received Error : Laptop Pro Bundle is missing 

    6. Added the Laptop Pro Bundle and re-verified the challenge 

    7. WORKED.  

     

     

    https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000gTaeP0AS

0/9000

Anyone else running into recalculation headaches with Spiff/ICM when a deal gets reassigned to a different rep mid-period? Mine ends up double-counting or dropping the payout entirely, curious how others are handling ownership changes without breaking the calc.  

 

#Sales Cloud  #Revenue Cloud

1 respuesta
  1. 7 sept, 13:10

    We stopped using the current opportunity owner for the calc because that’s what caused most of the mess. Better to snapshot the credited rep when the deal closes and calculate from that. Then a later ownership change doesn’t move or duplicate an already earned payout.

0/9000

Renewal Opportunity Creation  Scenario: 30 days before a Contract expires, automatically create a Renewal Opportunity and notify the Account Owner.  Questions:  • Which Flow type would you use?   • How would you calculate the 30-day window?   • How would you prevent duplicate renewals?     

2 respuestas
  1. 7 sept, 17:55

    Hi @Rohit .

     

     

    For this requirement, I would use a Record-Triggered Flow with a Scheduled Path on the Contract. 

     

    Approach:

    •  Schedule the path for 30 Days Before → Contract End Date. 
    •  At that time, check whether a renewal Opportunity already exists. 
    •  If not, use Create Records to create the Renewal Opportunity and notify the Account Owner. 
    •  To prevent duplicates, maintain a Renewal Opportunity lookup or a Renewal Created checkbox on the Contract and check it before creation. 

    Flow: 

     Contract → Scheduled Path (30 Days Before End Date) → Duplicate Check → Create Renewal Opportunity → Notify Account Owner 

     

    Hope This Helps!!

0/9000

The payout happened in the March commission run (that's when it was calculated and paid).

The deal's close date now shows February (because it was edited/backdated after the fact).

So there's a disconnect between when the money was actually paid (March) and what period the deal currently says it belongs to (February). 

 

#Sales Cloud  #Revenue Management System  #Revenue Cloud  #Salesforce Revenue Cloud

2 respuestas
  1. 4 sept, 13:30

    Hi @Swati Malkar

     

    This is a known pain point in Spiff/ICM the tool is calculating off a live field (

    Close Date) instead of a locked, point-in-time snapshot. The fix isn't really "how do I stop deals from being backdated" it's "stop letting a mutable CRM field drive an immutable financial record." 

    Root cause: Spiff's plan logic is likely referencing Opportunity.CloseDate (or a similarly live-synced field) to bucket the deal into a payout period. When that field changes after calculation/payout, any report or re-run that re-evaluates the deal picks up the new value, creating a mismatch between "period paid" and "period the deal now says it belongs to." 

    How to actually fix it a few layered options, roughly in order of how I'd sequence them: 

    1. Snapshot the period at calculation time, don't derive it live. Add a dedicated field something like Commission_Period__c on the commission/statement record (or in Spiff's own statement object) that's set once when the statement runs and never recalculated from CloseDate again. Spiff does support adding effective dates on plans/logic and locking historical statements, so this should be a config change in Spiff's plan design rather than custom Apex — check that "lock historical statements" setting is actually turned on for closed periods.
    2. Separate "Close Date" (sales-facing, editable) from "Commission Effective Date" (finance-facing, locked once a statement is generated). Reps and deal desk need to edit Close Date for pipeline/forecast reasons that's normal. The commission engine should never read that same field for historical periods once paid.
    3. Treat post-payout edits as a reconciliation event, not a silent recalculation. If a close date changes after a statement already paid against it, that should trigger a clawback/adjustment workflow (a new adjustment line in the next period), not a retroactive rewrite of March's numbers. This is standard ASC 606-adjacent practice Spiff's audit-ready expense reporting is built around exactly this kind of compliant, locked-period model.
    4. On the Salesforce side, if Opportunity edits are what's causing this, consider a validation rule or Flow that blocks/flags Close Date changes on Opportunities that already have a Commission_Statement__c (or equivalent) linked and Closed/Locked at minimum, notify Finance/RevOps rather than letting it happen silently.

    I hope you find the above information helpful. If it does, please mark it as Best Answer to help others too.

0/9000

We're planning a large migration of legacy Asset records into Revenue Cloud and want to confirm we're not missing a bulk-friendly path. 

 

We've confirmed HasLifecycleManagement, LifecycleStartDate/EndDate, and the underlying AssetStatePeriod object are all read-only via standard DML - Data Loader/Bulk API reject any attempt to write them (INVALID_FIELD_FOR_INSERT_UPDATE). 

 

The only supported path we've found is the Connect REST API generate endpoint (asset-management/assets/actions/generate). It looks like a single-asset-per-call API with no bulk/batch equivalent, and the start date of the first asset state period is locked once the call completes. 

 

Has anyone done a large historical Asset migration into lifecycle management this way? Curious about: 

- Whether a bulk-friendly path exists that we're missing 

- Realistic call volumes/patterns others have used against the generate endpoint 

- Whether it's common practice to leave older/inactive assets non-lifecycle-managed and only onboard active ones 

 

  1. Appreciate any recommendations.

#Revenue Cloud

3 respuestas
  1. 30 ago, 15:44

    we did it using PST api. the approach here is to bulk create Order using PST and then activate the Order, it will create Asset lifecycle managed records automatically, this is will give audit history as well.  

    PST api supports bulk record creation (1500 records in a single api call).

0/9000

Hi everyone, 

I'm currently working on attribute-based pricing in Salesforce Revenue Cloud and came across a scenario I'd like some guidance on. 

For example, I have an attribute called Color. If Color = Blue, I want to apply a 5% discount. This pricing rule should apply to every product in my product catalog. 

Using Price Adjustment Schedules , the pricing adjustment is tied to a specific product. This works well for a small catalog, but in a large product catalog with thousands of products, creating and maintaining separate Price Adjustment Schedules for each product is time-consuming and difficult to manage. 

Is there a way to define the pricing logic once and have it apply to all products instead of configuring it product by product? 

I'd appreciate any suggestions or best practices. Thanks!   

 

@* Salesforce Revenue Cloud * 

2 respuestas
  1. 2 sept, 20:43

    For something like this id recommend using the Pre hook to write the Attribute value say "Colour" to a "Colour" Field on the quote line. 

     

    You could then add into your pricing procedure to add a 5% discount if that colour field = "Blue"

0/9000

We have one Bundle Product

 with 10–15 unique child products (for example: iPhone 15, iPhone 16, Samsung, etc.). 

We want to use 

Attributes instead of Product Related Components and Product Component Groups

Requirement:

  •  Create attributes for each product option. 
  •  If the bundle has 15 child products, create 15 attributes. 
  •  All attribute options should be available for selection. 
  •  When the user selects the required attribute value, the corresponding child product should automatically be added with its respective pricing. 
  •  When the user selects any Bundle Product, all related attributes should be automatically added. 

Question:

Can we achieve this functionality using Attributes only, where all child products are mapped through attributes and selected products are automatically added with the correct pricing, without using Product Related Components and Product Component Groups? 

 

 

#Trailhead Challenges

1 respuesta
  1. 2 sept, 20:34

    You can definitely use the Constraint model to require products based on attribute selection. This is easiest if they are bundled together using the product related components. 

     

    To have them unbundled you would have to build a virtual quote in the constraint to be able to add other products and create the mappings in the constraint model. 

     

    I would suggest using a bundle and the product related components as it is going to be easier to manage in the long run. Ive found the constraint model to be finnicky and not fully developed

0/9000

The issue is right now when I renew a term based bundle which consists of One time child component as well, it shows me the one time product too with 0 quantity, I don't want that I want to skip the one time products completely inside a bundle. How can I achieve this? 

Approach used: The amend, renew and cancel flow is passing the assetIds but it is passing of bundle only.    

 

#Revenue Cloud

2 respuestas
  1. 2 sept, 20:29

    Last time i spoke with support about this it was confirmed you cant remove them and its the intended behaviour. 

     

    If they are bundled you are stuck with them the renewal action takes only the parent level product so i dont believe you can filter out the child records

0/9000

what should be the data type of the attribute in context definition in RCA  if data type of quote field is currency and data type of order field is double ? 

 

#Revenue Cloud  #Salesforce Revenue Cloud

1 respuesta
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 *

3 respuestas
  1. 2 sept, 3:56

    Hi @Christopher Strecker

    , That's the missing piece. By assigning "Product Configurator API User" permission to my user, I was able to connect without any error. 

    Hi , That's the missing piece. By assigning

     

     

0/9000