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 number of reasons why the quote may not be ready for the customer to see. Potential issues include a renewal without contract dates, an opportunity without a designated business sponsor, etc.
I could create a formula for the DC parameter value and disable Composer if the formula evaluates to 1. Instead, I have a custom formula field on the quote object. My field, Quote_Gen_Issues__c, returns a text value. And the formula looks something like this:
It's critical, as we'll soon see, that the 'else' clause of each 'if' test is an empty string. I also put an extra space after each warning sentence, so that it reads alright if there are multiple issues. Now when Composer IS disabled (DC=1), the user gets a clear indication as to why and what action to take. Note that I can just keep adding conditions as new restrictions are applied; just another & and an if function.
Now I just have to determine the value of the DC parameter. Actually, it's trivial; all I have to do is check whether Quote_Gen_Issues__c is blank! If it's blank, then none of my error conditions exist, so I want to let Composer run and I do that with a value of 0. If my label is NOT blank, then there's an error, so the DC parameter value has to be 1.
Let's step through the steps of adding these parameters. I already have a Conga Solution whose master object is a quote. From that Conga Solution record, click on Customize with Parameters. Search for Disable. Click on DCL, then Select Parameter. Scroll up, clear the value in the Parameter Value textbox, then click on Merge Field Helper and select the custom field: Quote.Quote_Gen_Issues__c. Click 'Add Parameter to Solution Record.'
Next, the DC parameter. Again, click on Customize with Parameters and search for Disable. This time choose DC, then Select Parameter. Scroll up and clear the existing parameter value. In the Merge Field Helper, select that same custom field, Quote.Quote_Gen_Issues__c. But we have to tweak that, applying the ISBLANK test, and returning either 0 (blank) or 1 (otherwise). Edit the parameter value to read:
{!IF(ISBLANK(Quote.Quote_Gen_Issues__c),"0","1")}. Click 'Add Parameter to Solution Record', which now has both the DC and DCL parameters.
Using this ISBLANK test, I can add easily add restrictions. I only have to update the Quote_Gen_Issues__c formula; the DC parameter value automatically tracks the changes.
An Ounce of Prevention
Since I have this Quote Gen Issues formula field, I can take one more step with it... I'll change the label (leaving the API name alone) to Before You Can Quote. And I put this field in a prominent position on my Quote page layout. Now my reps can see these issues before they even run Composer. It's the exact error message they'll see if the do try running Composer, but now they get advance notice.
Conga Composer documentation:
https://support.getconga.com/Conga_Composer/Customizing_Composer_with_Parameters/Composer_Parameter_Guide/DCL, https://support.getconga.com/Conga_Composer/Customizing_Composer_with_Parameters/Composer_Parameter_Guide/DC
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 number of reasons why the quote may not be ready for the customer to see. Potential issues include a renewal without contract dates, an opportunity without a designated business sponsor, etc.
I could create a formula for the DC parameter value and disable Composer if the formula evaluates to 1. Instead, I have a custom formula field on the quote object. My field, Quote_Gen_Issues__c, returns a text value. And the formula looks something like this:
if(error_condition1,"Here's what's wrong and how to correct it. ","") &
if(error_condition2,"Here's another problem and the resolution. ","") &
It's critical, as we'll soon see, that the 'else' clause of each 'if' test is an empty string. I also put an extra space after each warning sentence, so that it reads alright if there are multiple issues. Now when Composer IS disabled (DC=1), the user gets a clear indication as to why and what action to take. Note that I can just keep adding conditions as new restrictions are applied; just another & and an if function.
Now I just have to determine the value of the DC parameter. Actually, it's trivial; all I have to do is check whether Quote_Gen_Issues__c is blank! If it's blank, then none of my error conditions exist, so I want to let Composer run and I do that with a value of 0. If my label is NOT blank, then there's an error, so the DC parameter value has to be 1.
Let's step through the steps of adding these parameters. I already have a Conga Solution whose master object is a quote. From that Conga Solution record, click on Customize with Parameters. Search for Disable. Click on DCL, then Select Parameter. Scroll up, clear the value in the Parameter Value textbox, then click on Merge Field Helper and select the custom field: Quote.Quote_Gen_Issues__c. Click 'Add Parameter to Solution Record.'
Next, the DC parameter. Again, click on Customize with Parameters and search for Disable. This time choose DC, then Select Parameter. Scroll up and clear the existing parameter value. In the Merge Field Helper, select that same custom field, Quote.Quote_Gen_Issues__c. But we have to tweak that, applying the ISBLANK test, and returning either 0 (blank) or 1 (otherwise). Edit the parameter value to read:
{!IF(ISBLANK(Quote.Quote_Gen_Issues__c),"0","1")}. Click 'Add Parameter to Solution Record', which now has both the DC and DCL parameters.
Using this ISBLANK test, I can add easily add restrictions. I only have to update the Quote_Gen_Issues__c formula; the DC parameter value automatically tracks the changes.
An Ounce of Prevention
Since I have this Quote Gen Issues formula field, I can take one more step with it... I'll change the label (leaving the API name alone) to Before You Can Quote. And I put this field in a prominent position on my Quote page layout. Now my reps can see these issues before they even run Composer. It's the exact error message they'll see if the do try running Composer, but now they get advance notice.
Conga Composer documentation:
https://support.getconga.com/Conga_Composer/Customizing_Composer_with_Parameters/Composer_Parameter_Guide/DCL, https://support.getconga.com/Conga_Composer/Customizing_Composer_with_Parameters/Composer_Parameter_Guide/DC
Comments
Post a Comment