Pre-work and Notes
- Default currency is USD and default time zone is PST (necessary for dates and schedulers).
- Some of the terminology used in this superbadge is descriptive and may not match the name as it appears in the UI. This is to test your knowledge of Salesforce features and to find the correct one to satisfy a business need.
- An opportunity and quote (Q-00015) have been created ahead of time for the final challenge. Do NOT use these records ahead of time otherwise you will likely cause challenge failures.
- Tip: Copy and paste values when they are provided for metadata and record data. This will reduce the chances of typos and misspellings that cause challenge failures.
Sign Up for a Developer Edition Org with Salesforce Billing and Salesforce CPQ
To complete this superbadge, you need a special Developer Edition org that contains Salesforce CPQ, Salesforce Billing and our sample data. Get the free Developer Edition and connect it to Trailhead now so you can complete the challenges in this superbadge.
Even if you've recently signed up for a special Billing-enabled Developer Edition org, sign up for new one now. We're always adding new data. Also note that the managed packages expire after 90 days, so you may need a new org anyway.
- Sign up for a free
Developer Edition org with Salesforce Billing and Salesforce CPQ.
- Fill out the form. For Email, enter an active email address. For Username, enter a username that looks like an email address and is unique, but it doesn't need to be a valid email account (for example,
- After you fill out the form, click Sign me up. A confirmation message appears.
- When you receive the activation email (this might take a few minutes), open it and click Verify Account.
- Complete your registration by setting your password and challenge question. Tip: Write down your username, password, and login URL for easy access later.
- You are logged in to your Developer Edition.
Now connect your new Developer Edition org to Trailhead.
- Make sure you're logged in to your Trailhead account.
- In the Challenge section at the bottom of this page, select Log into a Developer Edition from the picklist.
- On the login screen, enter the username and password for the Developer Edition you just set up.
- On the Allow Access? screen, click Allow.
- On the Want to connect this org for hands-on challenges? screen, click Yes! Save it. You are redirected back to the challenge page and ready to use your new Developer Edition to earn this superbadge.
Now that you have a Salesforce org with these managed packages installed and enabled, you’re good to go.
Ursa Major Solar, Inc. (UMS) has gone through numerous acquisitions and business expansions, and continues to go through even more business transformations. Recently, UMS has decided to move to a subscription-based business model and is introducing new products rapidly to meet market needs. UMS needs the ability to quickly go to market with new products and have peace of mind that its customers will continue to enjoy their experience with UMS. UMS also wants to reduce product catalog complexities that were inherited after the acquisitions.
Because of all these changes, UMS needs a system that will allow the team to accurately quote, order, invoice, and collect payment, and has decided to do all of this within Salesforce using CPQ and Billing. You are a consultant and are now working with UMS to help implement its Salesforce Billing solution. You are responsible for configuring the system to meet its MVP business requirements and help onboard the first customer to use the new system, Cloud Kicks. By the end of the MVP portion of this implementation, UMS will be using Salesforce Billing for invoice generation and collections and sending all transactions downstream to its ERP for other processes, such as financial reporting.
- Weimar Williams (CFO)
- Lincoln Ulrich (account executive)
- Solange Pereira (billing operations specialist)
- James August (controller)
- Maria Jimenez (system administrator)
- Consumption Schedule
- Consumption Rate
- Opportunity Product
- Order Product
Custom Managed Package Objects
- Quote Line
- Invoice Line
- Payment Allocation (Invoice Line)
- Credit Note
- Credit Note Line
- Credit Note Line Allocation
- Debit Note
- Billing Rule
- Revenue Recognition Rule
- Tax Integration
- Tax Rate
- Tax Rule
- Tax Treatment
- Invoice Scheduler
- None required for this Superbadge (only custom objects from managed package)
Product Catalog Configuration for Salesforce Billing
UMS has historically sold one-time (panels for purchase) products with warranty and maintenance support that is charged as a flat fee every month. Weimar Williams, CFO, wants to move the business toward a subscription-based model (rentals) with consumption-based support. Today, UMS has four products that are primarily sold and will be implemented for MVP. These products will be sold a la carte and as monthly and annual subscriptions, consumption, and one-time.
SolarBots (usage) are a new product offering from the SolarBot Industries acquisition. UMS is planning to transition this product to consumption-based during the Billing MVP. This will help UMS charge customers based on what they are actually using.
SolarBots track two different types of usage:
- Level of dust and debris removed from panels reported on a daily basis (measured in Microns ‘µm’; for example, a single-day report of dust and debris removed is 100,000 microns). Any usage reported for dust and debris removed will be invoiced to the customer on a monthly basis.
- Unit of Measure and Matching Attribute are represented as the value Micron.
|Consumption Schedule Name: SolarBot Dust and Debris Removal
||$ 0.01/micron (no limits)
- Panel maintenance requests (measured in requests; that is, a maintenance request is measured as 1 request). Any usage reported against panel maintenance requests will be invoiced to the customer on an annual basis.
- Unit of Measure and Matching Attribute are represented as the value Request.
|Consumption Schedule Name: Panel Maintenance Request
||$500 for up to 10 requests;
For more than 10 requests, the price changes to $35 per request.
Update Page Layouts
Please update the Consumption Schedule object page layout assignment to Billing Consumption Schedule Layout to configure all necessary fields. Add your Unit of Measure picklist values to all objects involved in the auto-mapping process (Consumption Schedule, Quote Line Consumption Schedule, Order Product Consumption Schedule, and Subscription Consumption Schedule). Navigate to the picklist value set for Unit of Measure and add the same values.
Configure Usage Based Pricing
Configure Salesforce CPQ and Billing for Usage Based Pricing and create the rate schedule(s) for SolarBots that will allow UMS to invoice its customers based on what they are consuming. UMS should be able to rate and invoice based on the type of service the customer is using, determined by the business requirements.
Tip: Remember also to add your Unit of Measure picklist values to all objects involved in the auto-mapping process (Consumption Schedule, Quote Line Consumption Schedule, Order Product Consumption Schedule, and Subscription Consumption Schedule). Navigate to the picklist value set for Unit of Measure and add the same values.
Major Solar Panel Rental
UMS is looking for new ways to generate revenue from its famous Major Solar Panels by also providing this product as a subscription. This would allow UMS to reach a wider customer pool and cater to the B2C market. Customers can rent the panels for $200/month, and if a customer keeps renewing the panel longer than 2 years, the business will benefit from higher revenue over time.
|Major Solar Panel Rental
||Monthly in Advance
Applying Estimated and Actual Tax for MVP Customers
Ursa Major Solar needs the ability to calculate tax on orders and invoices in Billing so that information can be communicated to customers in the total amount for payment collection. Solange Pereira, billing operations specialist, wants this process to be automated by the system, and the business needs the estimated and final tax calculations to be based on the shipping address of the account that owns the order.
For the MVP of Billing, UMS needs to be able to apply tax in California, where its customer Cloud Kicks is located. Its shipping address is the same as its billing address, and the California state tax must be set up in order to process orders for invoicing and tax application.
|CA State Tax Treatment
Order Provisioning Process Setup
James August, UMS controller, is concerned about the integrity of data moving from CPQ down to Billing. He wants quotes to be in an Approved status before any orders are generated.
Once quotes are approved, UMS requires orders to be automatically created from quotes, and quotes should split into orders based on the product’s provisioning method. SolarBots are provisioned via their subsidiary, Solar Bot Industries, which is responsible for sending the product(s) to the customer. Warranty and maintenance support and Major Solar Panels will be provisioned internally by the customer service team.
You’ve been tasked with enabling advanced order management and configuring the system to order by the provisioning method assigned to the product. Create Process Builder automation to auto-generate multiple orders when a user manually updates the quote status to 'Approved'.
||Field API Name
Tip: Remember to add the new field API name as a picklist value to the Order By field on the Quote. Also remember to create your custom fields to all objects involved in the auto-mapping process (Product and Quote Line).
|Major Solar Panel
|Major Solar Panel Rental
|Ursa Major Warranty and Maintenance Plan
||Create Order Once Quote Is Approved
||Quote Equals Approved
||Order Equals TRUE
Once an order is generated, the provisioning process has started. As part of the provisioning process orders should be automatically assigned an invoice batch based on the account’s customer priority.
|Account Customer Priority
||White Glove Batch
|Low or Medium
Once product provisioning is complete for an order, a user must manually capture the Provisioning Completion date, and the order should be automatically activated and a contract generated.
Create Process Builder automation to assign the invoice batch when an order is created. Orders must also be activated and contracted when a user manually populates the Provisioning Complete date.
Important: To follow best practices around having the least possible amount of operations in a process, the 3rd criteria should utilize the
'Is Null' operator to set the conditions correctly.
||Field API Name
||Order Invoice Preparation
|1st Criteria Name
||White Glove Customer
|1st Action Name
||Update Invoice Batch
|2nd Criteria Name
|2nd Action Name
||Update Invoice Batch
|3rd Criteria Name
||Has Order Been Provisioned
|3rd Action Name
|4th Action Name
Tip: As a best practice, only create one Process Builder per object. Combine the Process Builder requirements in this section into a single Process Builder for the Order object.
Invoice Record Generation
One of Solange’s biggest complaints about the previous billing system was the number of invoices that would potentially be created for a single customer in a single month. This would confuse the customer and cause an increase in customer support cases. Solange and everyone at UMS are excited to start using Salesforce Billing for its ability to consolidate what the customer owes into a single invoice.
UMS has a requirement to generate invoices on a daily basis to avoid delays. However, they also want to allow their customers to choose which day of the month to receive their invoices. James wants to make sure invoices owned by accounts marked as high priority need to be reviewed prior to posting and collecting payment. All other invoices should be automatically posted to reduce any delays in delivery to the customer.
Create two invoice schedulers to meet the UMS business requirement of creating invoices daily based on two different customer scenarios.
|1st Invoice Schedule Name
||High Priority Customers
|2nd Invoice Schedule Name
Recording and Allocating Payments
UMS allows customers to pay with a variety of payment types, and all payments collected must be recorded manually in SFDC to be used to pay off invoice line balances. UMS allows customers to partially pay invoices and choose which products they want to pay off first. Solange needs the ability to choose which lines a payment will be allocated against.
Recording and Allocating Credit Notes and Debit Notes
UMS has a business requirement where an invoice balance needs to be adjusted after it has been posted. Most commonly, UMS provides incentives (a decrease in balance) for paying off an invoice early, and applies a fee (an increase in balance) for payments received late. For the MVP, Solange needs the ability to address these two most common scenarios and assign a reason code for reporting purposes.
Create a global picklist to capture the reason code for credit notes and debit notes generated in the system.
||Field API Name
|Global Picklist Value Set
Tip: Create the same field on both Credit Note and Debit Note objects.
Onboard Cloud Kicks as MVP Customer for Billing
Now that you’ve configured Salesforce Billing for your MVP go-live, you must onboard the first customer and ensure the solution works as expected per UMS business requirements. Navigate to the Cloud Kicks account and ensure the account record meets the tax requirements stated earlier in this challenge.
Your primary contact from Cloud Kicks, Jack Rogers, is ready to complete an existing quote (Q-00015) and UMS has agreed to provision all products immediately on the same date as the start date of services. Salesforce CPQ has been live for a couple months so the existing quote you will use is (Q-00015). Update the existing quote so orders generated by the quote are split by Provisioning Method and have a start date of today (the day you are completing this challenge).
Important: Remember to review your two orders for accuracy before moving forward with Provisioning Complete to reduce the hassle of needing to delete records later on. It is important to use Q-00015 to pass the final challenge. If needed, you can delete records such as orders to retry the challenge again. You can turn off Triggers in the managed package if you run into validation messages that prevent you from deleting records.
$1,000 credit for panel rentals
Weimar, the CFO, wants to show his appreciation to Cloud Kicks for its business, and would like to provide a $1,000 credit against the first month’s invoice for the panel rentals. In this case, the $1,000 credit is tax exempt and should not be applied.
Jack would like to purchase one SolarBot, ten panels to rent and another ten as assets, and one Ursa Major Warranty and Maintenance Plan on Q-00015.
Cloud Kicks has requested all invoices show the order start date as the billing anniversary day to help align with its Accounts Payable process.
Jack lets Solange know he would like a consolidated invoice for services due today, excluding SolarBots (they’re planning to use more). He’s ready to immediately pay the balance with the included credit, which brings Jack’s payment total to $56,750.
Cloud Kicks uses their SolarBots on day one, which is a huge success for UMS! Cloud Kicks's SolarBot Dust and Debris Removal and Panel Maintenance Request usage:
||Unit of Measure