Overview
The Salesforce Revenue Management Integration provides a wealth of insights to help you manage and improve the health of your business.
- View current customer revenue, products purchased, and contract terms
- Manage renewal and post-sales opportunities, forecasts, and workflow
- Gain visibility into the health of renewals across your business
The following topics are covered in this article
- Features and Functionality
- Terminology
- Prerequisites
- Step 1: Integrations Configuration Page
- Step 2: Field Mappings
- Step 2a: Field Mappings - Contracts (Opportunities)
- Step 2b: Field Mappings - Contract Line Items
- Step 3: Product List and Product External IDs
- Step 4: Pull One Contract from Salesforce
- Step 5: Sync Filter
- Step 6: Stage Mappings
- Step 7: Sync Direction and Sync Frequency
- FAQs
Features and Functionality
- Out-of-the-box support for mapping to Salesforce Opportunity and Opportunity Line Items
- Support for one or many products per contract
- Bi-directional sync configurable at the field level
- Sync forecast, closed, terminated, and historical subscription information
- Support for custom stage names to indicate Booked, Lost, or Forecasted revenue
- Safety protocols ensure records in your Salesforce CRM are NOT deleted
Terminology
The Salesforce Opportunity object is typically used to track deals through to a Closed stage. The Contract module is the ClientSuccess version of the Salesforce Opportunity object.
The Salesforce Opportunity Line Item object can be used to track products which are added to a particular Opportunity. The Contract Line Items module in ClientSuccess is most similar to Opportunity Line Items in Salesforce.
Salesforce Object |
ClientSuccess Module |
Purpose |
CS Module Required |
Opportunity |
Contract |
Track and manage contracts and deals. Details include assigned account, stage, and relationships. |
Yes |
Opportunity Line Item |
Contract Line Item |
Track and manage multiple products associated with a particular contract. Details include types of products and respective prices.
|
No |
A standard Salesforce implementation has a one-to-many relationship between Accounts and Opportunities and a one-to-many relationship between Opportunity and Opportunity Line Items
Here is an example of a Salesforce Opportunity with Opportunity Line Items (in red square).
NOTE: The Salesforce Contract object is not equivalent to Contracts in ClientSuccess. The Salesforce Contract object is not typically used as part of this integration.
Prerequisites
- ClientSuccess maps to the standard Salesforce Opportunity and Opportunity Line Item object by default. Please contact your CSM if your contracts/deal information is on a different object. Implementing with a non-standard Salesforce object may require you to make configuration changes to your Salesforce instance.
- If multiple products per contract are required, both Opportunity and Opportunity Line Item mappings are required. The Opportunity Line Item object is a separate, child object for product line items.
- The following data elements are required on contracts brought over from Salesforce
- Contract start dates and end-dates.
- Close dates
- Revenue amount
- Stage
- Products including product ID
- Quantity
- Your product list in Salesforce must be entered in ClientSuccess before contracts are imported. Please see step “Product List and Product External IDs” for more information.
Step 1: Integrations Configuration Page
In this step, you will set-up the mapping between the ClientSuccess and Salesforce objects. Please review Salesforce Integrations Configuration for a general overview of how to use this page.
- Ensure you have authenticated to Salesforce via ClientSuccess
- Let your CSM know that you would like to use the new Revenue Management module. They will make sure your tenant is configured appropriately.
- If you use a separate Salesforce object to track line items, make sure the “Use Contract Items” checkbox is checked on the main Integration Settings page.
- ClientSuccess also needs to know which field is used to map the Line Items object to the Contract object. In most cases, the Salesforce Opportunity ID is used to relate the Opportunity Line Item object (child) to an Opportunity (parent)
- If you do NOT use line items (e.g. your product is on the same Salesforce object as your Contract) then make sure the “Use Contract Items” checkbox is UNchecked.
Step 2: Field Mappings
In this step, you will configure your field level mappings. Please review the Salesforce Field Mappings Setup Guide first for an explanation of how this page works.
- Map your Contract level data to ClientSuccess Contracts. This data will typically come from your Salesforce Opportunity object.
- Map your Opportunity Line Item level data to ClientSuccess Contract Line Items, ONLY IF you use Line Items in Salesforce. If you have one and only one product per Contract, you do NOT need to map Contract Line Items.
- Setup your sync criteria within Salesforce. An Import Filter will allow you to specify which contract records will be imported into ClientSuccess
Step 2a: Field Mappings - Contracts (Opportunities)
Field |
Description |
Required if NOT using Line Items |
Required if using Line Items |
Assigned Client |
Account associated with Opportunity |
Y |
Y |
ID - CRM ID [Lookup] |
Opportunity ID |
Y |
Y |
Name/Title |
Opportunity Label/Name |
Y |
Y |
Booking Date |
Close Date |
Y |
Y |
Stage |
Opportunity Stage Name e.g. Closed Won, Close Lost, etc. |
Y |
Y |
Type |
Opportunity Type or type of Contract (e.g. Renewal, Upsell) |
N |
N |
Forecast Type |
Opportunity Forecast categories (e.g. BestCase, Commit, Pipeline, etc.) |
N |
N |
Item Description |
Line Item Name |
Y |
N |
Item ID |
Opportunity ID |
Y |
N |
Item Quantity |
Opportunity quantity (defaults to 1) |
Y |
N |
Item Term Start |
Contract Start Date (Not always CloseDate). Required if dates not on line-items for recurring contracts |
Y |
N |
Item Term End |
Contract End Date (Date of Start + Term). Required if dates not on line-items for recurring contracts |
Y |
N |
Item Total |
Total value of contract |
Y |
N |
Product ID- Description [Lookup] |
Product Lookup in ClientSuccess |
Y |
N |
Is Recurring |
Used when product association is NOT present |
N |
N |
Renews ID - CRM ID [Lookup] |
Opportunity ID used to establish child relationship. Note that opportunities can only be linked in ClientSuccess if there is NO overlap between start date and end dates. E.g. an end date can't come before a start date. This validation does NOT apply to opportunities imported directly from Salesforce |
N |
N |
Renewed By ID -CRM ID [Lookup] |
Opportunity ID used to establish parent relationship. |
N |
N |
Amends ID - CRM ID [Lookup] |
Opportunity ID used to indicate opportunity amends parent (can be 1:Many) |
N |
N |
Amended By ID - CRM ID [Lookup] |
Opportunity ID used to indicate opportunity amends child (only 1:1) |
N |
N |
Terminated Date |
Notification of intent to churn. Required to indicate churn |
N |
N |
Terminated Effective Date |
Churn date. Required to indicate churn |
N |
N |
Description |
a 255 character text field. This is labeled ‘Notes’ on the client record but “Description” in mapping screen |
N |
N |
Note |
a 1000 character text field. This is labeled Comments on the client record but Note in the mapping screen |
N |
N |
Assigned ARR |
force an ARR value instead of using ClientSuccess calculation |
N |
N |
Custom Fields |
Any custom fields configured in Global Settings > Field Settings > Contract are available to map to Salesforce fields that have the same data type |
N |
N |
Renewal Relationships/Process
Understanding how your renewals are progressing toward completion is critical functionality in ClientSuccess. To do this, ClientSuccess must know which renewal opportunity belongs to which parent contract. This relationship mapping can be done either in ClientSuccess or Salesforce.
If this mapping is to be done in Salesforce, simply populate the “Renewed by” field with the opportunity ID of the child opportunity and/or the “Renews” field with the parent opportunity ID
This mapping is straightforward to set-up in ClientSuccess, but may be cumbersome to do in Salesforce.
Mid-term Upsells and Contract Adjustments Relationships/Process
Having an accurate picture of revenue, including up-sells and adjustments, is critical functionality in ClientSucccess. In order to track upsell and down-sell data, an adjustment/amendment must be made to the original opportunity. This is accomplished by a separate opportunity which can add or remove products and revenue from the original contract.
ClientSuccess must know which adjustment opportunity belongs to which parent contract. This relationship mapping can be configured either in ClientSuccess or Salesforce.
If this mapping is to be done in Salesforce, simply populate the “Amended by” field with the opportunity ID of the child opportunity (e.g. an up-sell) and/or the “Amends” field with the parent opportunity ID
Step 2b: Field Mappings - Contract Line Items
NOTE: These field mappings enable you to have multiple products per contract. If setting up these field mappings, make sure “Use Contract Items” checkbox is checked on the main Integration Settings page
Field |
Description |
Required |
Contract - CRM ID [Lookup] |
Opportunity ID Line Item is associated with |
Y |
ID - CRM ID [Lookup] |
Line Item ID |
Y |
Product ID - CRM ID [Lookup] |
Product Lookup in ClientSuccess |
Y |
(Line) Item Description |
Line item name/label |
Y |
(Line) Item Quantity |
Quantity of Product |
Y |
(Line) Item Term Start Date |
Opportunity Start Date. Can be the same as CloseDate. If the start date is on the opportunity object, then this field is NOT required. |
Y (for recurring products) |
(Line) Item Term End Date |
Opportunity End Date. This is the start date plus term length. If the end date is on the opportunity object, then this field is NOT required. |
Y (for recurring products) |
(Line) Item Total |
Total value of the Line Item |
Y |
Price Book Entry ID [SFDC] (required) - Price Book Entry ID |
Price Book Entry ID |
Y |
Item Assigned ARR |
force an ARR value instead of using ClientSuccess calculation |
N |
Example mapping for a configuration that uses Line Items:
Contracts (Opportunities)
Contract Line Items (Opportunity Line Items)
Step 3: Product List and Product External IDs
- The Products listed on your Salesforce Contracts must be setup in ClientSuccess beforehand. The Product List can either be entered manually or you can send a list of products via CSV to be imported by customer support with the following required fields:
Field Name |
Required? |
Detail |
Product Name |
Yes |
|
Product Code/SKU |
Yes |
Must be unique |
Description |
No |
|
External ID |
Yes |
SFDC 18 digit ID |
Is Active |
Yes |
true/false indicates if a product can be used in CS |
Is Recurring |
Yes |
true/false associates to total MRR/ARR(recurring) or ACV (recurring + one-time) |
- Products MUST indicate if they are recurring or one-time. This enables ClientSuccess to differentiate between contracts with recurring revenue, and therefore can be renewed, vs. one-time revenue.
- A unique SKU/Product Code must be present for each product. This will be used in future reporting
- If you are using Salesforce Price Books (typically via the Salesforce Opportunity Line Item object) then Salesforce External IDs must be present for products. This is the 18 Digit ID found in the URL of each product page in Salesforce.
- If you are not using Line Items, ClientSuccess can lookup product information by Salesforce ID, code, or description
Step 4: Pull One Contract from Salesforce
- Once your fields are mapped and your products are in ClientSuccess, please work with your CSM to pull over one opportunity to test.
- Ensure the one opportunity you want to import has the “Sync with ClientSuccess” checkbox set to TRUE
- Review the Integration History for any errors. You can filter for “400” in the Result column, “Contract” in the Resource column and review the Error Message column for a description of any errors
- Review the “Revenue” module for the sample account to ensure the contract came over as expected. You may need to configure your stages – please see “Step 6: Stage Mappings” section
Step 5: Sync Filter
- Once the sample opportunity comes over to ClientSuccess as expected, you can now set the “Sync with ClientSuccess” checkbox on all applicable opportunities.
- In order to establish renewal linkage, you want to ensure that the first new opportunity for a client and all renewal opportunities including forecasted, renewed, and churned/terminated renewals are brought over. Any opportunity that has been created after the initial sale should be brought over.
- Please work with your CSM to pull over all applicable opportunities
Step 6: Stage Mappings
- Stage is required for ALL contracts
- Stage configuration is dynamic to meet the needs of all customers who configure their stages differently
- Stage keys are added automatically as new contract stage key names are ingested into ClientSuccess. These stages can be found in Global Settings > Field Settings > Stage Name
- Stage Names do NOT need to be added in advance (unlike Product Names)
- Stages must be configured in order to display booked, forecast, and lost renewals
- There are three Stage Categories found in the “Stage” field for contracts
- Booked = Closed Won (Cash in Hand/Paid Contracts). No longer in a forecast stage
- Lost = Closed Lost. No longer in a forecast stage
- Not Set = Any state not Lost or Booked and indicates a Forecasted Contract.
- Do not configure stages until you have sync’d opportunities into ClientSuccess
- Once you have mapped the stages, you will need to do another import of your contracts from Salesforce for the contract stages to be set correctly.
Step 7: Sync Direction and Sync Frequency
- Please see Salesforce Field Mappings Configuration for information on setting the applicable sync direction and frequency
FAQs
- Do I need to have a product on my Contracts?
- Contract Imports will fail if Products are not present in ClientSuccess.
- Can I have the same product on multiple line items?
- Yes. This is the recommended approach if you charge different amounts for different time periods. For example, year 1 has a different price than year 2.
- Do I need to setup renewal relationships before importing Contracts?
- No, relationship mapping fields can be imported or configured after the Contracts are brought over.
- I don’t have start dates on my Salesforce Opportunities. What can I do?
- Start date and end dates are required for any recurring subscriptions. Close date is likely populated on your Salesforce Opportunities and may be similar to Start date.
- What is the difference if I map start dates and end dates to the Opportunity object vs. the Opportunity Line Item object?
- If start and end dates are on the Opportunity object the line items for the Opportunity will all have the same start date and end date. If you have line items with different start dates and end dates you will want to map to start and end dates on the Opportunity Line Item object.
- I have an Overdue Contract – what does that mean?
- Contracts are active or overdue until they are either renewed, terminated, or deleted. Renewal occurs by linking a child contract to the original and marking it “Booked”
- I have validation rules on my fields in Salesforce for any record updates. How can I reflect these in ClientSuccess?
- ClientSuccess is NOT a mirror of your Salesforce instance. If you need to bypass Salesforce validation rules to update fields in Salesforce from ClientSuccess, consider using Salesforce Record Types.
- Can Contracts be linked in ClientSuccess if there is an overlap in start-date or end-date between the contracts (e.g. can an end-date for an original contract come before the start-date of the renewal)?
- ClientSuccess will only allow parent-child renewal to be linked if there is NO overlap between start date and end dates. An end-date CAN NOT come before a start-date.
However, if the linkages come from a Salesforce import than ClientSuccess does not perform this validation check and will accept both Contracts.
- ClientSuccess will only allow parent-child renewal to be linked if there is NO overlap between start date and end dates. An end-date CAN NOT come before a start-date.
- I use a custom object for line-items, how do I relate it back to the parent object (e.g. Opportunity)
- To relate your line-item objects back to the parent object (e.g. Opportunity), please use a lookup field, not a master-detail relationship, for the Opportunity ID.
Comments
0 comments
Please sign in to leave a comment.