Customizing Opportunity Product Sync Process
Overview
MonetizeNow synchronizes Quote Items to Opportunity Products, and based on your desired business outcomes you can customize how the sync process works.
Choosing Which Field to sync as the Opportunity Amount
In the MonetizeNow configuration, you can choose which field MonetizeNow will use as the OpportunityProduct.Amount field when Quote Items are copied to Opportunity Products.
We recommend choosing Incremental ARR (monetize__IncrementalARR__c) as the Amount sync field, as this generally aligns to most business processes.
Important note about Annual Recurring Revenue (ARR)ARR is a normalized value and the ARR is the same regardless of how long a line item spans. A line item could exist on the quote for 1 day or 365 days, the ARR is unchanged.
MonetizeNow calculates ARR differently for ramps. Only a line item that spans to the end of the contract contributes to ARR.
For example: Lets assume you have a 12 month contract with one annual recurring product which is ramped
Jan 1 - Mar 31- qty 1@$1200/year (total amount=$300, ARR=$1200)April 1 - July 31- qty 2@$1200/year (total amount=$800, ARR=$2400)Aug 1 - Dec 31- qty 10@$1200/year (total amount=$5000, ARR=$12000)In this case, the ARR for the first two segments (
Jan 1 - July 31) would be $0 and would not contribute to the Quote's ARR. This best represents the ongoing relationship with your customer and avoids the need to try to prorate or blend ARR.For multi-year contracts with ramps, the above results may be undesirable as you probably want to know the ARR for each year separately.
For this, we include
Year 1,Year 2, andYear 3ARR and Incremental ARR fields on the Quote to include the breakdown if required. You can also split each Quote Item into one Opportunity Product per year, see Splitting Opportunity Products by Year.
ARR and MRR fields on the Quote Item
Each Quote Item has several ARR fields, and any of them can be chosen as the Opportunity Sync Amount Field. They differ in whether a ramp step that ends before the contract does is counted, and in whether the value is the item's full ARR or a change.
| Field | API name | Definition |
|---|---|---|
| ARR | monetize__ARR__c | The item's own Annual Recurring Revenue, whether or not it reaches the end of the contract. |
| Effective ARR | monetize__EffectiveARR__c | The item's ARR if it reaches the end of the contract, otherwise 0. |
| Incremental ARR | monetize__IncrementalARR__c | The change the item makes to the contract's ARR. Only an item that reaches the end of the contract counts, so earlier ramp steps are 0. On a new quote it equals Effective ARR. On an amendment it is the change from the existing contract, and can be negative. |
| Absolute Incremental ARR | monetize__AbsoluteIncrementalARR__c | The change in ARR from the previous ramp step of the same product, or from the existing contract on an amendment, counted whether or not the item reaches the end of the contract. The first step of a new product has its full ARR. |
| MRR fields | monetize__MRR__c, monetize__EffectiveMRR__c, monetize__IncrementalMRR__c, monetize__AbsoluteIncrementalMRR__c | The matching ARR field divided by 12. |
For the ramp example above, the fields work out as follows. The Opportunity Amount is the sum of the Opportunity Products.
| Quote Item | ARR | Effective ARR | Incremental ARR | Absolute Incremental ARR |
|---|---|---|---|---|
Jan 1 - Mar 31, qty 1 | $1,200 | $0 | $0 | $1,200 |
April 1 - July 31, qty 2 | $2,400 | $0 | $0 | $1,200 |
Aug 1 - Dec 31, qty 10 | $12,000 | $12,000 | $12,000 | $9,600 |
| Opportunity Amount | $15,600 | $12,000 | $12,000 | $12,000 |
Summing ARR counts every ramp step, so it overstates the ARR of a ramped contract. In this example the other three add up to the contract's ARR at the end of the term. Incremental ARR also reflects only what changed on amendments, which is why it is the recommended option.
Customizing Amount Sync Behavior
If you want to customize how the Amount is populated, you can create a custom Currency field on the Quote Item and it will be available for selection in the MonetizeNow settings mentioned above.
For example, suppose you wanted to track Incremental ARR as well as One-Time product amounts.
- Create a new Formula field on the Quote Item called
Opportunity Product Amount- With this formula
-
IF( TEXT(monetize__Product__r.monetize__ProductType__c) = "ONETIME", monetize__Amount__c, monetize__IncrementalARR__c )
- Then adjust the MonetizeNow configuration to point to the new field.
Splitting Opportunity Products by Year
Set Opportunity Product Sync Behavior to Split By Year in the MonetizeNow configuration to create one Opportunity Product per contract year. This requires version V0.61.1 or later of the managed package.
- A Quote Item longer than 12 months is split. Shorter Quote Items stay on one line.
- Years are counted from the quote's contract start date, so a ramp step that starts part way through the contract is split at the next contract anniversary.
- One-time products are never split.
- Every line has the quantity the Quote Item would sync with on a single line, which on amendments is the change in quantity.
DateandEnd Date(monetize__EndDate__c) on each line are the part of the Quote Item that falls in its contract year, so a partial first or last year starts or ends on the Quote Item's own date. Lines that are not split use the Quote Item's own start and end dates.
The amount on each line depends on the Opportunity Sync Amount Field. The lines get the amounts MonetizeNow would give the same Quote Item if it were split with scheduled changes at each contract year. ARR and MRR are never prorated for a partial year.
| Opportunity Sync Amount Field | Amount on each line |
|---|---|
| ARR, MRR | Every year gets the full value. |
| Incremental ARR/MRR (default), Effective ARR/MRR | Only the year that reaches the end of the contract gets the value. Earlier years are 0, so the Opportunity Amount is the same as with Default. |
| Absolute Incremental ARR/MRR | Only the first year gets the value, since it is the change from the previous ramp step. |
| Any other field, including custom fields | The value is treated as the total for the Quote Item and is spread across the years by length, rounded so the years add up to the total. |
If the amount field is blank on a Quote Item, the Quote Item's Amount is used instead and is spread across the years by length.
Opportunity Product End DateEnd Date is filled in as Opportunity Products sync. Opportunity Products synced before V0.61.1 are not backfilled. If you want it on existing lines, backfill it with Data Loader or a Flow, for example from the related Quote Item's Contract End Date.
Choosing Which Products to Sync
The MonetizeNow Managed Package comes with a formula field on the Quote Item named Should Sync To Opportunity Product (ShouldSyncToOpportunityProduct__c) which is used to determine if a product should be copied to the Opportunity. Review the formula definition to understand the criteria used.
- For a product to sync:
- The
Productmust be set - The
Pricebook Entrymust be set - The
Quantitymust not be 0, except for usage products - And on Amendments, only line items that have been modified are synchronized
- The
- You can completely disable the Product Sync by setting Opportunity Product Sync Behavior to Disabled in the Managed Package Settings. (or by manually updating
monetize__OppProductSyncBehavior__con themonetize__MonetizeNowSettings__cCustom Setting record directly) - If you want to force a product to always sync or never sync, you can write automation to update the
monetize__OverrideOpportunitySync__cfield on the Quote Item, which overrides the behavior.- Available values are:
- <blank> (default sync behavior)
- Never (never sync this line to the opportunity)
- Always (always sync this line to the opportunity)
- Available values are:
Updated 5 days ago
