Celigo Salesforce Connector supports the entire loop from the creation of the Contract, to upsell and to renewal including:
- NetSuite Contract to Salesforce Contract sync
- NetSuite Contract line items to Salesforce Contract line items sync
- Support for different Contract transactions
- Support for Direct Sales and Channel Sales
The Contract Renewals add-on module in NetSuite enables you to create renewal records from a contract. The Salesforce Connector creates Opportunity records in Salesforce for each of the contract renewal records. If the contract renewal is for a customer who does not exist in Salesforce, then a new account record is created in Salesforce for the customer along with the renewal opportunity. The renewal record that originates from NetSuite is updated every time this contract renewal opportunity is sent back to NetSuite.
This setting will only be enabled if the Contract Renewal module is enabled on the NetSuite account. This allows you to choose a field from NetSuite Contract Renewals module to determine which contract renewal model to choose.
If the contract renewal module is enabled in the NetSuite account, an order type field is created (order type field is part of every NetSuite transaction, ie. contract renewal, contract upsell, downsell etc.). If such a contract is being set up, this sales order will create a Salesforce opportunity as part of the contract renewal module. Then you can set the stage of the opportunity (prospecting, quoting etc.)
Contract Renewal Workflow
|NEW ORDER CREATION||1a||Reps work new opportunities in Salesforce. When these are won, they sync to NetSuite as a Sales Order pending approval.|
|1b||NetSuite generates a ‘Contract’ object. This stores information regarding all of the recurring items sold on the deal and the term that applies.|
|UPSELL ORDER CREATION||2a||In the event of a customer requiring an upsell, reps will create an upsell opportunity in Salesforce, picking from a list of existing ‘Contracts’ in NS. The closed-won upsell syncs to NetSuite as a Sales Order pending approval.|
|2b||The upsell sales order creates an additional contract item on the ‘Contract’|
|DOWNSELL ORDER CREATION||3||In the event of a customer requiring a downsell (ie. they don’t want something to renew), finance/accounting creates a Return Order in NetSuite (RMA). The return updates the ‘Contract’ to reflect a down-sold item.|
|CONTRACT SYNC||4||The contract syncs to Salesforce anytime it is updated. This ensure reps have a current view of all upsells and downsells associated with the ‘Contract’.|
|RENEWAL ORDER||5||NetSuite generates renewal transactions (ie. Opportunity). This will sync back to Salesforce as a renewal opportunity, with a link to the contract object (‘From Contract’) that the renewal it was generated with.|
|6a||When the renewal opportunity is won, it syncs to NetSuite as a Renewal Sales Order pending approval.|
|6b||The renewal sales order will also create a new contract object for the renewal term. From the renewal opportunity, Salesforce also sends a ‘From Contract’ link to facilitate a clear reporting connection of renewed contracts vs churn.|
NetSuite Contract to Salesforce Contract sync – When a new Salesforce Opportunity is synced as a NetSuite Sales Order (flow 1a), the Contract renewal module creates a new Contract for this Sales Order in NetSuite (flow 1b). The Connector syncs this newly created NetSuite Contract to native Salesforce Contract object (flow 4).
NetSuite Contract line items to Salesforce Contract line items – The Items in the synced NetSuite Sales Order are added as Contract Items in the new Contract by the Contract renewal module. These Contract Items are also synced to Salesforce as a custom related list in the native Contract object (flow 4).
Support for different Contract transactions:
- New – Described above
- Upsell – An upsell Salesforce Opportunity is created in Salesforce by selecting an active Contract previously synced. When this Opportunity is synced as a NetSuite Sales Order (flow 2a), the Contract renewal module adds items in the upsell Opportunity to the existing Contract as Contract Items (flow 2b). This updated Contract is synced back to Salesforce Contract along with Contract items (flow 4).
- Renewal – If the Contract Renewal module creates a renewal transaction (Opportunity, Sales Order or Quote) in NetSuite for a Contract , it is synced to Salesforce as a Renewal Opportunity (flow 5). If this Opportunity is won, it is synced back as a NetSuite Sales Order (flow 6a) and the Contract renewal module will create a renewal transaction for this Contract (flow 6b).
Support for Direct Sales and Channel Sales for Contract renewal – Whether the Salesforce Opportunity is a direct sale to the End User or an indirect sale via a Reseller or Distributor, the Connector supports all combinations of bill to customer and ship to customer.
Support for monthly and annual pricing of Items – Whether the Items in NetSuite are setup with monthly pricing or annual pricing, the Connector adjusts accordingly to appropriately calculate the total order amount for a given Contract. The Connector also shows the total amount calculations done by the NetSuite Contract renewal module within the Salesforce Opportunity so that the Sales rep can be sure about their selections before syncing the Opportunity as a Sales Order.
Setting up items for Contract Renewals
Most contract items are defined with an item type of non-inventory items for sale in NetSuite. Item records define how renewal transactions and contracts are generated. If an item is set up for automated renewal, it is automatically included in contracts and renewal transactions.
Renewal behavior is determined by the following fields on item records: Term Contract Pricing Type, Product Line, and Item Category.
Perpetual items — such as License – Perpetual, Maintenance – New, Maintenance – Renewal, Services – Perpetual, Trainings, Hardware, and Other are not renewed and are paid in full up front.
Term-based items — such as License – Term, Support – New, Support – Renewal, and Services have start and end dates, and must have the Term/Contract Pricing Type field set to Monthly or Annual to be priced correctly in new and renewal transactions based on the Term In Months of the transaction line. Term licenses are always renewed.
Maintenance entitlements include software updates and support, and they are associated with perpetual licenses, and are always renewed. Support entitlements provide support for software only, are associated with term licenses, and are renewable.
Installation of the Contract Renewal Module in NetSuite
The Contract Renewal module must be installed in NetSuite.
Configure the contract renewal preferences from the Setup page in NetSuite.
In this example, the ‘Transaction Type to Create’ is set up as ‘Quote’.
Celigo Integrator Configurations
The Contract Renewal Transaction Type that is shown in the previous image is set up in the Integrator Configuration as shown in the following image.
Contract Renewal flows
The following flows come into play for the contract renewal integration between Salesforce and NetSuite. Make sure the following flows are enabled in the Integrator.
- Salesforce Opportunity to CR Sales Order
- Contract Item to Salesforce Contract Item
- Contract Renewal Estimate to Salesforce….
- Contract to Salesforce Contract
Working with an Opportunity in Salesforce
The Opportunity Page object is configured from the Page Layout section to include the section on Contract Renewals. Refer to Appendix for configuring page layout to include Contract renewal section.
Create an Opportunity with Products. The Order Type is created and displayed as ‘Contract New’.
Click Create NetSuite Order to create a new Sales Order in NetSuite. The Processing is shown.
The Sales Order is created in NetSuite. In this example, the Contract number is 3097_2015-07-14_2016-07-13.
Refresh the Opportunity Page in Salesforce.
The Contract Item is exported as 00000135. Click the Contract Item to open the Contract object.
For Upsell, create a New Opportunity using the same Contract as reference.
An Upsell Opportunity is created with the Order Type as ‘Contract Upsell’ as shown in the following image.
Add the new product.
Create a New Sales Order using the Create NetSuite Order button. The Processing is shown.
The Hourly batch flow creates the New Order in NetSuite.
The New Order is created in NetSuite displaying the additional Upsell product.
The Salesforce Opportunity page displays the Upsell product.
Viewing the Contract in NetSuite
The annual contract flow creates the new Contract with the Quote object. In this example, this is the nightly script.
The Renewal Contract with the Quote object.
The Opportunity is created as a Quote in Salesforce based on the settings in the Integrator.
Contract Renewal flow
In the NetSuite Contract Renewal module, the Sales Order has the following fields:
- End User
- Bill to Customer (customer who pays the bill)
The ‘Bill to Customer’ field is not editable and is set up by NetSuite, based on the Channel Sales settings.
There are three types of Customers identified by the ‘Channel Tier’ setting
- End User – Customer who finally receives the Item
- Reseller – Customer who acts as a reseller
- Distributor – Customer who acts as a distributor
In the Channel Sales settings, we have:
- Bill to Tier
- Ship to Tier
If the Sales Order is a direct sale, then
- Reseller = Blank
- Distributor = Blank
- Bill to Tier = ‘End User’
- Ship to Tier = “End User”
This indicates that the sale is done directly to the End User. So whichever Customer is set in the “End User” field in the Sales Order, the same is set in the Bill to Customer field. In a direct sale, End User and Bill to Customer are always the same.
If the Sales Order is a Channel Sale, ie. we are selling to the End User via a Reseller, then the settings will change as:
- Distributor = Blank
- Reseller = Customer whose Channel Tier type is Reseller
- Bill to Tier = Reseller
- Ship to Tier = Reseller / End User (shipping can be done to the reseller or to the end user)
NetSuite will then automatically set
- Bill to Customer = Customer whose Channel Tier type is Reseller selected in the Reseller field.
- End User = Can be any customer (either Channel Tier = “End user” or “Reseller”)
In an indirect sale, ‘End user’ and ‘Bill to Customer’ can be different.
Distributor is an optional field and rarely used but can be set to indicate which Customer is the distributor in the transaction. It is mostly used for reporting purposes.