How to automatically convert leads when create leads.

Aman Garg
2 min readDec 21, 2022

--

Step 1: Create Apex Trigger

Go to Setup -> Developer Console -> New -> File -> New -> Apex Trigger

trigger AutoLeadConvertedHandlerTrigger on Lead (after insert, after Update) {

Set<Id> setOfLeadIds = new Set<Id>();
if(Trigger.IsAfter && Trigger.isInsert){
for(Lead lead : trigger.new){
//You can check any condition in the Lead Source
if(lead.LeadSource == 'Web'){
setOfLeadIds.add(lead.Id);
}
}
if(setOfLeadIds.size()> 0){
AutoLeadConvertedHandler.autoConvertLeads(setOfLeadIds);
}
}
}

Step 2: Create Apex Class

Go to Setup -> Developer Console -> New -> File -> New -> Apex Class

public class AutoLeadConvertedHandler {

public static void autoConvertLeads(Set<Id> setOfLeadIds){
LeadStatus convertLeadStatus = [Select Id,MasterLabel from LeadStatus where isConverted = true limit 1];
List<Database.LeadConvert> massLeadConvert=new List<Database.LeadConvert>();
for(Id currentLead : setOfLeadIds){
Database.LeadConvert LeadConvert=new Database.LeadConvert();
LeadConvert.setLeadId(currentLead);
LeadConvert.setConvertedStatus(convertLeadStatus.MasterLabel);
LeadConvert.setDoNotCreateOpportunity(false); // This line is used if you want to create opportunity on auto lead conversion then set False, Otherwise True.
massLeadConvert.add(LeadConvert);
}

if(!massLeadConvert.isEmpty()){
List<Database.LeadConvertResult> lcr=Database.convertLead(massLeadConvert);
}
}
}

Step 3: Create Apex Test Class

Go to Setup -> Developer Console -> New -> File -> New -> Apex Class

@isTest
public class AutoLeadConvertedHandlerTest {

static testMethod void convertLeadPositiveTest() {
test.startTest();
Lead lead = new Lead();
lead.FirstName = 'Trigger1';
lead.LastName = 'Test1';
lead.Company = 'Trigger Test1';
lead.LeadSource = 'Web';
insert lead;
System.AssertEquals (1, [Select Id,FirstName from Lead where Status='Closed - Converted' and id=:lead.id].size());
test.stopTest();
}

static testMethod void convertLeadNegetiveTest() {
test.startTest();
Lead lead = new Lead();
lead.FirstName = 'Trigger2';
lead.LastName = 'Test2';
lead.Company = 'Trigger Test2';
lead.LeadSource = 'Phone Inquiry';
insert lead;
System.AssertEquals (0, [Select Id,FirstName from Lead where Status='Closed - Converted' and id=:lead.id].size());
test.stopTest();
}
}

Originally published at http://amansfdc.wordpress.com on December 21, 2022.

--

--

Aman Garg
Aman Garg

Written by Aman Garg

Sr. Executive - Training || 6x Salesforce Certified || 2x Copado Certified || Salesforce Mentor || Founder of Salesforce Learners

No responses yet