Quote-to-Cash in Salesforce Revenue Cloud

Build an end-to-end quote-to-cash pipeline in Salesforce Revenue Cloud.

Introduction

30 Second Summary

When a customer says "yes" to buying your product, a chain of business events kicks off. A price becomes a quote, the quote becomes a contract, the contract generates an order, and the order creates a trackable asset.

In this project, you will build this complete quote-to-cash pipeline in Salesforce Revenue Cloud. The hands-on steps cover six of seven domains tested on the Revenue Cloud Consultant certification exam.

What You'll Build

A complete product-to-cash flow in a free Agentforce Revenue Management Developer Edition org, covering catalog setup, CPQ quoting, document generation, contract and order creation, and asset lifecycle tracking.

By the end of this project, you'll have:

  • A configured Revenue Cloud Developer Edition org with a product catalog, pricing strategies, and a custom Product Configurator flow.
  • A completed quote with line items and a generated PDF document using Document Builder.
  • A contract, order, and asset records created from the quote, demonstrating the full product-to-cash lifecycle.
  • An amendment flow on an existing contract with an amended document generated using Context Service and OmniStudio (Secret Mission).

Are there any prerequisites?

You need a free Salesforce Trailhead account and strong familiarity with the Salesforce platform, including Setup, objects, fields, page layouts, and permission sets. No prior Revenue Cloud or CPQ experience is required.

Set Up Your Revenue Cloud Developer Edition Org

Before you can build anything in Revenue Cloud, you need a special Developer Edition org that comes pre-loaded with sample data, products, and all the Revenue Cloud features enabled.

In this step, you will sign up for the free Agentforce Revenue Management Developer Edition org, connect it to your Trailhead account, and run three initialization tasks to get the org ready for configuration.

In this step, get ready to:
  • Sign up for the Agentforce Revenue Management Developer Edition org and verify your account.
  • Connect the new org to your Trailhead account for module challenge verification.
  • Initialize the org by building the product index, syncing pricing data, and refreshing decision tables.
Sign up for the Developer Edition org

This project uses a special Agentforce Revenue Management Developer Edition org, not a standard Salesforce Developer Edition.

The special org comes with Revenue Cloud features, sample products, and preconfigured settings that would take hours to set up manually.

What is Agentforce Revenue Management?

Agentforce Revenue Management is Salesforce's current name for Revenue Cloud. The product has gone through several rebrandings: SteelBrick, Salesforce CPQ, Revenue Lifecycle Management (RLM), and now Agentforce Revenue Management.

You may see any of these names in documentation and the UI. They all refer to the same product family.

  • Open Trailhead in your browser and log in to your Trailhead account.
  • Navigate to any Revenue Cloud Trailhead module, such as the Price Management with Agentforce Revenue Management module.
  • Find the Developer Edition org sign-up link in the module's challenge section and click it to open the sign-up form.
  • Enter your active email address in the Email field.
  • Enter a unique username in the Username field using an email-like format (e.g., yourname@revcloud.example.com).
  • Select United States as the country.

Why United States?

Selecting United States sets your org's default currency to USD. The sample data and pricing in the Developer Edition org are built around USD, so other country selections can cause mismatched data.

  • Click Sign me up.
  • Check your email inbox for the activation email from Salesforce.
  • Click the verification link in the email to activate your account.
  • Set your password when prompted and complete the account setup.
  • Save your username and password in a password manager.

After setting your password, Salesforce redirects you to your new org's home page. You should see the Salesforce Lightning interface with the App Launcher available in the top-left corner.

Didn't receive the activation email?

  • Check your spam or junk folder. The email comes from Salesforce and may be filtered.
  • Make sure you entered a valid, active email address on the sign-up form. If not, submit the form again with the correct email.
  • Wait 5-10 minutes. Activation emails can sometimes be delayed.
  • Help me troubleshoot my Developer Edition org activation email.
Connect the org to Trailhead

Connecting your new org to Trailhead lets you complete hands-on challenges in Revenue Cloud modules directly against your org. This is how Trailhead verifies your work.

  • Go back to the Trailhead module you used to find the sign-up link (e.g., the Price Management with Agentforce Revenue Management module).
  • Scroll down to the challenge section at the bottom of any unit.
  • Click the playground name displayed above the challenge (it may say something like "Trailhead Playground").
  • Click Connect Org.
  • Enter the username and password you just created for the Developer Edition org.
  • Click Allow on the Salesforce access authorization screen.

Trailhead confirms the connection and displays your Developer Edition org name in the challenge section. You are now ready to use this org for Trailhead challenges and the rest of this project.

Connection not working?

  • Make sure you are entering the Developer Edition credentials, not your regular Trailhead login.
  • Verify that your Developer Edition org is fully activated. If you skipped the email verification step, the org will not accept logins.
  • Help me connect my Revenue Cloud Developer Edition org to Trailhead.
Initialize the org

A freshly provisioned Developer Edition org has sample data but needs three initialization tasks before the data is usable. These tasks build the search index, sync pricing calculations, and activate the product filtering rules.

The first task is to build the product index. This index powers the product search and discovery features that you will use when creating quotes later.

  • Click the App Launcher (the grid icon in the top-left corner of Salesforce).
  • Type Product Catalog Management in the search bar and click the result to open it.
  • Click Index and Search Configuration in the navigation.

Seeing an error banner? Don't worry

When you first open the Index and Search Configuration page in a new org, an error banner may appear. This is expected behavior for a fresh org that has not been indexed yet. Dismiss the banner and continue.

  • Click Create Full Index.

The index build may take a moment. Once it completes, the page shows the index status as active.

What is the product index?

Product Catalog Management uses a search index to make products discoverable during the quoting process. Without this index, the product discovery screen in the CPQ flow would return no results.

The second task is to sync pricing data. This loads the pricing calculations that Revenue Cloud's server-side pricing engine uses.

  • Click the gear icon in the top-right corner to open Setup.
  • Type Salesforce Pricing Setup in the Quick Find search box on the left.
  • Click Salesforce Pricing Setup from the search results.
  • Find the Sync Pricing Data section on the page.
  • Click Sync and confirm when prompted.

The sync processes the pricing rules and calculation data. Wait for the confirmation message before moving on.

The third task is to refresh the Decision Tables that control which products appear during product discovery. There are two tables to refresh.

  • In Setup, type Decision Tables in the Quick Find search box.
  • Click Decision Tables from the search results.
  • Open the Product Disqualification decision table.
  • Click Refresh.
  • Go back to the Decision Tables list.
  • Open the Product Qualification decision table.
  • Click Refresh.

What do decision tables do?

Decision tables are part of Revenue Cloud's Business Rules Engine. The Product Qualification table controls which products are visible to sales reps based on context like customer segment or region. The Product Disqualification table hides products that should not be offered.

Refreshing these tables loads the sample rules into memory so they take effect during product discovery.

Seeing errors during initialization?

  • If the pricing sync fails, wait a minute and try again. The org may still be provisioning background services.
  • If you cannot find a Decision Table, double-check your Quick Find search term. Make sure you are searching for exactly "Decision Tables" (plural).
  • If a Refresh button is grayed out, make sure you opened the individual decision table record and are not on the list view.
  • Help me troubleshoot initialization errors in my Revenue Cloud Developer Edition org.

Your org is set up and initialized with sample data ready to explore. Next, you will dive into the product catalog and see how Revenue Cloud organizes products into categories, classifications, and configurable bundles.

Explore the Product Catalog and Configure a Bundle

Your Revenue Cloud org is fully initialized with sample data, a built product index, and synced pricing. Now it's time to explore the product catalog that powers every quote and order in the system.

Before you can configure products or create quotes, you need to understand how Revenue Cloud organizes its catalog. In this step, you'll dig into categories, bundles, and the qualification rules that control what buyers see.

In this step, get ready to:
  • Explore the pre-loaded product catalog including categories, classifications, and product attributes.
  • Examine a product bundle to understand required and optional components.
  • Review the qualification and disqualification decision tables that filter products during quoting.
Navigate the product catalog

Product Catalog Management is the centralized app where all product information lives in Revenue Cloud. It organizes products into categories and classifications, acting as the single source of truth for your entire sales process.

  • Click the App Launcher (the grid icon in the top-left corner of Salesforce).
  • Search for Product Catalog Management and select it from the results.
  • Browse the catalog structure. You'll see categories like Hardware and Software organizing the pre-loaded sample products.
  • Click into a category to see which products are organized underneath it.
  • Click into any product record to examine its detail page.
  • Review the product's attributes, selling model options, and related records on the record page.

What is Product Catalog Management?

  • It's the centralized hub for all product data in Revenue Cloud.
  • Categories and classifications organize products into a browsable hierarchy.
  • When you create a quote later in this project, Revenue Cloud pulls product details directly from this catalog.
  • The better your catalog is organized, the smoother the quoting process becomes.

Can't find Product Catalog Management?

  • Make sure you're searching in the App Launcher (the grid icon), not in Setup's Quick Find box.
  • Verify that you completed the product index build in Step 1. Without the index, the catalog may not display products.
  • If the catalog page shows an error banner, dismiss it and try refreshing the page. Error banners are expected in a newly initialized org.

Help me troubleshoot why Product Catalog Management isn't showing products in my Revenue Cloud Developer Edition org.

Examine a product bundle and its configuration

Bundles are products that group related items together. A Laptop bundle, for example, includes a base model with configurable options like storage capacity and color.

  • In Product Catalog Management, find the Laptop product. The Developer Edition org includes this as a pre-built bundle with configurable options.
  • Click into the Laptop record to open it.
  • Scroll down to the Related tab on the record page.
  • Review the child products listed under the bundle. These are the individual components that make up the Laptop bundle.
  • Examine the Option Constraints section. Constraints define which component combinations are valid.
  • Look at the Attribute Definitions to see what configurable properties (like color or storage) the bundle exposes.

How do bundles work in Revenue Cloud?

  • A bundle defines a parent product with one or more child products underneath it.
  • Required components are automatically included when the bundle is added to a quote.
  • Optional components let the buyer choose extras or upgrades during configuration.
  • Constraints enforce valid combinations. For example, a constraint might prevent selecting two conflicting storage options at the same time.

Why do bundles matter for quoting?

When a sales rep adds a Laptop to a quote in a later step, the Product Configurator flow will use the bundle's child products, constraints, and attributes to guide the rep through selecting valid options. The bundle structure you're looking at right now is what makes that guided configuration possible.

Review qualification rules and decision tables

During the quoting process, not every product in the catalog should be visible to every buyer. Qualification and disqualification rules control which products appear based on context like customer segment or region.

  • Click the Setup gear icon in the top-right corner of Salesforce.
  • In the Quick Find search box, type Decision Tables.
  • Click Decision Tables from the results.
  • Open the Product Qualification decision table.
  • Review the rules inside. These determine which products are eligible to appear when a sales rep browses the catalog during quoting.
  • Navigate back to the Decision Tables list.
  • Open the Product Disqualification decision table.
  • Review how disqualification rules remove specific products from discovery based on conditions.

What do qualification rules do during quoting?

  • Product Qualification rules determine which products appear when a sales rep searches the catalog during the CPQ process.
  • Product Disqualification rules remove specific products from discovery based on conditions like customer segment or region.
  • Both tables run automatically during the product discovery step of quoting. You don't need to trigger them manually.
  • These rules are directly tested on the Revenue Cloud Consultant certification exam under the Catalog Management domain.

Seeing empty decision tables?

  • Make sure you refreshed both the Product Qualification and Product Disqualification tables in Step 1.
  • If the tables appear empty, click Refresh on each table and wait for the process to complete.

Help me troubleshoot empty decision tables in my Revenue Cloud org.

You now have a solid understanding of how Revenue Cloud organizes its product catalog, structures bundles, and filters products with qualification rules. Next up, you'll configure the pricing and selling models that determine how these products are priced on quotes.

Configure Pricing and Selling Models

You now have a solid understanding of how Revenue Cloud organizes products into categories, classifications, and bundles. The next question is: how do those products get priced?

Revenue Cloud uses a server-side pricing engine that calculates prices on the Salesforce platform rather than in the browser. This engine relies on selling models, price book entries, and pricing procedures working together to produce accurate quotes.

In this step, get ready to:
  • Explore selling models and price books to understand how products are priced.
  • Review pricing procedures, Expression Sets, and Decision Tables that power discount logic.
  • Add a Standard Price Book entry to make a product available for quoting.
Explore selling models and price books

Every product in Revenue Cloud needs two things before it can appear on a quote: a selling model that defines how the product is sold, and a price book entry that defines the list price. Let's explore both.

  • Click the App Launcher (the grid icon in the top-left corner of your Salesforce org).
  • Search for and open Products.
  • Click into a product record you explored in the previous step (e.g., the Laptop).
  • Scroll down to the Product Selling Model Options related list on the product record.
  • Review the selling model options listed (e.g., One-Time, Term-Based Monthly, Evergreen).
  • Scroll to the Price Books related list and examine how list prices are defined for this product.

What are selling models?

Selling models define the billing and pricing pattern for a product. Here are the three most common:

  • One-Time means the customer pays a single upfront charge (e.g., purchasing a physical device).
  • Term-Based Monthly means the customer pays a recurring monthly fee for a fixed contract period (e.g., a 12-month software subscription).
  • Evergreen means the subscription renews automatically with no fixed end date until the customer cancels.

Now let's see where all pricing is managed centrally.

  • Click the App Launcher again.
  • Search for and open Price Management.
  • Explore the centralized pricing hub to see how products, price books, and pricing rules come together in one place.

How do products, selling models, and price books relate?

A product defines what you sell. A selling model defines how you sell it (one-time, recurring, or evergreen). A price book entry defines the price at which you sell it.

All three must be in place before a product can appear on a quote. Price Management is where you manage these relationships from a single view.

Configure a pricing adjustment

Revenue Cloud does not calculate prices in the browser like legacy CPQ. Instead, it uses a server-side pricing engine powered by pricing procedures, Expression Sets, and Decision Tables. Let's explore how these components work together.

  • Click the Setup gear icon in the top-right corner of your org.
  • Click Setup from the dropdown menu.
  • Type Salesforce Pricing Setup in the Quick Find search box on the left.
  • Click Salesforce Pricing Setup in the search results.
  • Review the pricing settings available on this page, including the Sync Pricing Data section you used during initialization.

Next, let's look at the rules engine that powers discounts and pricing adjustments.

  • In the Quick Find search box, type Expression Sets.
  • Click Expression Sets to open the list of available expression sets.
  • Explore any expression sets that exist in your org to see how they define pricing formulas and conditions.
  • Go back to the Quick Find box and type Decision Tables.
  • Click Decision Tables and review the tables listed.
  • Click into any discount-related Decision Table to see how it maps input conditions (e.g., product type, quantity) to output values (e.g., discount percentage).

Why does Revenue Cloud use server-side pricing?

Legacy Salesforce CPQ calculated prices in the browser using JavaScript. This worked for simple scenarios but struggled with complex pricing rules and large quote line items.

Revenue Cloud moves all pricing calculations to the Salesforce server using pricing procedures. These procedures call Expression Sets (for formulas) and Decision Tables (for rule-based lookups) to compute final prices. The result is faster performance, better scalability, and centralized pricing logic that is easier to audit and maintain.

What are Expression Sets and Decision Tables?

  • Expression Sets are reusable formulas that evaluate conditions and return values. Think of them as the math engine behind pricing adjustments.
  • Decision Tables are lookup tables that map input values to output values. For example, a Decision Table might say: if the product category is "Hardware" and the quantity is greater than 10, apply a 5% discount.

Together, they form the rules engine that pricing procedures call during quote calculation.

Add a product to a price book

A product without a price book entry cannot appear on a quote. Let's make sure the Tablet product has a Standard Price Book entry so it is available for quoting later.

First, refresh the Price Book Entries Decision Table to ensure the data is current.

  • In Setup, type Decision Tables in the Quick Find box.
  • Click Decision Tables.
  • Find and click Price Book Entries in the list.
  • Click Refresh to ensure the price book data is up to date.

Now navigate to the Tablet product and verify it has a price book entry.

  • Click the App Launcher and search for Products.
  • Open Products and select the All Products list view.
  • Find and click the Tablet product.
  • Scroll down to the Price Books related list on the Tablet record.

I see a Standard Price Book entry

The Tablet already has a Standard Price Book entry with a list price. You are all set. Note the list price value for reference during quoting.

I don't see a Standard Price Book entry

You need to add a Standard Price Book entry so the Tablet can be used in quotes. Follow these steps.

  • Click Add to Price Book (or click Related, then New under the Price Books section).
  • Select Standard Price Book as the Price Book.
  • Enter a List Price value (e.g., 499.00).
  • Click Save.

You should now see the Tablet listed in the Standard Price Book with your list price.

Why do products need price book entries?

A price book entry connects a product to a price book with a specific list price. Without this connection, the product exists in the catalog but has no price and cannot be added to a quote.

The Standard Price Book is the default price book in every Salesforce org. Products must have a Standard Price Book entry before they can be added to any custom price books.

Don't see the Add to Price Book option?

  • Make sure you are on the product record's Related tab, not the Details tab.
  • Check that the Active checkbox is selected on the product record. Inactive products cannot be added to price books.
  • If you still have trouble, help me add a product to the Standard Price Book in my Revenue Cloud org.

Your products are priced and ready to go. In the next step, you will customize the Product Configurator flow that controls how products are configured during quoting.

Configure Products with the Product Configurator

Your pricing is set up with selling models and price book entries ready to calculate product prices. The next piece of the puzzle is controlling how sales reps configure products during the quoting process.

When a rep adds a complex product like a bundle to a quote, they need a guided experience to select valid options. Revenue Cloud's Product Configurator flow provides this guided experience, and you'll customize it in this step.

In this step, get ready to:
  • Clone the default Product Configurator flow into a custom version.
  • Customize the attribute display layout and activate the flow.
  • Assign the Laptop product to your custom configurator.
Clone the default Product Configurator flow

Revenue Cloud ships with a default Flow Builder flow that controls the product configuration experience. Salesforce locks this default flow from direct edits, so the first step is to clone it.

  • Open Setup by clicking the gear icon in the top-right corner of Salesforce.
  • Type Flows in the Quick Find search box on the left sidebar.
  • Click Flows under Process Automation.
  • Find and click Default Product Configurator Flow to open it in Flow Builder.
  • Click Save As (not Save) in the top-right area of the Flow Builder toolbar.
  • In the dialog, select Save As New Flow.
  • Set the Flow Label to Demo Product Configurator Flow.
  • Leave the API Name as the auto-populated value.
  • Click Save.

Flow Builder reloads with your new cloned flow open for editing.

Why clone instead of editing the default?

Salesforce locks the default Product Configurator flow to protect it from accidental changes. Cloning gives you a safe copy to customize without breaking the original.

In real-world implementations, teams often maintain multiple configurator flows for different product families.

Don't see Save As?

Make sure you opened the Default Product Configurator Flow specifically, not a different flow. If the flow opened in read-only mode, look for the Save As option in the toolbar dropdown instead of the main Save button.

Help me find the Save As option in Flow Builder.

Customize the configurator layout and activate

The default configurator displays product attributes in a single column. Switching to a two-column layout makes the configuration screen more compact and easier to scan.

  • In Flow Builder, click the S01_ProductConfiguratorUI screen element on the canvas to open it.
  • In the element editor, select the Product Configurator Product Attributes S01_AttributesPanel component.
  • In the Properties panel on the right, find Attribute Display Columns.
  • Change the value from 1 to 2.
  • Click Done to close the element editor.
  • Click Save in the Flow Builder toolbar.
  • Click Activate to make your flow available for use.

You should see a green confirmation message and the flow status change to Active in the Flow Builder header.

What does this customization do?

The S01_AttributesPanel component controls how product attributes (like color, storage, warranty options) are displayed when a sales rep configures a product.

Setting columns to 2 puts two attribute fields side-by-side instead of stacking them vertically. This reduces scrolling and lets reps see more options at a glance.

Can't find S01_ProductConfiguratorUI?

Make sure you are editing your cloned Demo Product Configurator Flow, not the original default flow. The screen element should be visible on the flow canvas as a rectangular node labeled S01_ProductConfiguratorUI.

Help me find the S01_ProductConfiguratorUI element in my flow.

The flow is active, but Revenue Cloud still needs a record that links the flow to the product configuration process. You'll create that record now.

  • Open the App Launcher (the nine-dot grid icon in the top-left corner).
  • Search for and select Product Configuration Flows.
  • Click New.
  • Set the Flow Identifier to Demo_Product_Configurator_Flow.
  • Set the Status to Active.
  • Click Save.

You should see your new Product Configuration Flow record with the status showing as Active.

What is a Product Configuration Flow record?

The Product Configuration Flow record is the bridge between the Flow Builder flow you cloned and the Revenue Cloud quoting process. The Flow Identifier must match the API name of your activated flow so Revenue Cloud knows which flow to launch during product configuration.

Assign the Laptop product to your configurator flow

Creating the flow and the flow record is not enough on its own. You need to explicitly assign individual products to a configurator flow so Revenue Cloud knows which flow to launch for each product.

  • Open the App Launcher and search for Product Configuration Flows.
  • Click into your Demo_Product_Configurator_Flow record.
  • Click the Related tab on the record page.
  • In the Product Configuration Flow Assignment related list, click New.
  • In the Product field, search for and select Laptop.
  • Click Save.

You should see the Laptop listed in the Product Configuration Flow Assignment related list on your flow record.

What happens during quoting now?

When a sales rep selects the Laptop product during the quoting process, Revenue Cloud looks up the flow assignment and launches your custom Demo Product Configurator Flow. The rep sees product attributes displayed in your two-column layout instead of the default single column.

Products without a flow assignment either use a system default or skip the configurator entirely, depending on the org's settings.

Don't see the Product Configuration Flow Assignment related list?

Make sure you are on the Related tab of the Product Configuration Flow record, not the Details tab. If the related list is still missing, your page layout may need to be updated to include it.

Help me find the Product Configuration Flow Assignment related list.

Your custom Product Configurator is wired up and ready to go. Next up, you'll put it to the test by walking through the full CPQ process to discover products, configure them, and create a quote.

Create a Quote Through the CPQ Process

Your custom Product Configurator flow is active and assigned to the Laptop product. All of the catalog, pricing, and configurator work from the previous steps is about to come together.

In this step, you'll walk through the complete CPQ (Configure, Price, Quote) flow. This is the heart of Revenue Cloud, connecting the product catalog, pricing engine, and configurator into a single guided experience that produces an accurate quote.

In this step, get ready to:
  • Create a new quote record linked to a sample Account.
  • Discover and configure the Laptop product using your custom Product Configurator flow.
  • Review dynamically calculated pricing and finalize the quote.
Create a sales transaction

Revenue Cloud uses sales transactions as the container for the entire quoting process. Creating one links your quote to a customer Account and establishes the context that the pricing engine and product discovery use throughout the flow.

  • Click the App Launcher (the grid icon in the top-left corner of Salesforce).
  • Search for Quotes and select it from the results.

Pro tip: Sales Transactions label

Depending on your org's configuration, this object may appear as Sales Transactions instead of Quotes. Both refer to the same underlying object.

  • Click New to create a new quote record.
  • In the Account field, search for and select an existing Account from the pre-loaded sample data.
  • Click Save.

You should see your new quote record page with the Account you selected and an empty set of line items.

What is a sales transaction?

A sales transaction is Revenue Cloud's wrapper around the quoting process. It stores the customer context (the Account), all the configured line items, and the pricing calculations. Every step that follows in the CPQ flow writes back to this single record.

Don't see Quotes in the App Launcher?

  • Try searching for Sales Transactions instead. The label varies by org configuration.
  • Make sure you are in the Revenue Cloud app, not the standard Sales app. Check the app name in the top-left corner of Salesforce.
  • If neither label appears, check that your user has the correct Revenue Cloud permission sets assigned.

Why can't I find the Quotes or Sales Transactions object in my Revenue Cloud Developer Edition org?

Discover and configure products

With your quote record created, you can now browse the product catalog directly from the quote. Revenue Cloud's product discovery filters the catalog using the qualification rules you explored in Step 2.

  • On your quote record, click the Configure Products action button in the highlights panel or the actions dropdown menu.

The product discovery experience launches. This is where the product index, qualification rules, and Decision Tables work together to show you only the products that are valid for this transaction.

  • Browse the product catalog or use the search bar to find the Laptop product.
  • Select the Laptop product to begin configuration.

The Product Configurator flow you created in Step 4 launches automatically because you assigned it to the Laptop product.

  • Walk through the configurator screens, selecting configuration options such as color and storage capacity.
  • Observe how the pricing updates dynamically as you make each selection.
  • Once you are satisfied with your configuration, click Add (or Add to Quote) to add the configured Laptop to your quote.

You should be returned to your quote record with the Laptop now listed as a quote line item.

What's happening behind the scenes?

  • When you selected the Laptop, Revenue Cloud detected your custom Product Configuration Flow assignment from Step 4.
  • The configurator presented the bundle's configurable attributes in the two-column layout you set up earlier.
  • As you selected options, the server-side pricing engine recalculated the price in real time using the selling model and price book entries.

Why server-side pricing instead of browser-based?

Revenue Cloud's pricing engine runs entirely on the server, powered by Expression Sets and Decision Tables. Legacy CPQ calculated prices in the browser, which caused performance issues with large quotes. Server-side pricing scales better and produces consistent results regardless of the user's device.

Laptop not showing in product discovery?

  • Verify the product index was built in Step 1. Go to Product Catalog Management and check the index status under Index and Search Configuration.
  • Confirm that the Laptop has a Standard Price Book entry. Products without price book entries do not appear during discovery.
  • Check that the Product Qualification and Product Disqualification decision tables were refreshed in Step 1. Stale decision tables can hide valid products.

Why can't I find the Laptop product during product discovery on my Revenue Cloud quote?

Review pricing and finalize the quote

Your quote now has at least one configured line item. Before moving to document generation in the next step, review the pricing to confirm everything is accurate.

  • On your quote record, scroll down to the Quote Line Items related list.
  • Click into a line item to review how the pricing engine applied the selling model, list price, and any pricing adjustments.

What should I see on the line item?

Each quote line item shows the product name, quantity, selling model (e.g., One-Time or Term-Based Monthly), the list price from the Standard Price Book, and the total calculated price. If you configured bundle options like storage upgrades, those appear as child line items under the parent Laptop record.

  • Navigate back to your quote record.
  • To see multi-line quoting in action, click Configure Products again and add another product from the catalog (e.g., the Tablet product or another item that has a price book entry).
  • Review the total pricing summary on the quote record to confirm the totals reflect all line items accurately.

How does Revenue Cloud calculate pricing?

Revenue Cloud's pricing procedures combine several inputs to compute the final price. The selling model determines the pricing cadence (one-time, monthly, or evergreen). The price book entry supplies the list price. Expression Sets and Decision Tables apply discount logic and pricing adjustments.

All of this runs server-side on every product selection or configuration change. The result is a consistent, auditable pricing calculation that scales to large quotes without browser performance issues.

Pricing looks incorrect or shows zero?

  • Make sure you synced pricing data in Step 1 via Setup > Salesforce Pricing Setup > Sync Pricing Data.
  • Verify that the product has a valid Standard Price Book entry with a non-zero list price.
  • Check that the Price Book Entries decision table was refreshed in Step 1. Stale pricing data can cause zero or incorrect totals.

Help me troubleshoot why my Revenue Cloud quote is showing zero or incorrect pricing.

Your quote is complete with configured products and calculated pricing. Next, you'll generate a professional quote PDF using Document Builder.

Generate a Quote PDF with Document Builder

Your quote has line items, pricing, and a confirmed total ready for a customer. The next step is turning that data into a professional PDF document you can share.

Document Builder is Revenue Cloud's native, no-code tool for generating quote PDFs. In this step, you will enable it, create a template, and generate your first document.

In this step, get ready to:
  • Enable Document Builder and assign the required permission set.
  • Create and activate a quote document template.
  • Generate a quote PDF from your finalized quote.
Enable Document Builder

Document Builder needs to be enabled in your org's Revenue Settings before you can create templates or generate PDFs. You also need a specific permission set assigned to your user.

  • Click the gear icon in the top-right corner of your Salesforce org to open Setup.
  • Search for Revenue Settings in the Quick Find box.
  • Click Revenue Settings.
  • Find the Document Builder setting and toggle it to Enabled.
  • Refresh the Setup page to ensure the change takes effect.

Don't see the Document Builder toggle?

  • Transaction Management may need to be enabled first. Check that it is toggled on in the same Revenue Settings page.
  • Make sure you are in Setup (not the App Launcher). Search for Revenue Settings in the Quick Find box.
  • Verify you are using the Agentforce Revenue Management Developer Edition org, not a standard Developer Edition.
  • I can't find the Document Builder toggle in Revenue Settings. How do I troubleshoot this?

Now assign the required permission set to your user.

  • In Setup, search for Users in the Quick Find box.
  • Click Users under the Administration section.
  • Click your username to open your user record.
  • Scroll down to Permission Set Assignments and click Edit Assignments.
  • Find Document Builder User in the available list and select it.
  • Click Add, then click Save.

Why do I need this permission set?

The Document Builder User permission set grants access to create templates and generate PDF documents. Without it, the Document Builder features are not visible to your user.

Can't find Document Builder User?

  • Make sure you are searching in the Available Permission Sets list, not the already-assigned list.
  • If it does not appear at all, Document Builder may not be fully enabled. Go back to Revenue Settings and confirm the toggle is on, then refresh and try again.
  • The Document Builder User permission set is not showing up. What should I do?
Create a quote document template

With Document Builder enabled, you can create a template that defines the layout and content of your quote PDFs. Revenue Cloud includes a Default Quote Template as a starting point.

  • In Setup, search for Document Builder in the Quick Find box.
  • Click Document Builder.
  • Click New Template.
  • Enter Standard Quote Template in the Name field.
  • Select Quote as the object.
  • Choose Default Quote Template as your starting point.

The template editor opens with a drag-and-drop interface. The Default Quote Template already includes several pre-built components you can customize.

What components are available?

  • Company Details displays your company name and address. This component pulls data from the running user's record, not from Setup > Company Information.
  • Quote Line Items lists the products, quantities, and pricing from your quote.
  • Rich Text lets you add static content like terms and conditions.
  • Image lets you upload a company logo or other graphics.
  • Other components include Related Record Table, Grid (12-column layout), Quote Line Groups and Items, and Page Numbers.
  • Explore the template layout and customize the components as you like.
  • Click Save.
  • Click Activate.
  • Click Assign as Org Default.

You should see your Standard Quote Template listed with an Active status and marked as the org default.

Why assign as org default?

Document Builder currently supports only one active template. The Generate PDF Document button on the quote record always uses the org default template. Assigning your template as the org default ensures it is used when you generate PDFs.

Template not showing as active?

  • Make sure you clicked both Activate and Assign as Org Default as separate actions.
  • If the template did not save, check that you selected Quote as the object and entered a template name.
  • My Document Builder template is not activating or not showing as org default. How do I fix this?
Generate and preview the quote PDF

Before you can generate a PDF from a quote record, you need to add the Generate PDF Document button and the Quote PDFs related list to the Quote page layout.

  • In Setup, search for Object Manager in the Quick Find box.
  • Click Object Manager.
  • Search for Quote and click it.
  • Click Page Layouts in the left sidebar.
  • Click the quote page layout name to open the layout editor.
  • In the palette at the top, click Mobile & Lightning Actions.
  • Drag the Generate PDF Document button into the Salesforce Mobile and Lightning Experience Actions section of the layout.
  • Scroll down to the Related Lists section of the layout.
  • Drag Quote PDFs into the Related Lists section.
  • Click Save.

What did I just change?

Adding the Generate PDF Document button makes it available as an action on every quote record. Adding the Quote PDFs related list gives you a place to view and access all generated PDF documents directly from the quote.

Now navigate to your quote record to generate the PDF.

  • Click the grid icon in the top-left corner to open the App Launcher.
  • Search for Quotes and click it.
  • Open the quote record you created in the previous step.
  • Click Generate PDF Document from the actions menu at the top of the record.

Pro tip: Finding the button

If you do not see Generate PDF Document in the visible actions, click the dropdown arrow on the actions bar to reveal additional actions.

  • Click Preview PDF to review the document before saving.
  • Click Create PDF to save the document to the quote record.

Scroll down on your quote record to the Quote PDFs related list. You should see your generated PDF document listed there.

  • Click the PDF in the Quote PDFs related list to open and review it.

Pro tip: Check Company Details

The Company Details component in your PDF pulls data from your user record, not from the org's Company Information in Setup. If you see missing or incorrect company details, update the Company Name and Address fields on your user record.

Don't see the Generate PDF Document button?

  • Go back to Object Manager, open Quote, click Page Layouts, and verify the button is in the Salesforce Mobile and Lightning Experience Actions section.
  • Refresh your quote record page after saving the layout changes.
  • Verify that Document Builder is enabled in Revenue Settings and the Document Builder User permission set is assigned to your user.
  • The Generate PDF Document button is not showing on my quote record. What should I check?

Your quote now has a professional PDF attached and ready to share. Next, you will convert this quote into a contract and order to complete the downstream lifecycle in Revenue Cloud.

Generate a Contract, Order, and View Assets

Your quote PDF is ready to share with a customer. In the last step, you used Document Builder to generate a professional document from your finalized quote.

A polished quote is only the beginning of closing a deal. The customer needs a formal contract, your fulfillment team needs an order, and your systems need to track what the customer now owns.

In this step, you will convert your quote into a contract, generate an order, and see how Revenue Cloud automatically creates asset records. This is the core of the quote-to-cash lifecycle.

In this step, get ready to:
  • Create a contract from your finalized quote.
  • Generate an order from the contract.
  • View asset records automatically created from order products.
Create a contract from the quote

When a customer agrees to a quote, the next step is formalizing it as a contract. Revenue Cloud's contract creation pulls all the relevant details from your quote automatically, so you do not have to re-enter anything.

  • Navigate to your quote record (the one you created and finalized in Step 5).
  • Click the dropdown arrow next to the action buttons at the top of the quote record to reveal additional actions.
  • Select the Create Contract action.
  • Follow any prompts to confirm the contract creation.

Salesforce generates a contract record and links it to the same account as your quote.

  • Open the newly created contract record.
  • Review the Status field to confirm it reflects a newly created contract.
  • Check the Contract Term and Contract Start Date fields to verify the term dates.
  • Scroll down to the contract line items section to confirm that the pricing, products, and account information carried over from your quote.
  • Check the Auto-Renewal settings if visible on the record.

What carries over from the quote?

Revenue Cloud copies key information from the quote into the contract automatically. This includes:

  • All quote line items with their configured products and calculated pricing.
  • Account information linking the contract to the customer.
  • Term dates and renewal settings based on the selling model.

This is the native Salesforce Contracts functionality built directly into Revenue Cloud. No manual data entry is needed.

Don't see a Create Contract action?

  • Make sure you are on the correct quote record. The contract action is only available on a finalized quote.
  • Click the dropdown arrow next to the visible action buttons. The action may be hidden under the overflow menu.
  • If the action is still missing, the page layout may need updating. Go to Setup, open Object Manager, find the Quote object, and check that the contract creation action is included in the page layout.

Help me troubleshoot the missing Create Contract action on my Revenue Cloud quote record.

Generate an order from the contract

With a contract in place, the next step is generating an order. Orders represent the fulfillment side of the deal. They tell your operations team exactly what to deliver.

  • On the contract record, click the dropdown arrow next to the action buttons.
  • Select the action to generate an order (e.g., Create Order or Generate Order).
  • Follow any confirmation prompts to complete the order creation.

Salesforce generates an order record linked to your contract.

  • Open the newly created order record.
  • Scroll down to the Order Products related list.
  • Verify that the order products match the contract line items. Each product from the contract should appear as an order product with the same pricing.

What is the relationship chain?

You have now built the full conversion chain that Revenue Cloud manages:

  • Quote captures the customer's product selections and pricing.
  • Contract formalizes the agreement with terms and conditions.
  • Order triggers fulfillment of what was agreed upon.
  • Order Products are the individual line items on the order.

Revenue Cloud's Dynamic Revenue Orchestrator can further decompose orders into fulfillment plans. This is how complex, multi-step delivery workflows are managed in production environments.

Order not generating?

  • Confirm your contract record has a valid status. Some statuses may prevent order generation.
  • Check that the contract has line items. An empty contract cannot produce an order with products.
  • Look for the action in the dropdown overflow menu. It may not be visible among the primary action buttons.

Help me troubleshoot order generation from my Revenue Cloud contract.

View asset creation and lifecycle

When an order is processed, Revenue Cloud automatically creates asset records. Assets represent what the customer now owns or subscribes to. They are the foundation for future renewals, amendments, and cancellations.

  • Navigate to the Account record associated with your quote. You can find it by clicking the Account name on the contract or order record.
  • Scroll down to the Assets related list on the Account record.
  • Verify that asset records appear corresponding to the products on your order.

Each asset record is created from an order product. You should see an asset for each product line on your order.

  • Click into one of the asset records to open it.
  • Review the Lifecycle Status field. This tracks the current state of the asset (e.g., active, expired, cancelled).
  • Check the product details to confirm they match what was configured and priced on the original quote.
  • Look for subscription-related fields such as term dates and renewal information.

Why do assets matter?

Assets are the starting point for the entire Asset Lifecycle Management system in Revenue Cloud. Every future action on a customer's subscription flows through assets:

  • Renewals extend existing subscriptions when a term ends.
  • Amendments modify products or quantities mid-term (you will explore this in the Secret Mission).
  • Cancellations terminate assets and trigger prorated credit calculations.

Asset Management accounts for 16% of the Revenue Cloud Consultant exam. The asset records you just viewed are the same records tested in exam scenarios.

No assets appearing on the Account?

  • Make sure you are looking at the correct Account. Open the Account directly from the contract or order record to be sure.
  • Check that the order has been activated. Assets are typically created when the order reaches an activated status.
  • If the Assets related list is not visible, the Account page layout may need updating. Go to Setup, open Object Manager, find Account, and add the Assets related list to the layout.

Help me figure out why asset records are not showing on my Account in Revenue Cloud.

You now have the complete conversion chain in place: quote to contract to order to assets. Next up, you will generate a contract document using Context Service and OmniStudio Document Generation, the more advanced template-based approach to document creation.

Generate a Contract Document Using Context Service

In Step 6, you generated a quote PDF using Document Builder. That approach works well for standard, no-code documents.

Real-world contracts often pull data from multiple related objects and need conditional logic that Document Builder cannot handle. Context Service with OmniStudio Document Generation solves this by reusing the same context definitions that power your pricing engine to merge data into Word templates.

In this step, get ready to:
  • Enable Document Generation and create a configuration record.
  • Explore the SalesTransactionContext definition and create a Word template with Context Service tokens.
  • Generate a contract document and compare this approach to Document Builder.
Enable Document Generation and configure settings

Before you can use Context Service for document generation, you need to enable the feature and create a configuration record that tells Salesforce how to generate your documents.

  • In Setup, search for Document Generation in the Quick Find box.
  • Click General Settings under Document Generation.
  • Toggle Design Document Templates to Enabled.

What does this setting do?

Enabling Design Document Templates activates the Document Template Designer tool. This gives you access to create and manage Word-based templates that use Context Service tokens to pull data from your Salesforce records.

Now you need to create a Document Generation configuration record that defines how documents are produced.

  • In Setup, navigate to Document Generation Settings (under the Document Generation section).
  • Click New to create a new configuration record.
  • Set the Label to DocGen.
  • Set Template Library to DocgenDocumentTemplateLibrary.
  • Set Generation Mechanism to Server-Side.
  • Set Preview Type to PDF.
  • Click Save.

Why server-side generation?

Context Service only supports server-side document generation. If you need client-side generation (synchronous, triggered from an OmniScript), you would use the older Data Mapper approach instead. Server-side generation runs asynchronously, which makes it better suited for complex, multi-object documents like contracts.

You should see your new DocGen configuration record listed in the Document Generation Settings page.

Don't see the Document Generation option in Setup?

Make sure you are in the Agentforce Revenue Management Developer Edition org, not a standard Developer Edition. Document Generation requires OmniStudio, which comes pre-installed in the Revenue Cloud Developer Edition.

If you still cannot find it, try searching for OmniStudio Settings in Setup to confirm OmniStudio is available in your org. Help me find Document Generation settings in my org.

Explore the Context Definition and create a template

Context Definitions are reusable data schemas in Revenue Cloud. The same SalesTransactionContext definition that powers your pricing procedures can also feed data into document templates.

  • In Setup, search for Context Definitions in the Quick Find box.
  • Find and click into the SalesTransactionContext definition.
  • Explore the nodes and fields defined within the context. Note how it includes transaction-level data, line items, pricing details, and related account information.

What is a Context Definition?

A Context Definition is a reusable data schema that describes which Salesforce objects and fields are available for a given process. Revenue Cloud uses it for pricing calculations, and you can leverage the same definition for document generation. This means your contract documents can access the same rich data that your pricing engine uses, without building a separate data mapper.

Context Service templates in Developer Edition

The SalesTransactionContext definition should exist in your Revenue Cloud Developer Edition org because it powers pricing procedures. If you do not see it listed, verify that you completed the pricing sync step from Step 1. The exact template setup flow may vary slightly depending on your org's configuration.

Now you will create a Word document template with Context Service tokens and upload it using the Document Template Designer.

  • Open Microsoft Word (or a compatible editor that saves .docx files) on your computer.
  • Create a new document with a heading like "Contract Agreement" at the top.
  • Add tokens for contract fields using double curly braces. Include tokens for the contract number, account name, and a table for line items.

Your Word template should look something like this:

CONTRACT AGREEMENT

Contract Number: {{ContractNumber}}
Account Name: {{Account.Name}}
Start Date: {{StartDate}}
End Date: {{EndDate}}

Line Items:
| Product | Quantity | Total Price |
|---------|----------|-------------|
| {{#LineItems}}{{ProductName}} | {{Quantity}} | {{TotalPrice}}{{/LineItems}} |

What are these tokens?

The double curly brace tokens (e.g., {{ContractNumber}}) are placeholders that Context Service replaces with actual data from your Salesforce records at generation time. The {{#LineItems}}...{{/LineItems}} syntax creates a repeating section for each line item on the contract.

The exact token names available depend on the fields defined in your SalesTransactionContext definition. Use the node and field names you observed when exploring the context definition.

  • Save the Word document to your Desktop as contract-template.docx.
  • Back in Salesforce, open the App Launcher and search for Document Template Designer.
  • Click New Template.
  • Select Word as the template type.
  • Set the Token Mapping Method to Context Service.
  • Select SalesTransactionContext as the Context Definition.
  • Upload your contract-template.docx file.
  • Click Save.

You should see your new template listed in the Document Template Designer with a status indicating it is ready for use.

Template upload failing?

Make sure your file is saved as .docx format (not .doc or .pdf). OmniStudio Document Generation supports .docx, .pptx, and .pdf formats as input. Also verify you have the DocGen Designer permission set assigned to your user. Help me troubleshoot my template upload.

Generate the contract document

With your template uploaded and Context Service configured, you can now generate an actual contract document from your contract record.

  • Navigate to the contract record you created in Step 7.
  • Use the document generation action on the contract record. Look for a Generate Document action in the record's action menu, or trigger it via a Flow that references your Context Service template.
  • Select your uploaded contract template when prompted.
  • Wait for the server-side generation to complete. Since this runs asynchronously, it may take a few moments.
  • Once generation completes, check the contract record's Notes and Attachments or Files related list for the generated PDF.
  • Open the generated document and verify that the contract number, account name, and line items are populated with actual data from your contract record.

What happened behind the scenes?

When you triggered document generation, the system used the SalesTransactionContext definition to pull contract data from Salesforce. It merged that data into the token placeholders in your Word template. Finally, it converted the populated document into a PDF and attached it to the contract record.

Document Builder vs Context Service: when to use which?

  • Document Builder is the no-code, drag-and-drop solution. It works best for standard quote PDFs with a predictable layout. It currently supports only one active template (the org default).
  • Context Service is the advanced, template-based approach. It supports complex, multi-object documents with repeating sections, conditional logic, and custom Word formatting. It requires more setup but offers far greater flexibility.
  • On the Revenue Cloud Consultant exam, you need to know when each approach is appropriate. Context Service is the right choice for contracts and complex documents. Document Builder fits standard quotes.

Document not appearing in Files?

Server-side generation runs asynchronously. Refresh the contract record page after 30-60 seconds. If the document still does not appear, check that your DocGen configuration record has the Generation Mechanism set to Server-Side and the Preview Type set to PDF. Also verify that the template tokens match field names in the SalesTransactionContext definition. Help me debug my contract document generation.

You now have both document generation approaches working in your org. You have completed the full quote-to-cash lifecycle, from product catalog through pricing, quoting, contracts, orders, assets, and document generation. Next up is a challenge that extends your skills into the contract amendment domain.

Secret mission

Set Up an Amendment Flow and Generate an Amended Document

Your quote-to-cash flow is complete, but real-world contracts rarely stay the same. Extend your Revenue Cloud skills by setting up an amendment flow on an existing contract. Then generate an amended contract document that clearly shows what changed.

Before you go

Clean Up Your Resources

Decide whether to keep your resources running, pause them to come back later, or delete them entirely. This project uses a free Agentforce Revenue Management Developer Edition org with no ongoing costs, so there is no billing risk if you leave everything in place.

Resources you used:

  • Agentforce Revenue Management Developer Edition org (free, cloud-hosted).
  • Trailhead account connected to the Developer Edition org.
  • Demo Product Configurator Flow and Product Configuration Flow record.
  • Quote, contract, order, and asset records created during the CPQ flow.
  • Document Builder template (Standard Quote Template) and generated quote PDF.
  • Document Generation configuration record and Context Service document template.
  • Local .docx template file created in Microsoft Word.

Keep everything running

No action needed. Choose this if you are still actively building or plan to continue exploring Revenue Cloud features right away.

  • Your Developer Edition org does not expire and has no ongoing costs.
  • All records, flows, templates, and configuration changes will remain in place.
  • Keep your login credentials saved in a password manager for easy access later.

Pause - I'll come back to this later

Log out and close your browser tabs. Your org and all its data will be waiting for you when you return.

  • Log out of your Developer Edition org.
  • Close any open Salesforce Setup or App Launcher tabs in your browser.
  • Keep the local .docx template file on your machine in case you want to edit and re-upload it later.
  • Confirm your login credentials are saved. Developer Edition orgs may deactivate after extended periods of inactivity, so logging in periodically keeps the org active.

Delete - I don't want to use this again

Remove all project resources and start fresh. Since the Developer Edition org is free and self-contained, deletion is straightforward.

  • To remove records inside the org, delete the quote, contract, order, and asset records you created. Deactivate the Demo Product Configurator Flow from Setup. Delete the Document Builder template and Document Generation configuration record.
  • To disconnect from Trailhead, go to your Trailhead profile, find the connected org, and disconnect it.
  • To fully abandon the org, simply stop logging in. Salesforce will eventually deactivate inactive Developer Edition orgs automatically.
  • Delete the local .docx template file from your machine if you no longer need it.

Mission accomplished

That's a Wrap!

Nice work! You just built a complete end-to-end quote-to-cash pipeline in Salesforce Revenue Cloud (Agentforce Revenue Management). From a freshly provisioned Developer Edition org all the way through to generated contract documents, you now have hands-on experience with the core lifecycle that powers real-world Revenue Cloud implementations.

Here is what you accomplished:

  • Configured a product catalog with bundles, pricing, and a custom Product Configurator flow, then used the full CPQ process to create a quote with dynamic pricing.
  • Generated a professional quote PDF using Document Builder and a contract document using Context Service with OmniStudio Document Generation, covering both native and advanced document generation approaches.
  • Converted a quote into a contract, generated an order, and viewed the resulting asset records that represent the customer's purchased products.
  • Set up a contract amendment flow on an existing asset and generated an amended contract document reflecting the mid-term changes.

This project touched six of the seven Revenue Cloud Consultant certification exam domains: Platform Concepts, Catalog Management, CPQ, Contracts and Orders, Asset Management, and Invoice Management foundations. The hands-on experience you built here maps directly to the scenarios you will encounter on the exam and in real-world implementations.

Ready to quiz yourself?