Skip to main content

Posts

Showing posts with the label Quotes

Two Great Composer Parameters That Work Great Together

We use Conga Composer to generate documents out of Salesforce; for those unfamiliar, I describe it as a really smart form-fill using Salesforce as a data source. Our primary use for Composer is quote generation, and the myriad parameters allow us to generate fairly custom quotes for a whole slew of cases (direct or via the channel; new or renewal; show discounts or not, etc., etc.). Conditionally Disable Composer One set of parameters that I've really come to like work in tandem: DC - Disable Conga Execution, and DCL - Disable Conga Execution Label. The idea is that if DC=1, so Composer is disabled, then the value of DCL is displayed to the user. As an example, suppose we have &DC=1&DCL=Opportunity+Is+Closed. When the user attempts to launch Composer, it won't run, but instead will display 'Opportunity Is Closed'. On the other hand, if DC=0 then Composer runs as normal. So how do we use this? As I said, we use Composer mostly for quotes. And there are a...

Recurring Revenue - Part 2: Quote and Quote Line Item

Continuing the series on how to quote, forecast and measure recurring revenue... What I'm trying to determine with Quotes are the: Number of payments Amount of each recurring payment, and Amount of the initial payment I'm basing these on custom fields on the Opportunity (Term, the service duration in months) and Product (Category).  In practice, I also have the Term on the Quote object so that we can have quotes for different terms attached to a single opportunity. Then I use Custom Quote Sync from Salesforce Labs to sync custom fields across the Quote and Opportunity. But that's a detail I'll avoid for now. I have two fields to add to the Quote Line Item (QLI): Recurring Charges: If the Line Item's Product Category (see the prior post) is either Subscription or Over Time, the Recurring Charges are set to the Line Item's Total Price; otherwise to 0. BUT... this is NOT a formula field. Instead, I populate it via a simple workflow rule and field up...