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
Shishir Mishra 10Shishir Mishra 10 

Campaign Member History

I am trying to track the Campaign Member history but in the discription it is only showing the status changed and not showing the Lead name to which the status has changed. I am using a trigger on Campaign Member. Please assist
Gaurav KheterpalGaurav Kheterpal
Do you mind posting your code snippet?
Shishir Mishra 10Shishir Mishra 10
Trigger HistoryTrack on CampaignMember (after insert, before update, before delete) {          List<CampaignMemberHistory__c> ch= new List<CampaignMemberHistory__c>(); List<CampaignMember> cmOld= Trigger.old;  List<String> changes  = new List<String>(); List<String> CampHisId  = new List<String>(); integer i=0;     if(Trigger.isDelete){
            for(CampaignMember cm: Trigger.old ){     
                       String s;                            
                       s='Campaign Member id ' + cm.id + 
                       'is Deleted from campaign id: '+ cm.campaignId + 'by user '+ userinfo.getUserName();                                        
                       changes.add(s);
                       CampHisId.add(cm.campaignId);
                       CampaignMemberHistory__c c= new CampaignMemberHistory__c();               
                       c.Name='History'+DateTime.now();  
                       System.debug('CName:'+c.Name);
                       c.CampaignId_c__c=CampHisId[i];
                       System.debug('CampaignId:'+c.CampaignId_c__c);                              
                       c.HistoryDetails_c__c=changes[i];
                      System.debug('CHistory:'+c.HistoryDetails_c__c);         
                      ch.add(c);                              
                      i++;           
             } 
        }else {      
                     for(CampaignMember cm: Trigger.new ){  
                            String s;
                            if((Trigger.isUpdate)){
                                   if(cmOld[i].OSS_Status__c!=cm.OSS_Status__c){    
                                          s=' OSS Status changed from ' + cmOld[i].OSS_Status__c + ' to ' + cm.OSS_Status__c +                        
                                            ' by user ' + userinfo.getUserName();
                                           
                                           changes.add(s);
                                          CampHisId.add(cm.campaignId);                                                  
                                          CampaignMemberHistory__c c= new CampaignMemberHistory__c();                          
                                          c.Name='History'+DateTime.now();
                                          System.debug('CName:'+c.Name);
                                          c.CampaignId_c__c=CampHisId[i];                        
                                          System.debug('CampaignId:'+c.CampaignId_c__c);                                      
                                          c.HistoryDetails_c__c=changes[i];
                                          System.debug('CHistory:'+c.HistoryDetails_c__c);
                                          ch.add(c); 
                                      }else if(cmOld[i].campaignId!=cm.campaignId){                        
                                                s='Changed Campaign id from : '+ cmOld[i].campaignId + 'to :' + cm.campaignId +                        
                                                    ' by user '+ userinfo.getUserName();  
                                              changes.add(s);                        
                                             CampHisId.add(cm.campaignId);                                                            
                                            CampaignMemberHistory__c c= new CampaignMemberHistory__c();                           
                                            c.Name='History'+DateTime.now();
                                            System.debug('CName:'+c.Name);              
                                            c.CampaignId_c__c=CampHisId[i];                   
                                           System.debug('CampaignId:'+c.CampaignId_c__c);                                          
                                            c.HistoryDetails_c__c=changes[i];
                                            System.debug('CHistory:'+c.HistoryDetails_c__c);                         
                                            ch.add(c);
                                         }             
                           }else if(Trigger.isInsert){                                
                                       s='A new Campaign Member id : ' + cm.id + ' is added to Campaign id :' + cm.campaignId +                                                          ' by user '+ userinfo.getUserName();
                                       changes.add(s);                    
                                       CampHisId.add(cm.campaignId);                    
                                       System.debug('s>>>'+s);                                                                    
                                       CampaignMemberHistory__c c= new CampaignMemberHistory__c();
                                       c.Name='History'+DateTime.now();                   
                                       System.debug('CName:'+c.Name);
                                       c.CampaignId_c__c=CampHisId[i];
                                       System.debug('CampaignId:'+c.CampaignId_c__c);                                          
                                       c.HistoryDetails_c__c=changes[i];
                                       System.debug('CHistory:'+c.HistoryDetails_c__c);                                        
                                       ch.add(c);
                            } 
                            i++;     
                       }         
                }    
                insert ch;
     }
Shishir Mishra 10Shishir Mishra 10
I wanted to to track the changes with the Field OSS status. It is showing the change in status but the Contact name to whom the status is changed is not showing in descirption under the Campaign Member Histroy 
Shishir Mishra 10Shishir Mishra 10
I am just trying to add the Name of the contact in the Campagin Member Histroy page layout which will auto populate when ever be make any changes in the Campaign Member status