function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
MaheemSamMaheemSam 

Insert campaign inside lead loop

Hi, 

  I need a suggestion how to put a logic inside lead loop to insert a campaign member Please suggest. 
for(Lead objLead: [select id,email from Lead where email IN :emailSet]){
                mapEmailToLeadId.put(objLead.Email, objLead.Id);
                objLead.Lead_Source_Temp__c = 'CTAP Assessement'; //Update Lead Source added by Sudhir
                ledlst.add(objLead);
                // how to add a logic to insert a campaign member here
            }

Thanks
Sudhir
mukesh guptamukesh gupta
Hi Sudhir,

Please use below trigger code :-
trigger Create_CampaignMember_For_New_Leads on Lead (after insert) {
 
    try {   
         
        if (Trigger.new.size() == 1) {
             
            List <CampaignMember> cm = new list<CampaignMember>();
             
            for(Lead L : Trigger.new) {
                 
                    String cname = L.leadsource;
                     
                    // Added for AppExchange Partners that get leads via AppExchange where Salesforce added the "dup-" term to signify a duplicate
                    String replaceText2 = 'dup-';
                    cname = cname.replace(replaceText2,'');
                     
                    List <Campaign> c = [select id, name from Campaign where name = :cname limit 1];
                     
                    if(!c.isEmpty()){
                        CampaignMember cml = new CampaignMember();
                        cml.campaignid = c[0].id;
                        cml.leadid = l.id;
                        cm.add(cml);
                    }
            }
             
            if(!cm.isEmpty()){
                insert cm;
            }
        }
         
         
    } catch(Exception e) {
        system.debug ('error: ' + e.getMessage() );
    } 
}

Please MARK AS BEST ANSWER!!!!

Regards
Mukesh
RKSalesforceRKSalesforce
Please try below code:
List<CampaignMember> cmpMembersList  = New List<CampaignMember>();
for(Lead objLead: [select id,email from Lead where email IN :emailSet]){
                mapEmailToLeadId.put(objLead.Email, objLead.Id);
                objLead.Lead_Source_Temp__c = 'CTAP Assessement'; //Update Lead Source added by Sudhir
                ledlst.add(objLead);
                // how to add a logic to insert a campaign member here
				CampaignMember cmpMember = New CampaignMember();
				cmpMember.Lead = objLead.Id;
				//Add your required fields on CampaignMember
				cmpMembersList.add(cmpMember);
            }
			
			insert cmpMembersList;

Regards,
Ramakant