public class LeadConvert {
public void convertToAccount(){
account acc=new account();
contact con=new contact();
opportunity opp=new opportunity();
list<contact>conlist=new list<contact>();
list<opportunity>opplist=new list<opportunity>();
list<account>acclist=new list<account>();
list <Lead> ldList = [Select Name,Company,OwnerId,id From Lead];
try{
for(Lead ld : ldList){
acc.name=ld.company;
acc.Id=ld.Id;
acc.OwnerId=ld.OwnerId;
con.lastname=acc.name;
con.accountid=acc.id;
opp.name=acc.name;
opp.stagename='Prospecting';
opp.closedate=system.today();
opp.accountid=acc.id;
}
acclist.add(acc);
conlist.add(con);
opplist.add(opp);
insert conlist;
insert opplist;
insert acclist;
}
catch(Exception e)
{
system.debug(e);
}
}
}
2 Answers
Lead can converted using Database.LeadConvert
. On conservion lead it will create the account, contact and opportunity(optional).
public class LeadConvert {
public void convertToAccount() {
LeadStatus convertStatus = [select MasterLabel from LeadStatus where IsConverted = true limit 1];
List <Database.LeadConvert> leadConverts = new List < Database.LeadConvert > ();
for (Lead lead: [Select Name, Company, OwnerId, id From Lead]) {
if (!lead.isConverted) {
Database.LeadConvert lc = new Database.LeadConvert();
lc.setLeadId(lead.Id);
lc.setOpportunityName(lead.Name);
lc.setConvertedStatus(convertStatus.MasterLabel);
leadConverts.add(lc);
}
}
if (!leadConverts.isEmpty()) {
List < Database.LeadConvertResult > lcr = Database.convertLead(leadConverts);
}
}
}
-
Thank you @Amol. I saved this class in my org and run it using the Anonymous window..The result was null, nothing was converted. Can you tell me pls, what can I do to convert existing Leads into Account, Opportunities, and Contacts?– Aziz bekMay 4, 2021 at 20:32
-
@Azizbek the same code is working. make sure you have valid record, and put debug log to check is record fetch by soql.– AmolMay 5, 2021 at 11:25
You have to use LeadConvert Class, The convertLead Database method converts a lead into an account and contact or an account and person account, as well as (optionally) an opportunity.
Check out the link for help: https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_dml_convertLead.htm