Skip to main content
Conga Support

Create a Conga Batch List View Button (Lightning Experience)

  Conga cannot support customized code. Due to the complicated nature of supporting programmers and programming languages, the integration of Conga with Visualforce, Apex, and Javascript (or other programming languages) is not supported.

You can use Conga Grid to integrate Conga Batch with Salesforce Classic, Lightning and Salesforce One (SF1). 

Alternative integration method

You can integrate Conga Batch within Salesforce Lightning.

1. Create a Visualforce page with a set controller.

2. Create a new button of type Visualforce. Enable Display checkboxes (for Multi-Record Selection) and selecting Content as the Visualforce page. 

Button.png

 3. Add the newly created button to the list in Search Layouts.

Layout.png

From Step 1, your Visualforce page should look like this:

<apex:page standardController="Opportunity" extensions="OpportunityConductorController" recordSetVar="opportunities" action="{!prepareConductorUrl}">
    <apex:outputPanel id="script">
        <script type="text/javascript">
            window.open("{!conductorUrl}","_blank","width=640,height=480");
            window.history.back();
        </script>
    </apex:outputPanel>   
</apex:page>

And now the Apex class :

public class OpportunityConductorController {
    private final static String urlFieldName = 'Conductor__c';
    private String partnerServerUrl;
  private ApexPages.StandardSetController controller;
    private List<String> opportunityIds = new List<Id>();
    
    public String conductorUrl {get; private set;}
    
    public OpportunityConductorController(ApexPages.StandardSetController controller) {
        this.controller = controller;
        
        for (Opportunity opportunity : (List<Opportunity>)controller.getSelected()){ 
            opportunityIds.add(opportunity.Id);
        }
        
        partnerServerUrl = 'https://'+ApexPages.currentPage().getHeaders().get('Host')+'/services/Soap/u/26.0/'+UserInfo.getOrganizationId();
    }
    
    public PageReference prepareConductorUrl() {
        conductorUrl = 'https://conductor.congamerge.com' +
            '?MOID=' + String.join(new List<String>(opportunityIds),',') +
      '&SessionId=' + UserInfo.getSessionID() +
      '&ServerUrl=' + partnerServerUrl +
      '&UrlFieldName=' + urlFieldName;
        
        return null;
    }
 
}

 

According to Salesforce, you cannot create a new Apex class in a Production environment. You should be able to create a new class in the Sandbox org and publish that org updated to your Production Org. To learn more, see Create Apex classes in a production organization.