Loading
Ongoing maintenance for Salesforce HelpRead More
Feature degradation | Gmail Email delivery failureRead More
Manage Your Quotes with CPQ
Table of Contents
Select Filters

          No results
          No results
          Here are some search tips

          Check the spelling of your keywords.
          Use more general search terms.
          Select fewer filters to broaden your search.

          Search all of Salesforce Help
          Triggers for Automatic Opportunity Generation

          Triggers for Automatic Opportunity Generation

          Quotes don’t automatically create opportunities after creation. To enable automatic opportunity generation, create a trigger that creates an opportunity after Salesforce CPQ saves a customer site quote. (Salesforce CPQ Managed Package)

          Required Editions

          Available in: Salesforce CPQ Summer ’17 and later

          Here’s an example of a trigger you can use to create an opportunity in response to the saving of a customer quote.

          Example
          Example
          trigger AfterUpdateCreateOppty on SBQQ__Quote__c (after update) {
           
             for(SBQQ__Quote__c q : trigger.new){
                 if(q.SBQQ__Status__c == 'Approved' && trigger.oldMap.get(q.Id).SBQQ__Status__c != 'Approved'){
                     Id accountId = [SELECT SBQQ__Account__c FROM SBQQ__Quote__c WHERE ID=:q.Id].get(0).AccountId;
                     Opportunity o = new Opportunity(Name=q.Name+' '+'Opportunity', AccountId= accountID, CloseDate=date.today(), StageName='Qualification', SBQQ__QuotePricebookId__c=q.SBQQ__PricebookId__c);
                     System.debug('My Name' + o);
                     Database.Insert(o);
                     q = [ select id from SBQQ__Quote__c where id = :q.id limit 1];
                     q.SBQQ__Opportunity2__c = o.Id;
                     q.SBQQ__Primary__c = True;
                     q.SBQQ__Account__c = accountID;
                     Database.Update(q);
           
                     Opportunity o2 = [ select id from Opportunity where id = :q.SBQQ__Opportunity2__c limit 1];
                     o2.StageName='Closed Won';
                     Database.Update(o2);
                 }
             }    
           
          }
           
          Loading
          Salesforce Help | Article