Free Salesforce Revenue Management Consultant Practice Test Questions
Topic: Configure, Price, Quote
164 questionsUpdated 13-Nov-20268 topics
TopicConfigure, Price, Quote
Question 1Choose 1
A product administrator needs to use the Constraint Modeling Language (CML) construct available in Advanced Configurator to define a relationship for a House with up to five rooms. The relationship also requires that a MediaRoom in the color blue must be included when the house has more than three rooms.
Which option should the administrator use to accomplish this?
Correct answer:
B. type House {relation rooms : Room[0..5];require(rooms.size > 3, rooms[MediaRoom]{color = "Blue"})};
Summary:
This question focuses on defining a constraint in Constraint Modeling Language (CML) for a House that can have up to five rooms. Additionally, if the house has more than three rooms, it must include a MediaRoom specifically in blue color. The correct syntax must use the appropriate cardinality for rooms along with a conditional requirement using the proper object and attribute structure supported in Advanced Configurator.
Correct Option:
B — type House {relation rooms : Room[0..5]; require(rooms.size > 3, rooms[MediaRoom]{color = "Blue"});}
This is correct because it correctly defines the rooms relationship with a cardinality between 0 and 5, allowing up to five rooms in the house. The requirement expression properly checks when the number of rooms exceeds three and ensures a MediaRoom with the color blue is included. The syntax matches CML standards for conditional requirements, object filtering, and attribute specification within a relationship.
Incorrect Option: A — relation rooms : Room[4,5]
This option is incorrect because setting the cardinality to [4,5] forces the house to always have at least four rooms, which contradicts the requirement of “up to five rooms.” It removes flexibility by eliminating valid configurations with fewer than four rooms. Although the require clause is syntactically close, the incorrect cardinality disqualifies this option as it does not meet the business requirement.
C — House[MediaRoom=true, color="Blue"]
This option is invalid because it attempts to reference MediaRoom and attributes directly on the House object instead of the rooms relationship. CML does not support filtering child objects through the parent object in this manner. The syntax is structurally incorrect and does not use the proper pattern of selecting a specific room type and applying attribute constraints. Therefore, it cannot enforce the required condition.
Reference:
Salesforce Revenue Cloud Advanced Configuration Guide — Constraint Modeling Language (CML) Syntax, Relationship Cardinality, and Conditional Rules.
Question 2Choose 1
A Revenue Cloud Consultant needs to add a new custom field to the pricing context definition and use it in a pricing procedure. The consultant added the attribute to the context definition, but it is not available in the pricing procedure.
Which step did the consultant miss?
Correct answer:
B. Activate the context definition.
Summary:
In Salesforce Revenue Cloud, when a new custom field is added to the pricing context definition, it must be activated before it becomes usable in pricing procedures. Until activation occurs, newly added attributes remain unavailable for selection in pricing procedures. This ensures that changes are finalized and published for use across the pricing engine. Since the consultant added the attribute but cannot see it, the missing step is activating the context definition.
Correct Option:
B — Activate the context definition
Activating the context definition is required anytime you add, modify, or remove attributes. Activation publishes the updated context attributes to the pricing engine so that they are accessible in pricing procedures. Without activation, the system continues using the previous version, leaving new fields hidden. This step ensures that all pricing logic recognizes and can consume the newly added custom attribute.
Incorrect Option:
A — Add a tag to the field attribute
Tags help categorize or group attributes within the pricing engine, but they are not required for an attribute to appear in a pricing procedure. Even without tags, attributes become available once the context definition is activated. Tags improve organization but do not control visibility, so missing tags would not prevent the field from being used.
C — Clone the pricing procedure
Cloning a pricing procedure is unnecessary for making new context attributes available. Pricing procedures dynamically read from the active context definition. As long as the definition is activated, the procedures will recognize newly added attributes. Cloning would simply duplicate configuration and introduce additional maintenance without solving the visibility issue.
A product administrator creates a product by associating it with a product class that has three attributes assigned. Two of these attributes are to be used for attribute-based pricing only for this product.
How should the product administrator ensure that these two attributes can be used for attribute-based pricing?
Correct answer:
C. Edit the inherited attributes at the product level and set the 'Is Price Impacting' flag.
Summary:
The product inherits three attributes from its product class, but the pricing behavior needs to be configured specifically for this single product. The "Is Price Impacting" flag must be set at the product level to override the inherited settings from the class. This provides granular control, allowing the administrator to enable attribute-based pricing for only two of the three attributes for this specific product, without affecting other products in the same class.
Correct Option:
C: Edit the inherited attributes at the product level and set the 'Is Price Impacting' flag.
This is the correct action. When a product inherits attributes from a class, those attributes appear as "inherited" on the product record. The administrator can edit these local instances to change their behavior, such as setting the Is Price Impacting flag, specifically for this product. This allows for the required selective pricing configuration.
Incorrect Option:
A: Edit the attribute associated to a product classification and set the 'Is Price Impacting' flag.
Editing the attribute directly on the product class would change the setting for all products that belong to that class. This lacks the required granularity and would incorrectly impact the third attribute or other products that should not have attribute-based pricing.
B: Edit the attribute definition and set the 'Is Price Impacting' flag.
The attribute definition is the global setup for the attribute. Changing it here would make the attribute price-impacting for every single product and class that uses it, which is far too broad and does not meet the requirement to configure it for "this product" only.
Reference: Salesforce Help: Define Attributes for a Product - The official documentation explains that for inherited attributes, you can "override the attribute's properties for a specific product" directly on the product record. This includes setting the Is Price Impacting flag to control pricing at the individual product level.
Question 4Choose 1
After a quote is created from amending a bundle asset, a user unselects a bundle component inside the configurator and saves and exits to the Transaction Line Editor.
How will the user identify the unselected bundle component?
Correct answer:
B. It will show a red cancel tag next to the product that was unselected, and the quantity will be -1.
Summary:
When amending an existing bundle asset in Salesforce CPQ, any component that a user removes or unselects during configuration must be represented in the amendment quote so CPQ knows to cancel it on the customer’s subscription or asset. CPQ shows removed components clearly in the Quote Line Editor using cancellation indicators. The visual cue for a removed bundle component is a red cancel tag with a quantity of –1, signaling that the asset should be canceled.
Correct Option:
B — It will show a red cancel tag next to the product that was unselected, and the quantity will be -1
Salesforce CPQ marks removed components in amendment quotes using a red “Cancel” tag. The system adds a quote line with a quantity of –1, which indicates that CPQ should cancel or reduce the asset. This is the standard behavior for removals during amendments. It ensures clear visibility to the user and proper processing when creating the amendment order or renewal.
Incorrect Option:
A — No line items will be displayed for the unselected component
This is incorrect because CPQ must track removed components. If nothing displayed, the amendment would not properly signal that a component needs cancellation. Therefore, CPQ always adds a cancel line for removed items so the system knows to adjust the asset records when the amendment is finalized.
C — The line item status field will show “Canceled”, and quantity will be 1
A canceled item does not show quantity 1 because the system needs a negative quantity to indicate a reduction or cancellation. “Canceled” is not the value CPQ uses on the quote line; instead, CPQ uses the red cancel indicator with a negative quantity. Therefore, this option does not reflect how CPQ handles removed bundle components.
Reference:
Salesforce CPQ Documentation → Amendments & Asset-Based Ordering, How CPQ Displays Removed Products in Amendment Quotes.
Question 5Choose 1
During a transaction, which capability does the Transaction Line Editor provide?
Correct answer:
B. Filtering
Summary:
The Transaction Line Editor (TLE), used for creating and managing quotes, orders, and invoices, is designed for efficiency in a high-volume data entry environment. A key capability is allowing users to quickly narrow down a long list of line items to find specific products or review certain entries. This is achieved through its built-in filtering functionality, which is a core feature for navigating complex transactions.
Correct Option:
B: Filtering:
This is the correct capability. The TLE provides a filter button that allows users to display only the line items that meet specific criteria (e.g., a certain product name, a specific start date). This is essential for managing large transactions and is a standard, well-documented feature of the TLE interface.
Incorrect Option:
A: Drag to Sort:
The TLE does not support manually reordering line items by dragging them. The sort order is typically controlled by system-defined sequences (like the order of addition) or by using the standard column header sorting (e.g., clicking the "Product Name" header), not by drag-and-drop interactions.
C: Auto Save Changes:
The TLE does not automatically save changes as you type. Users must explicitly save the transaction (e.g., by clicking a "Save" or "Quick Save" button) to persist their edits. This prevents unintended changes from being saved and allows users to review modifications before committing.
Reference: Salesforce Help: Use the Transaction Line Editor - The official documentation explicitly lists "Filter line items" as a key action, describing how users can "filter the line items in the transaction" to find the information they need.
Question 6Choose 1
A pricing administrator needs to set up pricing so that a calculated discount is spread evenly across all line items in a quote or order. How should the pricing administrator set up the pricing correctly?
Correct answer:
C. Add and configure the Discount Distribution Service element as the last step of pricing procedure.
Summary:
When a discount is calculated at the quote or order level, Salesforce Pricing needs a mechanism to distribute that discount evenly across all individual line items. Without a specific distribution step, the discount remains at the header level and does not adjust each product’s net price. Salesforce provides a dedicated pricing engine element called Discount Distribution Service, which must be placed at the end of the pricing procedure to allocate the discount proportionally or evenly across all lines.
Correct Option:
C — Add and configure the Discount Distribution Service element as the last step of the pricing procedure
The Discount Distribution Service is explicitly designed to distribute header-level discounts across all line items. When configured as the final step, it takes the overall discount amount and spreads it evenly or proportionally based on business logic. This ensures consistent pricing, accurate extended amounts, and correct tax calculations. It is the official and recommended approach for distributing calculated discounts among line items.
Incorrect Option:
A — Add Formula Based Pricing with ItemTotalPrice context tag
Formula Based Pricing helps calculate custom prices or discounts, but it does not distribute discounts automatically across line items. Adding a formula with ItemTotalPrice would only compute values, not spread them. It can modify individual line prices but cannot allocate a quote-level discount across all lines, making it insufficient for the requirement.
B — Add Aggregate Price element with SUM function
Aggregate Price elements calculate totals across groups of line items, often used for tiered pricing or bundle pricing. A SUM function can aggregate values but cannot distribute discounts back downward to individual lines. This option would compute a total but would not break it into proportional line-level discounts, so it does not fulfill the requirement.
Reference:
Salesforce Pricing Guidance → Discount Distribution Service, Pricing Procedures and Elements, Header-to-Line Discount Allocation Best Practices.
Question 7Choose 1
A customer uses a price book to populate list prices. They need to override the list price by 10% if the product is being sold in an emerging market. The emerging market is identified on the quote via a custom field.
What should a pricing designer do to solve this?
Correct answer:
A. Use a formula-based pricing element to apply an override to the list price and use that to populate the list price for further calculations like total, discount, net prices, etc.
Summary:
The goal is to dynamically adjust the starting "List Price" for a product based on a market condition (emerging market) before any other pricing logic (like discounts) is applied. In Salesforce CPQ and Revenue Cloud pricing, calculations are sequential within a pricing procedure. To affect all downstream calculations, the override must be applied to the official List Price field early in the procedure, which then automatically flows into calculations for Total Price, Net Price, etc.
Correct Option:
A: Use a formula-based pricing element to apply an override to the list price and use that to populate the list price for further calculations like total, discount, net prices, etc.
This is the correct method. A Formula-Based Pricing element can check the quote's custom field and, if the condition is met, calculate a new value (e.g., ListPrice__c * 0.9). By mapping the output of this element to the List Price field in the pricing procedure, it officially resets the base price, ensuring the 10% reduction is factored into all subsequent totals and discounts.
Incorrect Option:
B: Use a formula-based pricing element to apply the override to the unit price and use that to populate the list price...
This is logically flawed. The Unit Price is typically a calculated output further down the pricing procedure. You cannot use it to "populate the list price," as the list price is its input. This would create a circular reference and is not the standard way to adjust the base price.
C: Use a formula-based pricing element to apply an override to the list price value and populate a line item custom field...
Populating a custom field isolates the calculated override. The standard pricing engine will not use a custom field to calculate Total Price, Net Price, or Discount Amount. The override must be written to the standard List Price field to be recognized by the system's core calculations.
Reference: Salesforce Help: Formula-Based Pricing Element - The official documentation explains that this element can be used to "override the default list price" by using a formula and mapping the output to the List Price field, which then serves as the new base for the remainder of the pricing procedure.
Question 8Choose 1
A sales user created a quote with one line item last week, and new features were deployed to production over the weekend.
This week, the sales user observed several issues while configuring the quote: The Browse Catalog is not showing products, and configuring any of the existing line items is showing the error "Something went wrong while processing your configuration changes."
What is a reason for the issues?
Correct answer:
C. The context definition for the pricing procedure must use the context definition selected on the Pricing Setup page.
Summary:
When new features or configuration changes are deployed in Revenue Cloud, quotes created prior to deployment may encounter errors if context definitions used by pricing procedures are misaligned. The context definition ensures that pricing and product configuration rules have the necessary attributes to function. If the pricing procedure does not reference the context definition selected in Pricing Setup, the system may fail to display products in the Browse Catalog or process configuration changes.
Correct Option:
C — The context definition for the pricing procedure must use the context definition selected on the Pricing Setup page
In Revenue Cloud, Pricing Setup determines the active context definition for pricing procedures. Pricing procedures rely on the context definition to access all required attributes for product configuration, pricing, and discount calculation. If a pricing procedure references a different or outdated context definition, it can cause errors such as missing products in the catalog or configuration failures. Updating the pricing procedure to use the correct context resolves these issues.
Incorrect Option:
A — Context definition selected on the Revenue Settings page
Revenue Settings control general Revenue Cloud behavior but do not define the context for pricing procedures. Using a context definition from Revenue Settings would not provide the pricing procedure with the necessary attributes for configuration, so this option is incorrect.
B — Context definition selected on the Product Discovery Settings page
Product Discovery Settings relate to the Browse Catalog and product search configuration, not pricing or line item configuration. Selecting a context definition here does not affect the pricing procedure, and misalignment would still cause the observed errors. This option is therefore incorrect.
A product administrator needs to add a required rule using Constraint Modeling Language (CML) so that whenever a product called Desktop is added to a quote, another standalone product called Monitor will be automatically added.
What is the correct CML syntax to write this rule?
Correct answer:
B. type Quote { relation desktop : Desktop[0..99]; relation monitor : Monitor[0..99]; require(desktop
[Desktop],monitor[Monitor], "Desktop requires Monitor"); }
Summary:
The requirement is to create an automatic addition rule in CML, where selecting a 'Desktop' product forces a 'Monitor' product to be added to the bundle. In CML, the require statement is used for this purpose, explicitly defining that the existence of one component necessitates the existence of another. The correct syntax must reference the relation names and their associated types within the require function's parameters.
Correct Option:
B: type Quote { relation desktop : Desktop[0..99]; relation monitor : Monitor[0..99]; require(desktop[Desktop],monitor[Monitor], "Desktop requires Monitor"); }
This is the correct syntax. It first defines the relations (desktop, monitor) and their types. The require statement then correctly uses the pattern require(relationA[TypeA], relationB[TypeB], ...) to enforce that if a Desktop exists in the desktop relation, a Monitor must exist in the monitor relation. The cardinality [0..99] allows for multiple instances.
Incorrect Option:
A: ... constraint(desktop, monitor, "Desktop requires Monitor"); }
The keyword constraint is used for general compatibility rules (like inclusion or exclusion), but it is not the specific keyword used to automatically add a required product. The require statement is the dedicated function for this auto-add behavior.
C: ... require(Desktop[Desktop],Monitor[Monitor], "Desktop requires Monitor"); }
This syntax is incorrect because it uses the type names (Desktop, Monitor) directly as the first parameter inside the require function, instead of using the defined relation names (desktop, monitor). CML syntax requires the relation names to be specified.
Reference:
Salesforce Help: Constraint Modeling Language (CML) Reference - The official documentation for CML specifies the syntax for the require statement, which is used to define that one product requires another, and demonstrates the correct use of relation names and types within the function parameters.
That's the last free question in Configure, Price, Quote
You've seen the free 25% of this topic (9 of 36 questions). Get complete access for every question, explanation and the timed exam simulator.
Our timed 2026 Salesforce Revenue Management Consultant practice test mirrors the format, number of questions and time limit of the official exam.
The #1 challenge isn't just knowing the material, it's managing the clock. The simulation builds your speed and stamina, so you walk in knowing exactly what to expect.